Hai Kawan Warrior !
Berdasarkan hasil diskusi yang kami dapatkan di forum-forum mengenai ESP8266, beberapa pengguna ternyata tertarik dengan cara kerja sistem kontrol lampu rumah dari jarak jauh atau melalui internet. Dalam tutorial ini kita akan bahas bagaimana cara mengontrol relay lampu rumah via internet menggunakan esp8266 dan Aplikasi Telegram.
Kenapa harus aplikasi telegram ?
Karena aplikasi telegram ini memiliki fitur BOT. Bot sendiri merupakan kata lain daripada Robot, dimana robot ini nantinya akan bekerja untuk membantu memudahkan kita dalam kegiatan pengiriman pesan. Untuk membuat bot sendiri sangatlah mudah, kita hanya perlu melakukan Add pada akun @BotFather, Lalu memasukan informasi mengenai bot yang akan kita buat. Nanti kita akan diberikan sebuah code API yang akan kita manfaatkan untuk komunikasi ESP8266 ke internet.
Apa itu API ?
API (Application Programming Inteface) secara singkat merupakan teknologi yang menjadi sebuah jembatan komunikasi, dimana memungkinkan programmer untuk melakukan pertukaran informasi data melalui dua perangkat yang berbeda atau lebih melalui jaringan internet. Dengan ini perangkat yang tidak melmiliki dedicate ip public dalam melakukan komunikasi dengan perangakat lainnya hanya dengan menggunakan sercet code API.
Dengan adanya teknologi tersebut kita dapat memanfaatkannya untuk membuat sebuah perangkat berbasis IoT (Internet of Things) untuk mematikan dan menghidupkan lampu relay menggunakan perangkat ESP8266 melalui internet dengan API dari bot telegram tersebut.
Jika Program pada materi ini tidak dapat berjalan, kita sudah buatkan update nya dengan menggunakan CTBot yang materinya dapat kalian akses di link berikut :
https://www.warriornux.com/kontrol-relay-nodemcu-esp8266-dengan-telegram/
1. Komponen yang harus disiapkan :
- ESP8266 All Series/NodeMCU V3
- Relay
- Socket Lampu + Lampu
- Smartphone/Laptop yang terinstall Telegram
2. rangkaian yang akan kita gunakan :
Setelah rangkain kita buat, selanjutnya kita tambahkan @BotFather pada telegram kita, lalu buka BotFater tersebut dan buat BOT dengan cara seperti gambar dibawah ini.
3. Cara Membuat Bot Telegram
Setelah selesai membuat bot, kamu akan diberikan sebuah token untuk mengakses HTTP API. Token tersebut yang akan kita masukan kedalam program pada ESP8266.
Selanjutnya untuk dapat menggunakan API Telegram pada program yang kita buat, kita harus memasukan library TelegramBOT terlebih dahulu ke aplikasi Arduino IDE. Library tersebut dapat diunduh pada link berikut https://github.com/CasaJasmina/TelegramBot-Library.
4. Sketch Arduino IDE ESP8266 Telegram BOT
Setelah library ditambahkan, sekarang kita masukan program berikut :
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <TelegramBot.h> // Initialize Wifi connection to the router const char* ssid = "warriornux.com"; const char* password = "1234567890"; // Initialize your Telegram BOT API const char BotToken[] = "551145241:AAFXPgz0JhMlIqPeKG2Fh2YpO-qFrrg5hfs"; WiFiClientSecure net_ssl; TelegramBot bot (BotToken, net_ssl); const int ledPin = 16; // the number of the LED pin void setup() { Serial.begin(115200); while (!Serial) {} //Start running when the serial is open delay(3000); // attempt to connect to Wifi network: Serial.print("Connecting Wifi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); bot.begin(); pinMode(ledPin, OUTPUT); } void loop() { message m = bot.getUpdates(); // Read new messages if (m.text.equals("On")) //Perintah dari telegram ke perangkat { digitalWrite(ledPin, HIGH); Serial.println("message received"); bot.sendMessage(m.chat_id, "The Led is now ON"); //Balasan dari perangkat ke Bot Telegram } else if (m.text.equals("Off")) //Perintah dari telegram ke perangkat { digitalWrite(ledPin, LOW); Serial.println("message received"); bot.sendMessage(m.chat_id, "The Led is now OFF"); //Balasan dari perangkat ke Bot Telegram } }
Setelah sketch program kita upload pada ESP8266 dan sudah terkoneksi ke internet juga, sekarang kita hanya perlu mencobanya dengan masuk ke BOT Telegram yang sudah kita buat. Lalu memasukan perintah dengan melakukan chat. Tunggu 20detik hingga perangkat merespon dan membalas pesan pada Bot Tersebut.
5. Hasil Percobaan
Berikut merupakan tampilan dari bot telegram yang sudah kita buat, beserta report yang muncul ketika kita memasukan perintah. Dan juga tampilan dari serial monitor Arduino IDE.
Video Demo Menyusul
6. Kesimpulan
Dengan memanfaatkan API dari Bot Telegram kita dapat menghubungkan perangkat ESP8266 dan Smartphone Android/IOS, Melakukan komunikasi antara kedua perangkat tersebut hingga membuat sebuah sistem kontrol berbasis internet chat yang mampu mengontrol relay lampu yang kita kondisikan berada didalam rumah menggunakan jaringan internet.
Baik kalau begitu, semoga tutorial ini dapat membantu kawan kawan. Jangan lupa like, subscribe, dan bagikan agar banyak kawan kita yang makin banyak tau.
Master ,saya sudah ikutin smua intruksi tapi pas telegram dikirim perintah kok nggak ada reaksi sama sekali y.??
Itu esp8266 nya harus terkoneksi ke internet juga kan? Lalu cara menghubungkan esp8266nya ke internet gimana mas? Misalnya si esp8266nya mau dikoneksikan ke wifi rumah. Terima kasih
Apakah harus pakai webservice untuk bisa pakai handphone…??
ini maksudnya gimana mas
wifi konek ke esp udah , coding beres cuman tidak memberi perintah saat di beri perintah lewat telegram yang salah apanya ya gan ????
ini kesalahannya apa ya mas?
Maaf gan ini kenapa ya ? padahal udh ngikutin sesuai tutorial, dan udh baca beberapa masalah yang sama di komentar lainya tapi teteap tidak bisa di compile, kenapa ya gan
bisa di operasikan oleh user lain gak?
kenpa setiap dikirim perintah dari telegram muncul di serial monitora gini mas…mohon pencerahan!!
terimakasih juga buat saran kemaren udh berhasil mas jadi saya nyoba yang lain..
Kalau begini kira-kira masalahnya apa ya bg? padahal library nya sudah di install tapi tetap tidak kebaca.
Seperti gimana kodingannya mas, tidak jauh berbeda ko
sudah di balim perintahnya sama reaksinya gan…bisa nyala gabisa mati lampunya
Bang, punya saya upload sukses, tele udah bisa jawab tapi si lampunya dari relay ga respon.
Mohon dibantu…
mohon solusi
Ini kenapa yaa bg?
Build options changed, rebuilding all
Archiving built core (caching) in: C:UsersASUSAppDataLocalTemparduino_cache_113045corecore_esp8266_esp8266_nodemcuv2_CpuFrequency_80,VTable_flash,FlashSize_4M1M,LwIPVariant_v2mss536,Debug_Disabled,DebugLevel_None____,FlashErase_none,UploadSpeed_115200_264ac6eb32e5618bf8f361512f49d2e8.a
Sketch uses 332288 bytes (31%) of program storage space. Maximum is 1044464 bytes.
Global variables use 31752 bytes (38%) of dynamic memory, leaving 50168 bytes for local variables. Maximum is 81920 bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
Arduino: 1.8.5 (Windows 10), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200”
Build options changed, rebuilding all
Archiving built core (caching) in: C:UsersASUSAppDataLocalTemparduino_cache_113045corecore_esp8266_esp8266_nodemcuv2_CpuFrequency_80,VTable_flash,FlashSize_4M1M,LwIPVariant_v2mss536,Debug_Disabled,DebugLevel_None____,FlashErase_none,UploadSpeed_115200_264ac6eb32e5618bf8f361512f49d2e8.a
Sketch uses 332288 bytes (31%) of program storage space. Maximum is 1044464 bytes.
Global variables use 31752 bytes (38%) of dynamic memory, leaving 50168 bytes for local variables. Maximum is 81920 bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
ini kenapa ya bg?