Halo Sahabat Indobot.
Sudah pernah membuat sistem Internet of Things (IoT)?
Kali ini kita akan membahas cara membuat sistem IoT dengan menggunakan blynk.
Blynk merupakan platform yang dapat berfungsi secara praktis untuk membuat sebuah sistem IoT. apat diunduh secara gratis untuk iOS dan Android. Blynk berfungsi untuk mengontrol Arduino, NodeMCU atau mikrokontroler lainnya melalui wifi dan internet. Platform ini sangat userfriendly dengan berbagai fasilitas yang mudah untuk kita pahami tanpa harus melalui program yang rumit.
Nah untuk memudahkan teman-teman dalam menggunakan platform ini, saya akan coba menjelaskan perbedaan paling mendasar dalam mengendalikan aktuator/indikator dan menerima data dari sensor. Perbedaan ini artinya dalam mengendalikan aktuator/indikator, kita harus mengirimkan informasi dari Blynk ke mikrokontroler. Contohnya seperti kita ingin mematikan dan menghidupkan lampu melalui blynk atau seperti kita ingin mengendalikan putaran motor listrik melalui blynk. Sedangkan menerima data dari sensor adalah kita mengirimkan data dari mikrokontroler ke blynk. Contohnya seperti pemantauan suhu. Jadi kita perlu mengirimkan perubahan nilai suhu dari pembacaan sensor ke blynk untuk dipantau.
Langsung saja kita coba liat perbedaannya.
Konsultasikan project mu bersama Tutor Indobot Academy dengan cara registrasi melalui tombol di bawah!
Pengiriman data dari Blynk ke NodeMCU ESP8266
Berikut ini adalah program untuk mengirim data dari Blynk ke NodeMCU.
Simpel sekali ya. Yaps benar. Namun program di atas hanya untuk mengendalikan dalam bentuk digital (sistem 0 dan 1). Jadi hanya menyalakan dan mematikan seperti relay, LED, lampu, motor DC, dan lainnya yang hanya membutuhkan mati dan hidup. Untuk program di atas dapat digunakan untuk beberapa tombol on off. Berapapun tombol on off yang digunakan, program tetap sama, yaitu seperti di atas. lalu bagaimana cara program untuk membedakan tombolnya untuk lampu yang mana?
Caranya ada pada blynk. Contoh hasil blynknya adalah sebagai berikut.
Pada gambar di atas, ada 4 tombol on off. Nah di setiap tombol ini, kita dapat membedakan pin nya. Silakan teman-teman dapat sesuaikan pin ini dengan pin yang digunakan di NodeMCU masing-masing. Lebih lengkapnya dapat dilihat di SINI.
Lalu bagaimana kita bisa mengendalikan nodeMCU dengan nilai Analog? Caranya adalah dengan membuat variabel pada blynk yang kemudian dideklarasikan pada program untuk NodeMCU. Berikut ini program yang dapat digunakan.
/* Program Kontrol Servo dengan Blynk dibuat oleh Indobot */ #define BLYNK_PRINT Serial //Pendeklarasian Library #include <BlynkSimpleEsp8266.h>; #include <Servo.h>; char auth[] = "XXXX"; // masukkan kode autentikasi disini char ssid[] = "Indobot"; //nama wifi char pass[] = "123456789"; //password Servo servo; //Deklarasi Kontrol Servo BLYNK_WRITE(V3){ servo.write(param.asInt()); } void setup(){ //Pengaturan Pin dan Variabel Serial.begin(9600); Blynk.begin(auth, ssid, pass); servo.attach(9); } void loop(){ //Perulangan Program Blynk.run(); } |
baca juga: Penghitung Benda Masuk IoT BLYNK
Program di atas dapat mengendalikan putaran servo. Perbedaan dengan program sebelumnya (tombol on off) adalah adanya
BLYNK_WRITE(V3){
servo.write(param.asInt());
}
program ini berfungsi untuk membaca hasil pengiriman dari blynk yang kemudian dilakukan langsung oleh servo. V3 adalah variabel yang kita pilih di aplikasi bynk. Berikut tampilan pada aplikasi Blynk.
Untuk lebih lengkapnya, teman-teman dapat lihat di SINI.
Oh ya, untuk program tambahan lainnya itu program bawaan untuk servo ya. Jadi teman-teman tetap memasukkan program bawaan untuk menjalankan salah satu device.
Pengiriman data dari NodeMCU ESP8266 ke Blynk
Program untuk pengiriman data dari NodeMCU ESP8266 ke Blynk adalah sebagai berikut.
/* Program Monitoring Suhu dan Kelembaban dibuat oleh Indobot */ #define BLYNK_PRINT Serial //Pendeklarasian Library #include <ESP8266WiFi.h>; #include <BlynkSimpleEsp8266.h>; #include <DHT.h>; char auth[] = "XXXX"; // masukkan kode autentikasi disini char ssid[] = "Indobot"; //nama wifi char pass[] = "123456789"; //password #define DHTPIN 2 // Pemilihan Pin D4 dan pendeklarasian variabel #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; void sendSensor(){ //Pengaturan Variabel Sensor dan Virtual Pin float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); } void setup(){ //Pengaturan Variabel Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); timer.setInterval(1000L, sendSensor); } void loop(){ //Perulangan Program Blynk.run(); timer.run(); } |
Program di atas adalah program untuk mengirimkan 2 data dari pembacaan sensor DHT11 yaitu suhu dan kelembaban. Beberapa statement seperti
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
dht.begin();
hanya tambahan sebagai bawaan dari DHT11 ya. Artinya ketika teman-teman mencoba menggunakan sensor lain, program di atas tidak diperlukan. Lalu bagian apa saja yang penting?
Hampir sama dengan program awal, hanya kita tambahkan function baru untuk pengiriman data yaitu sendSensor(). Pada bagian ini, kita perlu menuliskan pembacaan sensor dan ke variabel yang mana data ini dikirimkan. Contohnya seperti float h = dht.readHumidity(); sebagai pembacaan sensor, kemudian Blynk.virtualWrite(V5, h); sebagai penjelasan variabel mana data ini akan dikirimkan.
Variabel ini kemudian kita masukan ke tampilan Blynk yang kita gunakan.
Lebih lengkapnya dapat diliat di SINI.
baca juga: Monitoring Ketinggian Tandon Air IoT BLYNK
Begitulah cara menghubungkan Blynk dan NodeMCU baik pengiriman maupun penerimaan data. Teman-teman juga dapat menggabungkan keduanya.
Selamat mencoba.
Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!