Sumber : embeddednesia.com
Hai teman-teman… Buat kalian yang ingin belajar membuat projek sederhana menggunakan arduino IDE, tetapi masih bingung dan takut kesusahan dalam membuat projek tersebut, kali ini kita akan membuatkan tutorial untuk projek sederhana yang mudah dipahami dan mudah untuk diikuti.
Tutorial ini menunjukan cara mengotrol LED ESP32 menggunakan telegram atau dengan istilah kerennya adalah Control LED Build for ESP32 in Telegram. Cara kerjanya sendiri mudah yaitu kalian hanya mengirimkan pesan melalui telegram yang akan dibaca dan dijalankan oleh ESP32 yang sudah diinputkan program.
Sekilas Tentang Projek Control LED Build for ESP32 in Telegram
Projek sederhana ini akan mengontrol GPI0 NodeMCU ESP32, ESP8266, Wemos, atau Mappi32 by KMTek, dll menggunakan telegram. Projek ini bisa di terapakan pada otomasi rumah dengan metode IoT (Internet of Things). Perlu diingat, pin LED keluaran atau output untuk masing-masing NodeMCU berbeda-beda, seperti pin LED untuk ESP32, ESP8266, Wemos adalah pin 2, untuk Mappi32 by KMTek adalah pin 5. Pin tersebut digunakan untuk membuat coding sebagai output LED-nya.
Alat dan Bahan yang Digunakan
1. Ponsel atau PC.
2. Software arduino IDE.
3. Software telegram.
4. NodeMCU ESP32, ESP8266, Wemoss, atau Mappi32 (option/pilih salah satu).
5. Kabel data.
Tentang Telegram
Sumber : macrumors.com
Telegram adalah aplikasi layanan pengirim pesan instan yang bersifat gratis, voice over IP dan multiplatform berbasis cloud. Telegram sendiri memungkinkan teman-teman mengirim teks, file, foto, video dan lainnya. Telegram dapat digunakan pada ponsel ataupun PC. Telegram memungkinkan untuk membuat bot yang dapat berinteraksi dengan diri sendiri. Bot telegram adalah perangkat lunak yang menjalakan tugas secara otomatis dengan satu perintah.
Membuat Bot Telegram
Dalam hal ini, membuat bot telegram tidaklah sulit, teman-teman hanya perlu ikuti Langkah-langkah berikut.
1. Buka play store, app store, atau google di ponsel atau PC > cari aplikasi telegram > unduh dan install.
2. Buka aplikasi telegram > buat akun (jika belum punya akun).
3. Search atau cari di kolom pencarian dengan kata “botfather” nanti akan muncul seperti berikut.
4. Jendela botfather akan tampil seperti di gambar kemudian ketikan ”/start” > ketikan “/newbot”.
5. Ikuti instruksi dan buat nama bot yang akan dibuat.
6. Jika bot sudah berhasil dibuat akan ada pesan seperti berikut
7. Simpan token atau API yang diberikan botfather karena akan dibutuhkan pada saat memprogram projek yang akan dibuat agar telegram dapat berinteraksi dengan NodeMCU.
8. Bot telegram selesai dibuat.
Cara mendapatkan ID pengguna telegram
ID telegram digunakan untuk interaksi antara telegram dengan NodeMCU nanti pada saat projek dijalakan. Cara mendapatkan ID pengguna adalah sebagai berikut.
1. Open telegram.
2. Cari pada kolom pencarian yaitu “ IDBot” seperti pada gambar.
3. Ketikan “ /getid” maka akan keluar ID pengguna telegram teman-teman semua.
4. Simpan ID tersebut karena akan digunakan nanti untuk membuat program.
Software Arduino IDE
Langkah pertama yang harus dilakukan adalah membuka software arduino IDE kemudian menginstall perpustakan atau library yang diperlukan.
Menginstall Library bot telegram universal
Untuk bisa berinteraksi dengan bot telegram, kita akan menginstall library bot telegram universal yang dibuat oleh Brian Lough. Teman-teman bisa ikuti Langkah-langkah berikut.
1. Unduh zip library dari Brian Lough. https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/archive/master.zip
2. Open software arduino IDE > buka sketch > include library > tambahkan zip pustaka.
3. Tambahakan zip yang baru saja diunduh > selesai.
Menginstall Library ArduinoJson
1. Open sketch > include library > manage library.
2. Search “arduinoJson” > lalu install.
3. Selesai install.
Memprogram Sketch Menggunakan Telegram
Disini kita akan memberikan contoh coding untuk memprogram projek yang teman-teman buat. Jadi, teman-teman tinggal mengganti nama wifi atau ssid, password wifi, token API dari telegram, dan kode ID telegram. Jika teman-teman ingin berkreasi juga bisa yaa…
Bisa teman-teman copy paste yaa untuk coding dibawah ini.
/*
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 <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h> // Universal Telegram Bot Library written by Brian Lough: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
#include <ArduinoJson.h>
// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
// Initialize Telegram BOT
#define BOTtoken "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"
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
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<numNewMessages; i++) {
// Chat id of the requester
String chat_id = String(bot.messages[i].chat_id);
if (chat_id != CHAT_ID){
bot.sendMessage(chat_id, "Unauthorized user", "");
continue;
}
// Print the received message
String text = bot.messages[i].text;
Serial.println(text);
String from_name = bot.messages[i].from_name;
if (text == "/start") {
String welcome = "Welcome, " + from_name + ".\n";
welcome += "Use the following commands to control your outputs.\n\n";
welcome += "/led_on to turn GPIO ON \n";
welcome += "/led_off to turn GPIO OFF \n";
welcome += "/state to request current GPIO state \n";
bot.sendMessage(chat_id, welcome, "");
}
if (text == "/led_on") {
bot.sendMessage(chat_id, "LED state set to ON", "");
ledState = HIGH;
digitalWrite(ledPin, ledState);
}
if (text == "/led_off") {
bot.sendMessage(chat_id, "LED state set to OFF", "");
ledState = LOW;
digitalWrite(ledPin, ledState);
}
if (text == "/state") {
if (digitalRead(ledPin)){
bot.sendMessage(chat_id, "LED is ON", "");
}
else{
bot.sendMessage(chat_id, "LED is OFF", "");
}
}
}
}
void setup() {
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
client.setTrustAnchors(&cert); // Add root certificate for api.telegram.org
#endif
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
// Connect to Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
#ifdef ESP32
client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
#endif
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
// Print ESP32 Local IP Address
Serial.println(WiFi.localIP());
}
void loop() {
if (millis() > lastTimeBotRan + botRequestDelay) {
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();
}
}
Setelah kalian uploud ke NodeMCU ESP32 ataupun yang lain, teman teman bisa langsung cek pada telegram masing – masing dengan ketikan ”/led_on” atau “/led_off”. Jika kita kirim pesan “/led_on” dan LED pada ESP32 menyala berarti projek yang kita buat sudah selesai.
Bagaimana teman-teman? Mudah bukan? Selamat mencoba.
Don't give up, if it's your first attempt. And don't give up if it's your last resort. Keep spirit! you can do it!!
Referensi :
PT. Karya Merapi Teknologi
Follow sosial media kami dan ambil bagian dalam berkarya untuk negeri!
Instagram: https://www.instagram.com/kmtek.indonesia/
Facebook: https://www.facebook.com/kmtech.id
LinkedIn: https://www.linkedin.com/company/kmtek
Commentaires