Cara Kirim Nilai Sensor Menggunakan LoRa E220-400T22D ke Blynk
Sesuai judul bahwa pada tutorial ini akan menunjukan tutorial cara mengirimkan nilai sensor yang dibaca mikrokontroler kemudian akan dikirimkan ke gateway dengan komunikasi LoRa serta data yang diterima oleh gateway akan diteruskan ke platform IoT Blynk melalui network server sehingga hasil pembacaan sensor dapat kita lihat secara realtime pada tampilan aplikasi Blynk atau Blynk web dashboard.
Pada proyek IoT ini membutuhkan 2 mikrokontroler yang akan dijadikan sebagai End-Nodes & Gateway. Dimana pada Tutorial ini admin akan menggunakan Arduino UNO sebagai End-Nodes dan ESP-32 sebagai Gateway. Untuk sensor yang akan digunakan adalah DHT 11.
Cara kerjanya adalah pada End-Nodes, sensor DHT11 akan terhubung dengan Arduino dimana nilai Temperatur & kelembaban akan dikirimkan ke Gateway dengan komunikasi LoRa dimana mikrokontroler yang akan dijadikan sebagai Gateway adalah ESP32. Untuk modul LoRa yang akan digunakan adalah EBYTE E220-400T22D. ESP32 akan terhubung ke jaringan internet (WiFi) agar data suhu & kelembaban dapat ditampilkan ke Blynk.
Pada percobaan ini admin akan menggunakan jenis transmisi fixed. teman – teman bisa mengikuti tutorial – tutorial sebelumnya untuk mempermudah percobaan ini.
Untuk modul / sensor yang akan digunakan, teman – teman bisa dapatkan di Toko DT Production yang ada di Tokopedia / Shopee. adapun yang perlu teman – teman siapkan sebagai berikut.
Lora E220-400T22D | Tokopedia | Shopee
Antenna 5dbi 433MHz | Tokopedia | Shopee
Arduino UNO | Tokopedia | Shopee
ESP32 Devkit | Tokopedia | Shopee
Sensor DHT11 | Tokopedia | Shopee
Jumper M-F | Tokopedia | Shopee
Base Board ESP32 | Tokopedia | Shopee
Bread Board (optional) | Tokopedia | Shopee
Wairing
Tahapan pertama kita akan merangkai pada bagian End-Nodes. hubungkan sesuai gambar berikut.
Konfigurasi Modul LoRa E220-400T22D (Arduino UNO/ Transmitter) masih sama seperti tutorial : Menghubungkan LoRa E220-400T22D Dengan Arduino & ESP32 Menggunakan Fixed Transmition
Tahapan selanjutnya kita akan merangkai pada bagian Gateway. hubungkan sesuai gambar berikut.
Konfigurasi Modul LoRa E220-400T22D (ESP32/ Receiver) masih sama seperti tutorial : Menghubungkan LoRa E220-400T22D Dengan Arduino & ESP32 Menggunakan Fixed Transmition
930 x 180 AD PLACEMENT
Pemrograman
Membuat Template & Menambah Device di Blynk
Pada tahap ini pertama yang akan kita lakukan adalah membuat 1 template & device di website blynk. Jika teman – teman belum daftar, silahkan kunjungi website Blynk dan lakukan pendaftaran.
Setelah terdaftar ikuti video berikut untuk cara membuat template & device.
Tramsmitter (End-Nodes)
Selanjutnya kita masuk pada pemrograman Arduino. pertama teman – teman harus memasitkan hal – hal berikut.
- Installasi Driver sesuai tipe Arduino yang digunakan. Jika menggunakan Arduino versi CH340 maka harus installasi driver terlebih dahulu.
- Melakukan konfigurasi pada modul LoRa E220-400T22D menjadi Fixed Transmition.
- Tambahkan library EByte_LoRa_E220_library pada software Arduino IDE | Download Library
- Tambahkan library DHT Sensor Library pada software Arduino IDE| Download Library
- Tambahkan library Adafruit Unified Sensor pada software Arduino IDE| Download Library
- Tambahkan library Arduino JSON pada software Arduino IDE| Download Library
- Jika di komputer / laptop memiliki Antivirus maka nonaktifkan dulu saat melakukan pemrograman.
- Jika di komputer / laptop Windows Defender Realtime Protection dalam keadaan aktif maka nonaktifkan terlebih dahulu.
Jika sudah hal – hal diatas sudah dilakukan, maka teman – teman Copy program berikut dan Paste pada software Arduino IDE.
#define DESTINATION_ADDL 10 #include "Arduino.h" #include "LoRa_E220.h" #include <SoftwareSerial.h>; #include <ArduinoJson.h>; #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT11 SoftwareSerial mySerial(2, 3); LoRa_E220 e220ttl(&mySerial); DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); delay(500); e220ttl.begin(); dht.begin(); } void loop() { String sensor = sensorRead(); Serial.println(sensor); ResponseStatus rs = e220ttl.sendFixedMessage(0, DESTINATION_ADDL, 23, sensor); Serial.print("Status : "); Serial.println(rs.getResponseDescription()); } String sensorRead() { int hum = dht.readHumidity(); int temp = dht.readTemperature(); DynamicJsonDocument doc(800); doc["temp"] = temp; doc["hum"] = hum; String json; serializeJson(doc, json); return json; }
Perhatikan pada baris program :
#define DESTINATION_ADDL 10
10 adalah address yang admin set untuk modul LoRa E220-400T22D gateway (Receiver / Yang terhubung ke ESP32). Gantilah sesuai dengan yang teman – teman set.
Selanjutnya, teman – teman sudah bisa melakukan upload program ke Arduino. pastikan untuk memlih Board Arduino UNO & COM Port agar upload program berhasil.
Receiver (Gateway)
Setelah program pada End-Nodes sudah berhasil kita upload langkah selanjutnya kita akan melakukan pemrograman pada Gateway yakni ESP32. Pastikan hal – hal berikut.
- Installasi Board ESP32 di software arduino IDE. pada percobaan ini admin versi Board ESP32 yang admin install adalah 1.0.2.
- Melakukan konfigurasi pada modul LoRa E220-400T22D menjadi Fixed Transmition.
- Tambahkan library Blynk pada software Arduino IDE | Download Library
- Jika di komputer / laptop memiliki Antivirus maka nonaktifkan dulu saat melakukan pemrograman.
- Jika di komputer / laptop Windows Defender Realtime Protection dalam keadaan aktif maka nonaktifkan terlebih dahulu.
Kemudian, teman – teman Copy & Paste kode berikut ke Arduino IDE Receiver/ Gateway.
#define BLYNK_TEMPLATE_ID "XXXXXX" #define BLYNK_DEVICE_NAME "XXXXX" char auth[] = "XXXXXX"; char ssid[] = "XXXXXX"; char pass[] = "XXXXXX"; #define BLYNK_PRINT Serial #include <WiFi.h>; #include <WiFiClient.h>; #include <BlynkSimpleEsp32.h>; #include <ArduinoJson.h>; #include "Arduino.h" #include "LoRa_E220.h" LoRa_E220 e220ttl(&Serial2); void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); delay(500); e220ttl.begin(); Serial.println("Start receiving!"); } void loop() { Blynk.run(); if (e220ttl.available() > 1) { Serial.println("Message received!"); ResponseContainer rc = e220ttl.receiveMessage(); if (rc.status.code != 1) { Serial.println(rc.status.getResponseDescription()); } else { Serial.println("Device : ESP32"); Serial.print("Message : "); Serial.println(rc.data); Serial.print("Status : "); Serial.println(rc.status.getResponseDescription()); char json[500]; rc.data.toCharArray(json, 500); StaticJsonDocument<800> doc; deserializeJson(doc, json); int temp = doc["temp"]; int hum = doc["hum"]; Blynk.virtualWrite(V0, temp); Blynk.virtualWrite(V1, hum); Serial.println(); } } delay(100); }
Perhatikan pada baris program :
#define BLYNK_TEMPLATE_ID "XXXXXX"
Ganti nilai XXXXX dengan template ID dari template yang sudah teman – teman buat di Blynk.
Kemudian pada baris program :
#define BLYNK_DEVICE_NAME "XXXXXXX"
Ganti nilai XXXXX dengan nama template yang sudah teman – teman buat di Blynk.
Selanjutnya pada baris program :
char auth[] = "XXXXXX";
Ganti nilai XXXXX dengan auth token yang teman – teman dapatkan dari Blynk.
Dan yang terakhir pada baris program berikut :
char ssid[] = "XXXX"; char pass[] = "XXXX";
Ganti nilai XXXX pada variabel ssid dengan nama WiFi yang nanti akan terkoneksi dengan ESP32. Kemudian nilai XXXX pada variabel pass gantilah dengan Password dari WiFi yang nanti akan terkoneksi dengan ESP32.
Jika sudah, teman – teman sudah bisa melakukan upload program. Pastikan sebelum melakukan upload program sudah memilih board ESP32 Devkit V1 & COM PORT ESP32 yang terdeteksi di software Arduino IDE.
Pengujian
Pada tahapan ini akan menunjukan apakah data temperatur dan kelembaban akan berhasil ditampilkan pada Platform Blynk. Berikut ini dokumentasi Serial monitor pada Arduino sebagai End-Nodes.
Arduino / End-Nodes Serial Montior
Dapat dilihat bahwa data dalam bentuk JSON berhasil di encode dari program yang sudah kita buat. kemudian data dalam bentuk json tersebut diteruskan ke ESP32.
Pada ESP32/Gateway berikut ini dokumentasi ketika berhasil terhubung ke Blynk.
ESP32 / Gateway Berhasil terhubung ke Blynk
Selanjutnya jika berhasil terhubung maka jika data berhasil terkirim dari End-Nodes ke Gateway / ESP32 maka diserial monitor akan tampil seperti gambar berikut.
Setelah data diterima Gateway, Saat terhubung dengan Blynk maka data dalam bentuk JSON akan di decode dahulu kemudian di teruskan ke Blynk. Lihat gambar berikut.
Adapun video pengujianya adalah sebagai berikut.
Terima kasih & semoga bermanfaat.