Memantau Nyala Lampu Otomatis LDR dengan IoT Telegram

Indobot Update

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.

  1. Software Arduino ID
  2. NodeMCU ESP8266 1
  3. Relay 1 channel 1
  4. LDR 1
  5. Projectboard 1
  6. 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!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp