By | 06/01/2021
Tutorial ESP32 Monitoring Tegangan dan Arus Berbasis IoT dengan Server 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.

Tutorial ESP32 Monitoring Tegangan dan Arus Berbasis IoT dengan Server Ubeac

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

Tutorial ESP32 Monitoring Tegangan dan Arus Berbasis IoT dengan Server Ubeac
  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,

Leave a Reply

Your email address will not be published. Required fields are marked *