Tutorial ESP32 Monitoring Tegangan dan Arus Berbasis IoT dengan Ubeac

Monitoring tegangan dan arus merupakan langkah untuk memantau kualitas listrik pada suatu alat elektronik, dan hal ini sangat bermanfaat dalam mengamati konsumsi listrik pada suatu elektronik. Kali ini saya akan membuatkan tutorial yang berkaitan dengan ESP32 sistem monitoring tegangan dan arus berbasis IoT dengan menggunakan server dari ubeac.com

Sensor yang digunakan untuk mengukur tegangan dan arus adalah INA219 dengan beban bisa menggunakan motor DC ataupun Solenoid door lock.

Sensor INA219 dapat membaca tegangan hingga 26V dan arus hingga 3A. Saya rasa cukup untuk skala alat elektronik kecil yang tidak mengonsumsi arus lebih dari 3A.

Sebelumnya saya sudah menulis artikel dasar untuk mengakses sensor ina219 yang dapat kalian baca pada artikel di bawah ini.

  1. Tutorial ESP32 Sensor Arus DC INA219 Beban Relay Door Lock
  2. Tutorial ESP8266 Mengakses Sensor INA219 dengan Beban Door Lock
  3. Tutorial ESP8266 Mengirim Data Ke Server Ubeac HTTP

Jika kalian sudah bisa mengikuti ketiga tutorial diatas, saya yakin untuk mengikuti tutorial kali ini pun akan lebih mudah dipahami dan mudah diikuti.

Hardware yang dibutuhkan untuk sistem monitoring tegangan dan arus berbasis IoT

  1. Wemos D1 Mini ESP32
  2. Modul Belajar ESP32
  3. Sensor INA219 Arus DC
  4. Solenoid Door Lock / Motor DC
  5. Modul Relay 5V DC
  6. Adaptor atau Baterai 12V
  7. Kabel Jumper secukupnya

Langkah tutorial membuat alat sistem monitoring tegangan dan arus berbasis IoT dengan ESP32

  1. Siapkan alat-alat dan bahan yang diperlukan
  2. Rangkai semua bahan seperti pada gambar di atas
  3. Download library sensor INA219 DISINI !
  4. Ikuti langkah tutorial membuat widget dan gateway pada server ubeac
    Tutorial ESP8266 Mengirim Data Ke Server Ubeac HTTP
  5. Buat program Arduino IDE untuk ESP32 sistem monitoring tegangan dan arus berbasis IoT
  6. Upload progra dan amati hasil yang tampil pada serial monitor dan juga dashboard ubeac kalian.

Program Arduino IDE ESP32 Sistem Monitoring tegangan dan Arus Berbasis Internet Of Things

#include <ArduinoJson.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;

#define pinrelay 26

const char *url = "http://anakkendali.hub.ubeac.io/ESP32anakkendali";

const char *ssid = "Private_Wifi_";  //Nama Wifi
const char *password = "zelwata202010"; // pass wifi
int d ;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  ina219.begin();
  pinMode(pinrelay, OUTPUT);
  digitalWrite(pinrelay, 1);

  WiFi.disconnect();
  delay(100);
  WiFi.begin(ssid, password);
  Serial.println("");

  Serial.print("Connecting");
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    return;
  }

  Serial.println("Wifi Terkoneksi");

  uint32_t currentFrequency;


}

void loop() {
  // put your main code here, to run repeatedly:
  float current_mA = 0;
  float loadvoltage = 0;
  float power_mW = 0;

  if (Serial.available()) {
    d = Serial.parseInt();
  }
  if (d == 0) {
    digitalWrite(pinrelay, 0);
    Serial.println("Relay Nyala");
    current_mA = ina219.getCurrent_mA();
    power_mW = ina219.getPower_mW();
    loadvoltage = ina219.getBusVoltage_V() + (ina219.getShuntVoltage_mV() / 1000);

  } else if (d == 1) {
    digitalWrite(pinrelay, 1);
    Serial.println("Relay Mati");
    delay(100);
    current_mA = ina219.getCurrent_mA();
    power_mW = ina219.getPower_mW();
    loadvoltage = ina219.getBusVoltage_V() + (ina219.getShuntVoltage_mV() / 1000);
  }
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("Power:         "); Serial.print(power_mW); Serial.println(" mW");
  Serial.println("");
  senUbeac(current_mA, loadvoltage, power_mW);
  delay(1000);
}

void senUbeac(float a, float b, float c) {
  String postData = (String)"{\"uid\": \"ESP32\",\"ts\": 1542326605,\"sensors\":[";
  postData += (String)"{\"name\": \"arus\",\"unit\": 1,\"prefix\": 14,\"type\": 1,\"value\":" + a + "},";
  postData += (String)"{\"name\": \"tegangan\",\"unit\": 25,\"prefix\": 0,\"type\": 6,\"value\":" + b + "},";
  postData += (String)"{\"name\": \"daya\",\"unit\": 38,\"prefix\": 0,\"type\": 24,\"value\":" + c + "}";
  postData += "]}";

  HTTPClient http;
  http.begin(url);
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(postData);
  Serial.println(postData);

  if (httpCode > 0) {
    String payload = http.getString();
    Serial.println(payload);
  }
  else {
    Serial.printf("Error occurred while sending HTTP POST: %s\n", http.errorToString(httpCode).c_str());
  }

  http.end();
}

Berikut adalah hasil dari kode diatas yang tampak pada dashboard ubeac.com

Untuk tutorial lengkap pengaturan pada server ubeacnya saya sarankan kalian membaca artikel tentang esp32 dan ubeac atau bisa juga melihat video tutorial dibawah ini.

Keyword

  1. Koding Arduino Sistem IoT,
  2. Koding Monitoring Arus dan Tegangan,
  3. ESP32 Arus dan Tegangan,
  4. Arus dan Tegangan IoT,
  5. Monitoring Arus dan Tegangan Berbasis IoT,
  6. ESP32 INA219 Arduino IDE Door Lock,
  7. Kunci Pintu Monitoring IoT,
  8. Ubeac ESP32,
chaerul

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

6 days ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago