Halo Sahabat Indobot!
Sedang ada project apa hari ini?
Kali ini, kita akan belajar untuk memantau nyala lampu otomatis dengan menggunakan aplikasi telegram.
Telegram adalah aplikasi yang digunakan untuk berkomunikasi secara online.Aplikasi ini juga memiliki bot yang dapat kita gunakan untuk melakukan pengiriman data berbasis Internet of Things (IoT). Penggunaannya yang praktis sangat memudahkan kita untuk bisa melakukan kontrol dan monitoring device melalui sistem IoT.
Penyusunan sistem IoT ini dapat kita lakukan dengan device mikrokontroler yang sudah terfasilitasi wifi seperti NodeMCU ESP8266. NodeMCU ESP8266 adalah salah satu mikrokontroler yang memiliki fasilitas wifi dan bluetooth. NodeMCU ESP8266 cukup terkenal dalam bidang IoT. Mulai dari ukurannya yang kecil, hingga fasilitasnya yang sesuai dengan kebutuhan IoT.
Nah. Pada project kita kali ini, kita akan menghubungkan NodeMCU ESP8266 dengan relay yang akan dihubungkan dengan lampu yang membutuhkan sumber tegangan AC (220VAC). Lampu akan secara otomatis menyala saat gelap dan mati saat hari mulai terang. Namun kita dapat memantau nyala lampuu ini dengan menggunakan telegram. Dari telegram juga, kita dapat menyalakan dan mematikan lampu ketika LDR kurang berfungsi dengan baik. Bagaimana cara membuatnya? yuk kita simak caranya.
Alat dan juga Bahan
Alat dan bahan untuk project ini adalah sebagai berikut.
- Software Arduino ID
- NodeMCU ESP8266 1
- Relay 1 channel 1
- LDR 1
- Projectboard 1
- Kabel jumper Secukupnya
Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO
Rangkaian
Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.
Program
Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.
Jangan lupa untuk memasukkan terlebih dahulu library CTBot dan Arduino Json.
#include "CTBot.h" //Pendeklarasian Library #define lamp D1 #define LDR D2 CTBot myBot; TBMessage msg; String ssid = "*********"; //nama ssid wifi kalian String pass = "*********"; //password wifi kalian String token = "XXXX"; //token bot baru kalian const int id = XXXX; //id telegram kalian void setup() { //Pengaturan Variabel Serial.begin(9600); pinMode(lamp,OUTPUT); pinMode(LDR,INPUT); Serial.println("Starting TelegramBot..."); myBot.wifiConnect(ssid, pass); myBot.setTelegramToken(token); if (myBot.testConnection()) { Serial.println("Koneksi Bagus"); } else { Serial.println("Koneksi Jelek"); } myBot.sendMessage(msg.sender.id, (String)"Untuk Menghidupkan Lampu" + "\nKirimkan pesan >>> hidup" + "\n \nUntuk Mematikan Lampu" + "\nKirimkan pesan >>> mati" + "\n\nMengecek Kondisi Lampu"+ "\nKirimkan pesan >>> cek" ); } void loop() {} //Perulangan Programvoid setup() { int nilai = analogRead(LDR); int kondisi = 0; Serial.print("Nilai LDR: "); Serial.println(nilai); if (nilai <500) { digitalWrite(lamp, HIGH); //lampu akan menyala kondisi = 1; } else { digitalWrite(lamp, LOW); //lampu akan mati kondisi = 0; } if (myBot.getNewMessage(msg)) { if (msg.text.equalsIgnoreCase("hidup")) { //Perintah dari telegram ke perangkat digitalWrite(lamp, HIGH); //lampu akan menyala kondisi = 1; myBot.sendMessage(msg.sender.id, (String)"Lampu Halaman Menyala"); //Balasan dari perangkat ke Bot Telegram } if else(msg.text.equalsIgnoreCase("mati")) { //Perintah dari telegram ke perangkat digitalWrite(lamp, LOW); //lampu akan mati kondisi = 0; myBot.sendMessage(msg.sender.id, (String)"Lampu Halaman Mati"); //Balasan dari perangkat ke Bot Telegram } if else(msg.text.equalsIgnoreCase("cek")) { //Perintah dari telegram ke perangkat if (kondisi == 0) { myBot.sendMessage(msg.sender.id, (String)"Lampu Halaman Mati"); //Balasan dari perangkat ke Bot Telegram } else { myBot.sendMessage(msg.sender.id, (String)"Lampu Halaman Hidup"); //Balasan dari perangkat ke Bot Telegram } } else { myBot.sendMessage(msg.sender.id, (String)"Untuk Menghidupkan Lampu" + "\nKirimkan pesan >>> hidup" + "\n \nUntuk Mematikan Lampu" + "\nKirimkan pesan >>> mati" ); } } |
baca juga: Solar Tracker Sederhana Dengan Sensor LDR Arduino Uno
Untuk mendapatkan Token Bot dan ID telegram, kita dapat melakukan cara berikut.
- cari BotFather
- Buka BotFather > klik Start > ketik /newbot > beri nama bot > beri username bot > Simpan token yang diberikan untuk dimasukkan program nanti. Untuk masuk ke bot yang baru dibuat, bisa klik link yang diberikan pada bagian setelah “You will find it at …”, dan jika sudah masuk bisa ketik /start
Gambar pembuatan bot baru
Gambar token yang didapat
- Setelah itu diperlukan id telegram kita dengan cara : cari IDBot > klik Start > ketik /getid
- Maka token dan ID Telegram sudah kita dapatkan.
Masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di
ssid = “**********”;
pass = “**********”;
token = “XXXXX”;
const int id = XXXXXX;
Upload program di atas, kemudian kita dapat mulai mencobanya dengan diawali ke telegram bot milik kita dan klik start.
baca juga: Pemantau Suhu Akuarium Menggunakan Sensor DS18B20 dengan IoT Telegram
Hasil dari project ini adalah pengguna dapat mengontrol lampu nyala atau mati dengan mengirimkan kode hidup atau mati. Namun tanpa menggunakan cara ini, lampu tetap bisa menyala dengan menggunakan sensor LDR yang mengikuti cahaya. Jadi kendali lampu dengan telegram tadi hanya sebagai antisipasi jika LDR tidak berfungsi. Kita dapat memantaunya dengan mengirimkan kata “cek” ke telegram bot kita.
Bagaimana? Tertarik untuk membuatnya? Yuk bisa dicoba. Bisa dikembangkan sendiri yaa.
Semangat!
Mau belajar elektronika dasar? Arduino? atau bahkan Internet of Things? Ikuti kursus online Indobot Academy!