Halo Sobat Algos! Kembali lagi di Algoinfo!
Algoinfo kali ini kita akan membahas soal Internet of Things atau IoT nih! Sobat Algos udah tau belum apa itu Internet of Things atau IoT? Nah Internet of Things atau IoT merupakan sebuah konsep yang bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus menerus. Kemampuan yang dimaksud itu bisa berupa berbagi data, remote control, dan sebagainya. Nah dalam praktiknya, kita membutuhkan beberapa perangkat yang dapat mengintegrasikan proyek yang kita buat agar nantinya berbasis IoT. Salah dua di antaranya, ada ESP32 dan ESP8266. Wah apa lagi tuh ESP32 dan ESP8266?
ESP32 dan ESP8266 merupakan suatu module chip yang digunakan sebagai WIFi bridge untuk mikrokontroler lain agar dapat terhubung ke jaringan internet. Pada awalnya, ESP8266 hanya bisa dijalankan menggunakan perintah AT Command melalui komunikasi serial. Kemudian dilakukan pengembangan kembali dimana akhirnya ESP8266 dapat diprogram dengan menggunakan Arduino IDE seperti yang akan kita lakukan pada proyek kita kali ini. Lalu perbedaan ESP32 dan ESP8266 tuh apa ya? Nah sebenarnya, ESP32 merupakan versi peningkatan dari ESP8266, akan tetapi cara kerja keduanya hampir serupa. Untuk lebih jelasnya, tabel perbedaan spesifikasi keduanya dapat dilihat sebagai berikut:


(Sumber: https://randomnerdtutorials.com/build-web-servers-esp32-esp8266-ebook/)
Module ESP baik ESP32 maupun ESP8266 amat banyak macamnya. Pada kesempatan kali ini, kita akan menggunakan module NodeMCU ESP32 dan NodeMCU ESP8266 untuk mensimulasikan, bagaimana ya caranya kita dapat mengontrol LED melalui Telegram Bot? Kita juga akan menggunakan software Arduino IDE untuk membuat program module tersebut.
Pada project kali ini, kita akan membutuhkan:
1. Module ESP32 atau ESP8266
2. LED
3. Perangkat komputer/laptop yang sudah ter-install software Arduino IDE
4. Software Telegram
Pertama-tama, kita harus membuat Telegram Bot terlebih dahulu nih sobat Algos! (Tahapan tutorialnya secara lengkap dapat sobat Algos simak melalui video tutorial di YouTube Algomarine yaa!) Kali ini kita akan mengacu pada tahapan tutorial pada website (https://randomnerdtutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/).
Ringkasan tahapan untuk membuat Telegram Bot yaitu:
1. Membuat Bot baru melalui BotFather atau t.me/botfather
2. Mendapatkan informasi link Bot yang telah dibuat serta token Bot
3. Mendapatkan Telegram User ID melalui IDBot atau t.me/myidbot
Setelah kita selesai membuat Telegram Bot, langkah selanjutnya adalah mempersiapkan proses pemrograman melalui Arduino IDE. Ringkasan tahapannya yaitu:
1. Meng-install library yang akan digunakan. Library tersebut bisa kita download melalui link berikut: (https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/archive/master.zip)
(https://github.com/bblanchon)
2. Merancang program dalam Arduino IDE menggunakan script coding berikut:
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/
Project created using Brian Lough’s Universal Telegram Bot Library: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
Example based on the Universal Arduino Telegram Bot Library: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/blob/master/examples/ESP8266/FlashLED/FlashLED.ino
*/
#ifdef ESP32
#include
#else
#include
#endif
#include
#include
#include
// Replace with your network credentials
const char* ssid = “REPLACE_WITH_YOUR_SSID”;
const char* password = “REPLACE_WITH_YOUR_PASSWORD”;
// Initialize Telegram BOT
#defineBOTtoken “XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”// your Bot Token (Get from Botfather)
// Use @myidbot to find out the chat ID of an individual or a group
// Also note that you need to click “start” on a bot before it can
// message you
#define CHAT_ID “XXXXXXXXXX”
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// Checks for new messages every 1 second.
int botRequestDelay = 1000;
unsigned long lastTimeBotRan;
const int ledPin = 2;
bool ledState = LOW;
// Handle what happens when you receive new messages
void handleNewMessages(int numNewMessages) {
Serial.println(“handleNewMessages”);
Serial.println(String(numNewMessages));
for (int i=0; i
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages) {
Serial.println(“got response”);
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
3. Kemudian berdasarkan informasi yang telah kita dapatkan saat membuat Telegram Bot, kita dapat mencantumkannya dalam script coding tersebut.
Dalam mengoperasikannya, pastikan sobat Algos menggunakan koneksi internet yang tidak melalui tahapan log in terlebih dahulu ya! Simulasi proyek kali ini secara lengkap dapat disimak dalam video tutorial di YouTube Algomarine!
Okee, gimana nih sobat Algos! Mudah kan pengaplikasian IoT menggunakan Telegram Bot? Proyek sederhana tadi dapat kita kembangkan juga menjadi proyek dengan skala yang lebih besar. Sebagai contohnya jika dalam ranah Oseanografi dan kelautan, kita dapat mengintegrasikan stasiun pasang surut yang ada di lapangan menggunakan prinsip IoT dan juga Telegram Bot loh! Hal tersebut bisa mengefisienkan proses pengumpulan data yang kita butuhkan dari lapangan. Jadi, kita ga perlu harus turun ke lapangan secara langsung buat dapat data terkininya, kita bisa menggunakan perintah melalui Telegram Bot aja dari rumah, dan kita tetap bisa mendapatkan data lapangan secara real time!
Sekian dulu untuk AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!
Algomarine, Algorithm for Marine Solutions!
