IoT Project: ESP 01 Kontrol Relay via Telegram

Sebelumnya telah dilakukan percobaan-percobaan kontrol menggunakan ESP01 ini. Aplikasi ini merupakan pengembangan dari postingan sebelumnya yaitu dasar pengendalian ESP 01 via telegram dan desain rangkaian ESP 01 menggunakan relay modul. Pastikan telah memahami langkah langkah pada percobaan sebelumnya. Langsung saja kita uji coba!

1. Desain Hardware
Untuk perancangan alatnya adalah sama seperti disini. Perangkat utama adalah ESP01, Relay Module, dan AC-DC power supply module. Susun perangkat sebagaimana pada wiring diagram.
ESP 01 Kontrol Relay via Telegram

2. Program
Untuk program ESP 01 dapat dilihat /copas di bawah ini (pastikan telah membuat bot telegramnya sehingga sudah mendapatkan BotTokennya):
**update 15/04/20: terdapat beberapa perubahan terkait library Arduino Json sehingga untuk amannya gunakan library TelegramBot versi 1.2.5 dan ArduinoJson versi 5.13.5
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <TelegramBot.h>
#define LED    1 //esp01 pin I/O 1
#define RELAY  0 //esp01 pin I/O 0

// Initialize Wifi connection to the router
const char* ssid  = "XXXXX";         //nama wifi hostpotnya
const char* password = "XXXXX";  //password wifinya

// Initialize Telegram BOT
const char BotToken[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //bot token dari telegram bot

WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);


void setup() {
  pinMode(LED, OUTPUT);
  pinMode(RELAY, OUTPUT);
  digitalWrite(RELAY, 1);//Led mati
  while (WiFi.status() != WL_CONNECTED) {
    //led kedip-kedip kalau belum connect wifi
    digitalWrite(LED, 0);
    delay(200);
    digitalWrite(LED, 1);
    delay(200);
  }
  digitalWrite(LED, 1);//Led mati
  bot.begin();
}

void loop() {
    message m = bot.getUpdates(); // Read new messages
    //cek device
    if (m.text.equals("cek")|| m.text.equals("Cek") || m.text.equals("CEK")){   
        bot.sendMessage(m.chat_id, "Device is Active Now");   
    }  

    //on command
    if (m.text.equals("on")|| m.text.equals("On")|| m.text.equals("ON")){   
        digitalWrite(RELAY, 0); // relay nyala   
        bot.sendMessage(m.chat_id, "The Lamp is now ON");   
    }   

    //off command
    if (m.text.equals("off")|| m.text.equals("Off")|| m.text.equals("OFF")) {   
        digitalWrite(RELAY, 1); //relay mati   
        bot.sendMessage(m.chat_id, "The Lamp is now OFF");   
    }
}

Sebelum upload program, pastikan board yang dipilih (ESP8266 Generic). Cara upload program ke ESP 01 juga sudah di jelaskan disini.
ESP 01 via Telegram

Testing
Sama seperti sebelumnya, dalam program terdapat 3 perintah yaitu cek, on dan off (silahkan untuk dikembangkan sesuai kebutuhan). Perintah dikirim melalui telegram kita ke telegram bot yang telah kita buat. Untuk mengetahui apakah perintah sudah terkirim ke bot, maka dibuatlah pesan konfirmasi yang menandakan perintah telah dilaksanakan. Namun model seperti ini bukan termasuk sistem close loop karena proses nyala lampu yang sebenarnya tidak terukur.