Penjelasan Singkat
Telegram merupakan aplikasi mobile untuk berchatting ria yang dimana memungkinkan user dapat mengirimkan pesan chatting rahasia ke user lainnya baik bersifat pribadi maupun broadcast yang datanya itu di enkripsi end-to-end sebagai fitur keamanan tambahan.
Selain pesan chatting, terdapat fitur lainnya yaitu fitur untuk fungsi mengirim gambar dan video user lainnya, dan juga mendukung mengirim file dokumen, serta sharing location dimana lokasi kita berada ke user lain dengan mudah.
Aplikasi mobile Telegram ini merupakan aplikasi chatting terbaik dari semua aplikasi chatting yang ada, sebagai pesaing whatsapp. Dikarenakan dilihat dari segi kehandalannya, kecepatannya, tidak banyak memakan memori, dan yang diunggulkan yaitu tidak adanya iklan di aplikasi ini.
Pada aplikasi inilah terdapat fitur telegram bot yang akan dimanfaatkan membuat smart home untuk mengontrol relay yang dihubungkan ke lampu – lampu misal lampu ruang tamu, kamar tidur, dapur, dan lain sebagainya.
Apa itu telegram bot?
Telegram bot merupakan Application programming interface atau dikenal dengan nama “API” yang memungkinkan programmer dapat mengintegrasikan 2 aplikasi berbeda secara bersamaan dalam kasus tutorial ini yaitu apps chatting Telagram dengan ESP8266.
Dengan adanya token API TelegramBOT ini dapat dihubungkan antara chat telegram dengan sistem perangkat keras, misalnya akan diintegrasikan antara Wemos D1 mini yang diprogram menggunakan Arduino IDE dengan aplikasi ini.
Tutorial Smart home control relay use telegram APP
Langkah pertama yaitu installing app :
- Sediakan smartphone misal android dengan spek minimum 4.4 / kit kat
- Buka Play Store
- Ketik nama aplikasi dan searching
- Installing apk
- Wait dan siap digunakan
Setelah itu lakukan pendaftarkan menggunakan no handphone, login ke aplikasinya, dan siap digunakan.
Hal selanjutnya yaitu mendaftar bot telegram dengan cara
- Buka aplikasi
- Pilih search dan ketikan “botfather“
- Ketikan perintah /newbot dan enter
- Selanjutnya ketikan nama bot, misal “nyebarilmu”
- konfirmasikan lagi nama bot tersebut dengan perintah “nyebarilmu_bot”
- Akan terdapat balasan “token API” yang dimana akan digunakan untuk program nodemcu esp8266
- Dan langkah terakhir search “@nyebarilmu”, buka dan siap digunakan
Bahan yang perlu dipersiapkan untuk tutorial smart home ini antara lain :
- Smartphone android + aplikasi telegram + token API
- Wemos D1 mini
- Relay 4 channel
- LM2596
- Jack dc female
- Resistor 470
- Led 3mm merah
- PCB desain (untuk peletakan komponen diatas sehingga tidak ada kabel jumper)
Rangkaian skematik dan PCB
Filenya diatas dapat dimiliki dengan gratis hanya dengan sharing di social media
[lockercat]Ini filenya >> [ddownload id=”2150″] [/lockercat]
Program telegram bot menggunakan wemos D1 mini
Library yang dibutuhkan yaitu [ddownload id=”2144″]
Peletakan Library pada masing – masing Operation System :
- PC (Windows) : Program file(x86)/Arduino/ libraries
- Mac : (home directory)/Applications/Arduino (Show Package Content)/Contents/Java/Libraries
- Linux : (home directory)/sketchbook/libraries
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <TelegramBot.h> int relay1 = 5; //D1 on Wemos D1 Mini int relay2 = 4; //D2 int relay3 = 00; //D3 int relay4 = 2; //D4 //Inisialisasi nama wifi dan password const char* ssid = "Nyebarilmu"; const char* password = "nyebarilmu.com"; // Initialize Telegram BOT const char BotToken[] = "606612598:AAEfT5fKr9YspsfC4n1J7HczYi_iFE0rEK4"; //token api nyebarilmu_bot WiFiClientSecure net_ssl; TelegramBot bot (BotToken, net_ssl); void setup() { Serial.begin(115200); while (!Serial) {} //Start running when the serial is open delay(3000); Serial.print("Connecting Wifi: "); Serial.println(ssid); while (WiFi.begin(ssid, password) != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); bot.begin(); pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); } void loop() { message m = bot.getUpdates(); // Read new messages if (m.text.equals("relay1on")) { digitalWrite(relay1, 1); bot.sendMessage(m.chat_id, "Relay 1 is now ON"); } else if (m.text.equals("relay1off")) { digitalWrite(relay1, 00); bot.sendMessage(m.chat_id, "Relay 1 is now OFF"); } if (m.text.equals("relay2on")) { digitalWrite(relay2, 1); bot.sendMessage(m.chat_id, "Relay 2 is now ON"); } else if (m.text.equals("relay2off")) { digitalWrite(relay2, 00); bot.sendMessage(m.chat_id, "Relay 2 is now OFF"); } if (m.text.equals("relay3on")) { digitalWrite(relay3, 1); bot.sendMessage(m.chat_id, "Relay 3 is now ON"); } else if (m.text.equals("relay3off")) { digitalWrite(relay3, 00); bot.sendMessage(m.chat_id, "Relay 3 is now OFF"); } if (m.text.equals("relay4on")) { digitalWrite(relay4, 1); bot.sendMessage(m.chat_id, "Relay 4 is now ON"); } else if (m.text.equals("relay4off")) { digitalWrite(relay4, 00); bot.sendMessage(m.chat_id, "Relay 4 is now OFF"); } if (m.text.equals("allrelayoff")) { digitalWrite(relay1, 00); digitalWrite(relay2, 00); digitalWrite(relay3, 00); digitalWrite(relay4, 00); bot.sendMessage(m.chat_id, "All relay is now OFF"); } }
Command | Function |
relay1on / relay1off | On relay / off relay 1 |
relay2on / relay2off | On relay / off relay 2 |
relay3on / relay3off | On relay / off relay 3 |
relay4on / relay4off | On relay / off relay 4 |
allrelayoff | All relay is now OFF |
Selamat mencoba!!
gan ko pas di compile eror ya
Error dibagian mana ya gan? soalnya sudah ane trial, berhasil sesuai dengan kodingan diatas,
jangan lupa ganti nama wifi, password, dan token
saya copas kemudian di complie eror seperti ini
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:122:8: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’
buff.printTo(msg);
^
Multiple libraries were found for “TelegramBot.h”
Used: C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master
Not used: C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot
exit status 1
Error compiling for board WeMos D1 mini Pro.
itu artinya library telegrambot.h ada yg double itu gan, antara di libraries di program file : arduino, sama di document : libraries
sama blm di install untuk libraries wemos d1 mini pro ny,
Arduino: 1.8.5 (Windows 7), Board: “WeMos D1 mini Pro, 80 MHz, 16M (15M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600”
Invalid library found in C:\Program Files\Arduino\libraries\TelegramBot-Library-master: C:\Program Files\Arduino\libraries\TelegramBot-Library-master
Build options changed, rebuilding all
C:\Users\PASCASARJANA UGM\Documents\Arduino\Wemos_D1_Telegram\Wemos_D1_Telegram.ino:2:30: fatal error: TelegramKeyboard.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board WeMos D1 mini Pro.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
C:\Users\PASCASARJANA UGM\Documents\Arduino\Wemos_D1_Telegram\Wemos_D1_Telegram.ino:2:30: fatal error: TelegramKeyboard.h: No such file or directory
yang libraries di dokumen ini dihapus saja gan,
hanya ada di program file saja,
itu error karena libraries yang double sepertinya
BISA TIDAK YA…WEMOS D1 MINI DIGANTI DENGAN ESP8266NODE NCU
Bisa banget gan, cuma diganti konfigurasi select device ny,
device sudah saya ganti dengan NodeMCU ESP8266 tapi ada error
Error dibagian mana gan? coba gabung via WA, trs difoto, thnaks
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp: In member function ‘message TelegramBot::getUpdates()’:
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:39:4: error: ‘StaticJsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:39:4: note: suggested alternative:
In file included from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/StaticJsonDocument.hpp:8:0,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:15,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.h:11,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:8:
C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7: note: ‘ArduinoJson::Internals::StaticJsonBuffer’
class StaticJsonBuffer : public Internals::StaticJsonBufferBase {
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:39:37: error: ‘jsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp: In member function ‘String TelegramBot::sendMessage(String, String)’:
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:87:3: error: ‘StaticJsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:87:3: note: suggested alternative:
In file included from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/StaticJsonDocument.hpp:8:0,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:15,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.h:11,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:8:
C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7: note: ‘ArduinoJson::Internals::StaticJsonBuffer’
class StaticJsonBuffer : public Internals::StaticJsonBufferBase {
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:87:36: error: ‘jsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:93:8: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’
buff.printTo(msg);
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp: In member function ‘String TelegramBot::sendMessage(String, String, TelegramKeyboard&, bool, bool)’:
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:102:3: error: ‘StaticJsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:102:3: note: suggested alternative:
In file included from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/StaticJsonDocument.hpp:8:0,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:15,
from C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.h:11,
from C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:8:
C:\Users\Hanif\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7: note: ‘ArduinoJson::Internals::StaticJsonBuffer’
class StaticJsonBuffer : public Internals::StaticJsonBufferBase {
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:102:36: error: ‘jsonBuffer’ was not declared in this scope
StaticJsonBuffer jsonBuffer;
^
C:\Users\Hanif\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:122:8: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’
buff.printTo(msg);
^
exit status 1
Error compiling for board WeMos D1 R1.
gan ko masih eror kaya gini ya
libraries yg di documents > arduino ny dihapus dulu gan,
trs ekstrak lg pindah ke program file (x86) > arduino > libraries,
trs restart software arduino, compile dan upload
Arduino: 1.8.5 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600” C:\Users\Deadinside\Documents\Arduino\swbot\swbot.ino: In function ‘void loop()’: swbot:56: error: expected primary-expression before ‘)’ token digitalWrite(relay1, ); ^ swbot:67: error: expected primary-expression before ‘)’ token digitalWrite(relay2, ); ^ swbot:78: error: expected primary-expression before ‘)’ token digitalWrite(relay3, ); ^ swbot:84: error: expected primary-expression before ‘)’ token digitalWrite(relay4, ); ^ swbot:89: error: expected primary-expression before ‘)’ token digitalWrite(relay4, ); ^ swbot:95: error: expected primary-expression before ‘)’ token digitalWrite(relay1, ); ^ swbot:96: error: expected primary-expression before ‘)’ token digitalWrite(relay2, ); ^ swbot:97: error: expected primary-expression before ‘)’ token digitalWrite(relay3, ); ^ swbot:98: error: expected primary-expression before ‘)’ token digitalWrite(relay4, ); ^ exit status 1 expected primary-expression before ‘)’ token This report would have more information with “Show verbose output during compilation” option enabled in File -> Preferences.
sorry gan, programnya kemarin ada yang belum ke copy,
sudah dibetulkan
thanks
gan kalo ngirim pesan dari perangkat ke bot telegram tanpa nunggu pesan dari telegram bagaimana ya?
misalnya kalo pushbutton ditekan, akan ada pemberitahuan ke telegram.
Arduino: 1.8.5 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600”
C:\Program Files (x86)\Arduino\libraries\TelegramBot-Library-master\TelegramBot-Library-master\examples\EchoBot-ESP8266\EchoBot-ESP8266.ino:20:25: fatal error: TelegramBot.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board WeMos D1 R2 & mini.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
klo itu apa ya gan? include telegram nya error
itu library belum di include kan gan,
coba di replacekan saja
gan kalo ane pakenya esp8266 e-01 + Arduino Mega bisa ga gan?
ane pernah coba, tapi koneksinya kurang stabil gan
paling bagus ESP8266 tipe 12e/f saja gan
saya sudah berhasil merangkai dan menggunakan smarthome relay menggunakan aplikasi telegram, baik dengan ESP 8266 Node Mcu V.3 maupun wemos D1 Mini… sdh berjalan dengan baik..cuma timbul masalah saat listrik di rumah padam…kemudian listrik nyala lagi maka baik wemos D1 mini maupun ESP 8266 Node Mcu tidak mau menangkap sinyal Wifi sehingga peralatan listrik yang tersambung ke relay akan nyala terus, tidak bisa dimatikan lewat aplikasi telegram.. baru bisa menangkap sinyal wifi setelah kita pencet tombol reset pada hardwarenya… bagaimana cara mengatasi hal ini ya mas nyebar ilmu? klu kita pergi keluar kota…lampu rumah kan tidak bisa kita matikan lewat aplikasi kalau seperti ini,,makasih kami tunggu solusinya
malam mas.. maaf mau tanya ada wa gak ya ? mau konsultasi nih hehe
pojok kiri bawah, join saja ke grup ya
kalau misalnya ga pake telegram bisa ga ya?
alternatif yang paling mudah gunain BLYNK, kalo mau agak privasi ya developt web server gan gunain php,
saya sudah coba hapus library yg di document tapi masih belum bisa juga yah
Masih error nya dibagian mana ya?
bisa dishare
gan jadi saya udah coba , dia mau konek , tapi selang beberapadetik langsung disconnect … mungkin bisa diberi pencerahan ?? kode API bener 100%
untuk API telegram di library ini, untuk saat ini memang mengalami ketidakstabilan,
lagi dicarikan yang terbaru,