Contents
IoT (Internet of Things) adalah protokol komunikasi via internet antar perangkat elektronik yang ringan dan tidak sensitif terhadap kecepatan data (bandwidth). IoT dirancang seringan mungkin untuk payload-nya dan bandwidth sekecil mungkin karena yang saling berkomunikasi adalah perangkat mini dengan resource yang rendah (prosesor, memori) dan sumber daya terbatas (ada kalanya perangkat tersebut hanya mengandalkan baterai). Pada umumnya internet yang digunakan juga bersifat ‘transparrent’ dan tidak membutuhkan ip public, dan bahkan relatif kebal terhadap rule-rule firewall (kecuali ditutup port-nya 🙂 )
Pada umumnya, IoT menggunakan protokol REST, COAP atau MQTT pada layer 2 -nya. Sementara untuk layer 7 (aplikasi), biasa digunakan untuk aplikasi berbasis notifikasi (misal Firebase) atau aplikasi berbasis ‘messaging’ seperti Jabber (XMPP), Facebook Messenger atau Telegram. Nah, pada kesempatan kali ini, saya akan coba mengulas bagaimana memanfaatkan aplikasi Telegram messenger yang lagi naik daun saat ini sebagai core IoT-nya. Telegram adalah aplikasi messenger yang dibuka API (Application Programming Interface) secara gratis, jadi terbuka buat siapa saja untuk memanfaatkankanya (beda halnya dengan aplikasi Whatsapp yang berbayar API-nya).
Sebagaimana kita ketahui, dalam arsitektur/topologi IoT membutuhkan broker sebagai ‘stasiun relay’ atau ‘gateway’ antar device dalam berinteraksi data. Untuk case telegram ini yang bertindak sebagai ‘broker’ adalah server telegram. Berhubung telegram ini basic-nya adalah aplikasi messenger, maka keuntungan kita menggunakan core IoT telegram adalah semua device kita akan dapat dengan dimonitor atau dikontrol menggunakan handphone. Kurang lebih kalau saya gambarkan, demikian topologi IoT menggunakan core Telegram

Baik, tanpa berpanjang lebar, mari coba kita praktekkan bagaimana membuat aplikasi IoT dengan telegram. Untuk controller yang saya gunakan adalah NodeMCU, karena controller ini sudah built-in WIFI, jadi sangat memudahkan membuat alat yang IoT-friendly. Kalau Anda menggunakan Arduino, sebenarnya bisa saja, namun karena secara hardware tidak ada port yang support TCP/IP nya, maka Anda membutuhkan tambahan hardware, seperti ethernet shield, WIFI shield atau bahkan ESP8266 (core prosesor NodeMCU). Jadi seperti dua kali kerja, bukan? makanya saya lebih suka menggunakan NodeMCU (atau ESP8266) untuk project-project IoT saya 🙂
Percobaan IoT NodeMCU Telegram
Alat dan bahan yang dibutuhkan untuk percobaan awal IoT ini adalah sebagai berikut:
- NodeMCU ESP12E, beli atau beli
- kabel jumper male to female, beli (10 cm), beli (20 cm)
- LED + resistor 1K ohm, beli + beli
- breadboard/protoboard/projectboard, beli atau beli
Untuk sisi software, yang perlu disiapkan tentunya Arduino IDE, dan library CTBot, bisa Anda unduh di sini. Tambahkan library yang Anda unduh tadi melalui menu Sketch – Include Library – Add .Zip Library. Saya harapkan Arduino IDE Anda sudah support ESP8266 series (termasuk NodeMCU), jika belum Anda bisa membaca artikel ini terlebih dahulu atau dapat menonton video di bawah untuk tutorialnya. Baik, silahkan rangkai komponen sesuai gambar di bawah

Sebelum masuk ke program, sebaiknya Anda buat dulu bot telegram untuk NodeMCU Anda. Untuk singkatnya ikuti step-step nya sebagai berikut (jika bingung bisa dilihat di video di bawah):
- dari aplikasi telegram di handphone/web (web.telegram.org) cari ‘botFather’ (ketik di kotak search)
- ketik /newbot, masukkan nama bot (ikuti aja yang diminta botFather)
- setelah selesai membuat bot nanti Anda akan mendapatkan token. Token ini nanti akan di-copy-kan ke script NodeMCU Anda
Catatan: Token bot telegram ini sifatnya unique dan credentially, jadi jangan di-share ke public ya
Source Code NodeMCU (ESP8266) Telegram Kendali LED
Oke, salinlah token yang sudah Anda dapatkan tadi ke script di bawah dan upload ke NodeMCU Anda
#include "CTBot.h" #define led D0 CTBot myBot; String ssid = "ssid_anda" ; // ssid wifi anda String pass = "password_anda"; // password wifi anda String token = "token_bot_Anda"; void setup() { // initialize the Serial Serial.begin(115200); Serial.println("IoT Telegram kendali LED"); // connect the ESP8266 to the desired access point myBot.wifiConnect(ssid, pass); // set the telegram bot token myBot.setTelegramToken(token); // check if all things are ok if (myBot.testConnection()) Serial.println("\ntestConnection OK"); else Serial.println("\ntestConnection NOK"); // set the pin connected to the LED to act as output pin pinMode(led, OUTPUT); digitalWrite(led, LOW); void loop() { // a variable to store telegram message data TBMessage msg; // if there is an incoming message... if (myBot.getNewMessage(msg)) { Serial.println(msg.text); if (msg.text.equalsIgnoreCase("led on")) { digitalWrite(led, HIGH); myBot.sendMessage(msg.sender.id, "Led sudah nyala"); } else if (msg.text.equalsIgnoreCase("led off")) { digitalWrite(led, LOW); myBot.sendMessage(msg.sender.id, "led sudah mati"); } else { // generate the message for the sender String reply; reply = (String)"Welcome " + msg.sender.username + (String)". ketik led on atau led off."; myBot.sendMessage(msg.sender.id, reply); // and send it } } // wait 500 milliseconds delay(500); }
Setelah diupload ke NodeMCU, pastikan WIFI Access Point Anda sudah terhubung ke internet ya
Untuk menguji rangkaian di atas, dari telegram kirim keyword ‘led on’ untuk menghidupkan LED dan ‘led off’ untuk mematikan LED. Untuk lebih jelasnya, silahkan disimak video sbb:
Demikian sedikit tutorial mengenai basic IoT dengan memanfaat Telegram sebagai core system-nya. Dengan adanya Telegram kita dapat membuat sebuah sistem IoT yang free dan robust, tentunya dengan segala kelebihan dan kekurangan Telegram. Untuk next tutorial nanti akan coba saya bahas bagaimana mengirim data sensor ke handphone kita melalui Telegram (kalo yg skr kan kita kirim data/perintah dari Hp ke perangkat). Stay tune ya…
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com