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.
Jika kalian sudah bisa mengikuti ketiga tutorial diatas, saya yakin untuk mengikuti tutorial kali ini pun akan lebih mudah dipahami dan mudah diikuti.
#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.
Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…
Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…
Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…
Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…
Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…
Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…