Senin, 16 Desember 2024

Mengontrol solar panel dengan IoT

 bangsoy@gmail.com

Mengontrol solar panel dengan IoT memungkinkan Anda memantau dan mengoptimalkan penggunaan energi secara otomatis dan real-time. Berikut adalah panduan cara membuat sistem kontrol solar panel berbasis IoT:


Komponen yang Dibutuhkan:

  1. Solar Panel

    • Panel surya sesuai kebutuhan daya.
  2. Battery Bank

    • Menyimpan energi dari solar panel.
  3. Charge Controller

    • Mengatur pengisian daya dari panel surya ke baterai.
  4. Microcontroller dengan Wi-Fi

    • Pilihan populer: ESP8266, ESP32, atau Arduino dengan modul ESP8266.
  5. Sensor

    • Sensor arus dan tegangan (INA219, ACS712) untuk memantau output solar panel.
    • Sensor cahaya (LDR) untuk mendeteksi intensitas sinar matahari.
    • Sensor suhu (DS18B20) untuk memantau suhu baterai atau panel.
  6. Relay Module

    • Untuk mengontrol perangkat tambahan seperti inverter atau beban.
  7. Platform IoT

    • Contoh: Blynk, ThingSpeak, atau Adafruit IO.

Fitur Utama Sistem:

  1. Monitoring Real-Time:

    • Pantau tegangan, arus, daya yang dihasilkan, dan status baterai melalui aplikasi IoT.
  2. Kontrol Beban:

    • Hidupkan/matikan beban (misalnya, lampu atau peralatan listrik) berdasarkan level baterai.
  3. Tracking Matahari (Opsional):

    • Menggerakkan solar panel mengikuti arah matahari menggunakan motor servo.

Skema Koneksi:

Komponen utama:

  1. Sambungkan solar panel ke charge controller.
  2. Hubungkan battery bank ke output charge controller.
  3. Sambungkan microcontroller (ESP8266/ESP32) ke sensor tegangan/arustegangan pada output solar panel dan baterai.
  4. Sambungkan relay module ke microcontroller untuk mengontrol perangkat atau inverter.

Kode Contoh (Menggunakan Blynk & ESP32):

Berikut adalah kode untuk mengontrol dan memantau solar panel dengan Blynk:

cpp
#define BLYNK_TEMPLATE_ID "YourTemplateID" #define BLYNK_DEVICE_NAME "Solar Panel Monitor" #define BLYNK_AUTH_TOKEN "YourAuthToken" #include <WiFi.h> #include <BlynkSimpleEsp32.h> // Kredensial Wi-Fi char ssid[] = "YourWiFiSSID"; char pass[] = "YourWiFiPassword"; // Pin untuk sensor #define VOLTAGE_PIN A0 // Pin ADC untuk membaca tegangan #define CURRENT_PIN A1 // Pin ADC untuk membaca arus #define RELAY_PIN D2 // Relay untuk mengontrol beban float voltage = 0.0; // Variabel untuk menyimpan tegangan float current = 0.0; // Variabel untuk menyimpan arus void setup() { // Inisialisasi Serial Monitor Serial.begin(115200); // Inisialisasi Blynk Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // Atur pin relay sebagai output pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // Beban mati saat awal Serial.println("System Ready!"); } void loop() { // Jalankan Blynk Blynk.run(); // Baca tegangan dari sensor voltage = analogRead(VOLTAGE_PIN) * (5.0 / 1023.0) * 11; // Divider Ratio 1:10 current = analogRead(CURRENT_PIN) * (5.0 / 1023.0) * 30; // Kalibrasi sensor arus // Kirim data ke Blynk Blynk.virtualWrite(V0, voltage); // Tegangan Blynk.virtualWrite(V1, current); // Arus // Log ke Serial Monitor Serial.print("Voltage: "); Serial.print(voltage); Serial.print(" V | Current: "); Serial.print(current); Serial.println(" A"); } // Fungsi untuk mengontrol relay dari Blynk BLYNK_WRITE(V2) { int relayState = param.asInt(); digitalWrite(RELAY_PIN, relayState); }

Penjelasan Kode:

  1. BLYNK_WRITE(V2):
    Fungsi ini mengontrol relay berdasarkan input dari aplikasi Blynk.

  2. Sensor Tegangan dan Arus:
    Tegangan dan arus dibaca melalui pin ADC pada ESP32 menggunakan sensor seperti INA219 atau ACS712.

  3. Virtual Pin:
    Data dikirim ke aplikasi Blynk melalui pin virtual (V0 dan V1).

  4. Relay Kontrol:
    Relay dapat dihidupkan/matikan melalui aplikasi Blynk.


Dashboard di Aplikasi Blynk:

  1. Tegangan (V0):
    Tambahkan widget "Gauge" untuk menampilkan tegangan.
  2. Arus (V1):
    Tambahkan widget "Gauge" untuk menampilkan arus.
  3. Kontrol Beban (V2):
    Tambahkan widget "Button" untuk mengontrol relay.

Pengembangan Lanjutan:

  1. Solar Tracker:
    Gunakan motor servo untuk menggerakkan panel mengikuti arah matahari dengan bantuan sensor cahaya (LDR).
  2. Automasi Beban:
    Tambahkan logika otomatis untuk mematikan beban saat baterai rendah.
  3. Notifikasi:
    Kirim notifikasi saat tegangan baterai rendah atau saat panel tidak menghasilkan daya.

Tidak ada komentar: