Anda di halaman 1dari 77

Monitoring Energi dan Kendali Beban

Listrik dengan Sistem IoT Berbasis


Microcontroller
Rancangan Training IoT Berbasis Microcontroller
Tujuan Training

Mampu melakukan monitoring penggunaan energi listrik


secara realtime melalui webservice atau mobile apps

Mampu melakukan akuisisi data penggunaan energi listrik


dalam kurun waktu tertentu

Mampu melakukan pengaturan atau pembatasan operasi


beban listrik secara otomatis maupun manual.
Materi Training
Pengendalian
Konfigurasi dan set up
output digital
microcontroller

Mengakses
Menampilkan dan
sensor
pembacaan
kondisi/statu
Mengakses
besaran
input
s pada digital
LCD
microcontroll
listrik dengan
er pada
Membuat
Menampilkan
komunikasi
platform
aplikasi
data
serial
blynk
android
monitoring
pada aplikasi
Peralatan

1 Unit Laptop berisi 1 Set alat peraga 1 pcs sensor HP sebagai device
software Arduino IDE microcontroller ESP32 PZEM004T untuk menjalankan
aplikasi android.
Konfigurasi dan set up microcontroller
Menambahkan URL untuk preferensi ESP32
1. Klik File --> Preferences
2. Copy text :
https://raw.githubusercontent.com/espressif/arduino-
esp32/gh-pages/package_esp32_index.json
ke kolom di bawah, klik OK
Download Board ESP32
1. Klik Tools --> Board --> Board Manager
2. Ketik ESP32 pada kotak di bawah, pada hasil search klik
Install
3. Setelah selesai, klik Close
Select Board ESP32
1. Klik Tools --> Board --> ESP32 Arduino
2. Pilih board yang sesuai dengan board ESP32
yang dimiliki
Select Port ESP32
1. Klik Tools --> Port
2. Pilih Port yang terhubung dari PC/ laptop
dengan ESP32 (pastikan ESP32 sudah terhubung
melalui USB)
Pengendalian output digital dan
pembacaan input digital
Wiring Diagram
Pull Down Resistor
Program ESP32 (Input Pull Down Resistor)
1. Tulis program seperti berikut dengan prinsip kerja:
- Lampu akan menyala saat pin 23 mendapatkan positif
(push button ditekan)
- Lampu akan mati saat pin 23 mendapatkan 0 (push
button dilepas)
2. Klik tombol Upload (ditandai kotak warna kuning)
3. Tunggu hingga proses upload program selesai
Wiring Diagram
Internal Pull Up Resistor
Program ESP32 (Internal Input Pull Up Resistor)
1. Tulis program seperti berikut dengan prinsip kerja:
- Lampu akan menyala saat pin 23 mendapatkan 0 (push
button ditekan)
- Lampu akan mati saat pin 23 mendapatkan positif (push
button dilepas)
2. Klik tombol Upload (ditandai kotak warna kuning)
3. Tunggu hingga proses upload program selesai
Pengendalian output digital dan
pembacaan input digital
Wiring Diagram
Input Output dengan
menambahkan LCD 16x2
Memasukkan Library baru ke ESP32
1. Klik Sketch--> Include Library --> Add .ZIP Library
Memasukkan Library I2C LCD
1. Download file library nya, bisa download di :
https://github.com/johnrickman/LiquidCrystal_I2C
2. Klik Open
int InputPin = 23;
int OutputPin = 2;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() { Program ESP32 (I2C LCD)


// put your setup code here, to run once: 1. Tulis program seperti berikut dengan prinsip kerja:
pinMode(InputPin, INPUT);
pinMode(OutputPin, OUTPUT); - LCD akan menampilkan teks “Switch dilepas” saat
lcd.begin(); tombol tidak ditekan
} - LCD akan menampilkan teks “Switch ditekan” saat
void loop() {
tombol ditekan
lcd.cursor();
bool statusInput = digitalRead(InputPin);
if (statusInput == true){
digitalWrite(OutputPin, HIGH);
lcd.clear();
lcd.print("Switch ditekan!");
lcd.blink();
}
else{
digitalWrite(OutputPin, LOW);
lcd.clear();
lcd.print("Switch dilepas!");
lcd.noBlink();
}
delay(1000);
}
Mengakses sensor besaran listrik
dengan komunikasi serial
Wiring Diagram
PZEM-004T dengan
ESP32
Memasukkan Library PZEM-004T
1. Download file library nya, bisa download di :
https://github.com/mandulaj/PZEM-004T-v30
2. Klik Open
#include <PZEM004Tv30.h>
#define RXD2 16
#define TXD2 17

PZEM004Tv30 pzem_r(&Serial2, RXD2, TXD2);


float vr;
float ir;
float freq; Program ESP32 (Input Pull Down Resistor)
float pf_r;
float energy; 1. Tulis program seperti berikut dengan prinsip kerja:
float power;
- Setiap 2 detik, di serial monitor akan menampilkan nilai
void setup() {
Serial.begin(115200); voltage, current, pf, power, energy, dan freq
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}

void loop() {
baca_pzem();
Serial.print("Volt: ");Serial.print(vr,2 );Serial.print("V, ");
Serial.print("curr: ");Serial.print(ir,3);Serial.print("A, ");
Serial.print("pf: ");Serial.print(pf_r);Serial.println("%, ");
Serial.print("Power: ");Serial.print(power);Serial.print("W, ");
Serial.print("Energy: ");Serial.print(energy,3);Serial.print("kWh, ");
Serial.print("freq: ");Serial.print(freq,1);Serial.println("Hz, ");
Serial.println();
delay(2000);
}

void baca_pzem(){
vr = pzem_r.voltage();
ir = pzem_r.current();
freq = pzem_r.frequency();
pf_r = pzem_r.pf();
power = pzem_r.power();
energy = pzem_r.energy();
}
Buka Serial Monitor (Tools --> Serial Monitor)
1. Ubah Baud rate menjadi 115200 baud
Mengakses microcontroller
pada platform blynk
Blynk Login
1. Buka halaman web :
https://blynk.cloud/dashboard/login
2. Login dengan username dan akun masing - masing
3. Klik Create new account jika belum memiliki akun,
lanjutkan dengan email masing - masing
Blynk Setup
1. Klik Template
Blynk Setup
2. Klik New Template
Blynk Setup
3. Isi dengan nama
template (bebas),
setelah itu klik Done
Blynk Setup
4. Klik Datastreams
Blynk Setup
5. Klik New
Datastreams, pilih
Virtual Pin
Blynk Setup
6. Isi data seperti
berikut, lalu klik Create
Blynk Setup
7. Isi data seperti
berikut untuk format
integer, pastikan MAX
value nya terisi
Blynk Setup
7. Isi data seperti
berikut untuk format
double
Blynk Setup
8. Hasilnya seperti
berikut, klik Save
Blynk Setup
9. Klik Search, untuk
membuat device
Blynk Setup
10. Klik New Device
Blynk Setup
11. Klik From template
Blynk Setup
12. Pilih template, isi
Device Name, klik
Create
Add Blynk Library
1. Klik Sketch ---> Include Library --> Manage
Libraries
Add Blynk Library
1. Ketik Blynk, pada hasil paling atas klik Install,
setelah selesai klik Close
#define BLYNK_PRINT Serial

/* Fill-in your Template ID (only if using Blynk.Cloud) */


#define BLYNK_TEMPLATE_ID "TMPLl2mMf3-2"
#define BLYNK_DEVICE_NAME "ESP32Training1"
#define BLYNK_AUTH_TOKEN "kfwTxGmFdP0fnadlgMS7tQc81OtLJmJ8"

Program ESP32 (Input to Output)


#include <WiFi.h>
#include <WiFiClient.h> 1. Tulis program seperti berikut dengan prinsip kerja:
#include <BlynkSimpleEsp32.h>
- Virtual Pin yang dipasang sebagai Input akan merubah
// Your WiFi credentials.
// Set password to "" for open networks. nilai Output dengan ESP32
char ssid[] = "LatticeAtas";
char pass[] = "muarabkr123";

BLYNK_WRITE(V0)
{
int pinValue = param.asInt(); // assigning incoming value from pin V1 to a
variable
Blynk.virtualWrite(V1, pinValue );
// process received value
}

void setup()
{
// Debug console
Serial.begin(9600);

Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);


}

void loop()
{
Blynk.run();
}
Blynk Android Setup
1. Klik ESP32Training
Blynk Android Setup
2. Klik Setup Dashboard
Blynk Android Setup
3. Klik tombol list berikut
Blynk Android Setup
4. Klik Button
Blynk Android Setup
5. Button sudah berhasil diinput. Klik kembali tombol list
Blynk Android Setup
6. Klik LED
Blynk Android Setup
7. LED sudah berhasil diinput
Blynk Android Setup
8. Drag untuk menempatkan ke posisi yang diinginkan
Blynk Android Setup
9. Klik Button untuk membuka Properties
10. Klik Select Data Stream
Blynk Android Setup
11. Klik Input0
Blynk Android Setup
11. Klik Mode SWITCH
Blynk Android Setup
12. Isi Title sesuai keinginan masing - masing
13. Klik tombol Back
Blynk Android Setup
14. Klik LED, isi properties seperti berikut
Blynk Android Setup
15. Klik Back kembali di halaman dashboard maka
halaman Dashboard Setting, akan muncul halaman
seperti ini.
Blynk Android Setup
16. Saat kita menekan Button, maka LED akan menyala
juga sebagai efek dari program ESP32, saat mematikan
Button maka LED akan mati juga.
Membuat aplikasi android
App Inventor Login
1. Buka halaman web : http://ai2.appinventor.mit.edu/

2. Login dengan Google


Android
Apps Setup
3. Klik Start new project
Android
Apps Setup
4. Isi Project name, klik
OK
Android
Apps Setup
4. Aplikasi telah berhasil
dibuat
Menampilkan data monitoring
pada aplikasi android
#include "BluetoothSerial.h"

BluetoothSerial ESP_BT;
int OutputPin = 2;

void setup() {
Serial.begin(19200); Program ESP32 (Android to ESP32)
ESP_BT.begin("ESP32_Control"); // Name of your Bluetooth
interface -> will show up on your phone 1. Tulis program seperti berikut dengan prinsip kerja:
pinMode(OutputPin, OUTPUT); - Terdapat tombol pada apps, dimana ketika tombol
}
ditekan akan menyalakan/ mematikan led, kemudian ESP32
mengirim nilai random ke apps
void loop() {
// put your main code here, to run repeatedly:
if (ESP_BT.available())
{
int value = ESP_BT.read(); //Read what we receive and store in
"incoming"
digitalWrite(OutputPin, value);
ESP_BT.write(random(0, 1000));
}
}
Android
Apps Setup
1. Klik Projects -->
Import Project (.aia)
from my computer
* Link Download :
https://1drv.ms/u/s!ArEl
KeXxwqmKg8J38Vq2T
GfATimGgA?e=bXwdZ5
Android
Apps Setup
2. Program aplikasi
dalam bentuk puzzle
Android
Apps Setup
3. Klick Connect --> AI
Companion untuk
terhubung ke Android
masing - masing
Android
Apps Setup
5. Android harus scan
barcode tersebut untuk
bisa menjalankan
aplikasi di Android
AI2 Companion Setup
6. Install MIT AI2 Companion dari Play Store
AI2 Companion Setup
7. Lakukan pairing Android ke ESP32 (pastikan program
sudah terdownload)
AI2 Companion Setup
8. Scan QR Code pada halaman yang tadi telah muncul
QR di laptop
AI2 Companion Setup
9. Setelah berhasil scan, halaman aplikasi akan muncul
di Android
10. Klik pada ESP32_Control untuk menghubungkan
aplikasi ke ESP32
AI2 Companion Setup
11. Saat terhubung, status akan berubah menjadi
Connected, dan list Bluetooth akan menghilang
AI2 Companion Setup
12. Klik pada tombol OFF, maka akan berubah menjadi
ON dan LED pada ESP32 akan menyala, kemudian text
from ESP32 akan menampilkan nilai random yang
dikirim dari ESP32
AI2 Companion Setup
13. Saat ditekan ON, akan kembali ke OFF dan LED
mati
AI2 Companion Setup
14. Tombol Disconnect ditekan, maka akan muncul
seperti ini.

*Silakan untuk memodifikasi aplikasi dan program


masing - masing
Thanks

Anda mungkin juga menyukai