Kontrol ESP 8266 ESP 01 via Telegram

Kontrol ESP 8266 ESP 01 via Telegram
Kontrol ESP 8266 via Telegram merupakan salah satu implementasi dari konsep IoT. Tentunya jangan disamakan dengan metode pengendalian dengan SMS karena cara kerjanya sudah sangat berbeda. Telegram merupakan sosial media perpesanan yang memiliki fitur bot. Bot adalah aplikasi pihak ketiga yang berjalan di dalam Telegram. Pengguna dapat berinteraksi dengan bot dengan mengirimi mereka pesan, perintah, dan permintaan sebaris. Kita dapat mengontrol bot menggunakan permintaan HTTPS ke API  (more about telegram bot). Inilah sebebnya untuk saat ini project IoT lebih banyak yang menggunakan telegram. Untuk aplikasi lainnya seperti Whatsapp sepertinya belum memberikan fitur ini secara terbuka (mungkin kedepannya). 
Pada tutorial ini kita akan mencoba mengendalikan ESP 01 via pesan menggunakan Telegram. Pastikan telah melakukan instalasi board ESP pada Arduino IDE (contoh tutorial). Selanjutnya ikuti langkah berikut:
Peralatan dan Bahan
Konfigurasi
Siapkan telegram bot nya. Buka aplikasi telegram (saya menggunakan telegram desktop), Cari Botfather =>pilih start=> buat newbot.
Kontrol ESP 8266 ESP 01 via Telegram
Selanjutnya masukkan nama bot dan username yang akan kita buat. Untuk username harus menyertakan kata "bot" di akhir kata. Misal "paijo_bot" atau "PaijoBot". Setelah itu kita akan mendapatkan Token untuk HTTP API. Token ini sebagai ID bot telegram yang selanjutnya di pasang pada ESP 01.
Kontrol ESP 01 menggunakan Telegram
Kontrol ESP 8266 ESP 01 via Telegram
Konfig bot beres. Selanjutnya konfigurasi donloadernya. Ada banyak alternatif untuk mengupload program dari Arduino IDE ke ESP 01. Pada intinya perangkat yang digunakan adalah converter USB Serial TTL. Salah satu perangkat yang dapat digunakan adalah ESP 01 USB Programmer  hanya saja perlu modifikasi untuk membuat ESP 01 dalam mode program. Yaitu dengan mengkoneksikan (jumper) pin GPIO 0 dengan pin GND dan pin CH_PD ke pin VCC
Kontrol ESP 01 menggunakan Telegram
Untuk mempermudah simulasi pengoperasian, kita dapat menggunakan pin header dan soket jumper. Saat ingin mengupload program ke ESP 01 maka soket dua-duanya harus terpasang. Apabila ingin mengoperasikan maka soket GPIO 0 dilepas terlebih dahulu.
Kontrol Arduino menggunakan Telegram
Kontrol Arduino menggunakan Telegram
Kontrol ESP 8266 ESP 01 via Telegram
Program
Sebelum melakukan coding, install terlebih dahulu library yang dibutuhkan (Telegram Bot dan Arduino Json) pada Arduino IDE.  Selanjutnya tinggal copas program dibawah ini.
**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 GPIO 1

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


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

WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);


void setup() {
  pinMode(LED, OUTPUT);
  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
    if (m.text.equals("cek")|| m.text.equals("Cek") || m.text.equals("CEK")){   
        bot.sendMessage(m.chat_id, "Device is Active Now");   
    }  
    if (m.text.equals("on")|| m.text.equals("On")|| m.text.equals("ON")){   
        digitalWrite(LED, 0); // led nyala   
        bot.sendMessage(m.chat_id, "The Led is now ON");   
    }   
    if (m.text.equals("off")|| m.text.equals("Off")|| m.text.equals("OFF")) {   
        digitalWrite(LED, 1); //led mati   
        bot.sendMessage(m.chat_id, "The Led is now OFF");   
    }
}
Untuk lebih mudahnya kita akan mengendalikan Led indikator data pada ESP 01. Led tersebut tehubung dengan pin GPIO 1. Jadi logikanya saat menjalankan program ini maka tidak bisa melakukan komunikasi serial. Sebelum Upload program, pastikan Board yang di pilih adalah Generic ESP 8266 Module (Tools=>board=>ESP 8266 modul) dan juga nomor port com nya . Proses Upload Program dari Arduino IDE lumayan lama jadi harap sabar. Bila proses upload selesai, lepas soket GPIO 0 (program mode) dan lakukan uji coba.
mengendalikan relay via Telegram
Control ESP 8266 ESP 01 via Telegram

Saat ESP 01 proses koneksi ke wifi, maka led indikator akan berkedip (biru). Apabila sudah terkoneksi maka led indikator akan mati. Nah kalau sudah konek internet, maka langsung bisa dilakukan pemberian perintah. Dalam program teleh dibuatkan 3 contoh perintah yaitu "CEK" untuk memberikan status kalau perangkat siap digunakan, dan "ON" "OFF" untuk mengendalikan nyala LED.

Ok, itu saja untuk dasar dari kontrol ESP 01 via telegram. Aplikasi selanjutnya silahkan untuk berkreasi sesuai dengan ide dan kemampuan.

Pencarian Terkait:
  1. Mengendalikan ESP 8266 ESP 01 via Telegram
  2. ESP 8266 ESP 01 IoT Telegram
  3. Arduino IoT Telegram
  4. Mengendalikan Lampu dengan Telegram

16 Komentar

  1. kalau output lebih dari 2 bisa tidak?

    BalasHapus
    Balasan
    1. pada dasarnya kita dapat menggunakan 4 pin GPIO (bisa 4 output), nah untuk yang ditutorial menggunakan GPIO 01 (yang nyambung dengan led )

      Hapus
  2. halo mas ryo, artikelnya mudah dimengerti dan sangat bagus...
    saya ijin bertanya mas, jadi saya punya rangkaian arduino uno dengan 2 sensor mq, untuk data yang di dapatkan dari sensor tersebut apakah bisa ditampilkan di telegram app seperti artikel ini...
    mohon jawaban dan referensi rangkaian ataupun sketchnya bila ada mas, terimakasih sebelumnya...

    BalasHapus
    Balasan
    1. Terimakasih telah berkunjung, kebetulan saya belum pernah oprek untuk komunikasi arduino dengan telegram. Dan sepertinya library telegrambot yang pernah saya coba hanya support esp8266. Ada beberapa cara untuk mensiasati hal tersebut. misalnya Agan bisa menggunakan Arduino dan ESP01 ini. Arduino digunakan untuk proses data sensor gas, selanjutnya data sensor dikirim via komunikasi serial ke ESP 01 terus data tersebut di kirim via telegram.

      Hapus
  3. apakah bisa diakses lebih dari satu id?

    BalasHapus
  4. halo mas, artikelnya bagus nih. Saya mau tanya mas, kok sudah saya coba error terus ya? sepertnya WiFiClientSecure.h nya tidak ada. terima kasih ya mas. mohon infonya terima kasih banyak

    BalasHapus
  5. minta library esp8266wifinya dong min

    BalasHapus
    Balasan
    1. pastikan telah menambahkan board esp8266 ya .. ntar library yang berkaitan dengan esp8266 (spt esp8266wifi) akan terinstall otomatis

      Hapus
  6. mode programming esp8266 nya bisa pake breadboard aja gak biar gaperlu solder bikin modifikasi lagi?

    BalasHapus
    Balasan
    1. susah gan klo langsung pake bread board ... soalnya ntr antar pin malah jd saling konek...
      klo mau pake kabel jumper baru ke bread board

      Hapus
  7. Kalo ESP01s bisa gak gan?

    BalasHapus
  8. Не получается, уходит в постоянный ребут

    BalasHapus
    Balasan
    1. Pay attention to the library version used. TelegramBot version 1.2.5 dan ArduinoJson version 5.13.5

      Hapus
  9. Izin tanya mas...
    Sya sudah upload coding,dn sudah sukses..
    Lmpu led esp 01 nya sudah kedap kedip,tpi terus ja sperti itu tidak berhenti,knpa bisa gtu mas ya ?...
    Mhon pencerahannya,dn terima kasih jwbnnya.

    BalasHapus