- Integrasi pustaka UniversalTelegramBot untuk menyederhanakan komunikasi HTTPS dengan API Telegram.
- Kontrol jarak jauh terhadap pin GPIO untuk mengoperasikan aktuator seperti LED dan membaca status sakelar.
- Penerapan keamanan melalui validasi ID obrolan dan penggunaan sertifikat SSL.

Pernahkah Anda mempertimbangkan untuk mengontrol perangkat otomatisasi rumah Anda dari kenyamanan sofa menggunakan ponsel Anda? Nah, menyiapkan sistem untuk mengontrol ESP32 melalui Telegram adalah salah satu cara paling sederhana dan ampuh untuk memasuki dunia otomatisasi rumah tanpa mempersulit hidup Anda dengan server eksternal yang mahal atau konfigurasi yang rumit.
Keajaiban terletak pada mengubah papan Anda menjadi server kecil yang mendengarkan perintah dari bot. Anda tidak perlu menjadi ahli pemrograman, karena dengan beberapa pustaka dan sedikit kesabaran, Anda dapat membuat perangkat Anda menyalakan lampu atau memberi tahu Anda tentang status sensor secara real-time, semuanya melalui pesan teks instan.
Bahan yang Anda butuhkan
Untuk memulai, Anda tidak perlu mengeluarkan banyak uang. Yang terpenting adalah memiliki papan ESP32 ; tidak masalah apakah itu model lama atau salah satu yang terbaru, karena kompatibilitasnya total. Selain otak proyek, Anda akan membutuhkan beberapa komponen dasar untuk pengujian:
- Sebuah dioda pemancar cahaya (LED) untuk memeriksa apakah semuanya berfungsi.
- Resistor 220 ohm untuk mencegah LED terbakar.
- Tombol tekan atau sakelar untuk membaca status fisik.
- Menghubungkan kabel dan papan prototipe (breadboard) sehingga Anda tidak perlu menyolder apa pun di awal.
Perakitan sirkuit elektronik
Sebelum mengedit kode, Anda perlu menyiapkan perangkat keras. Untuk contoh ini, kita akan menghubungkan LED ke pin GPIO 33 dan sakelar ke GPIO 14. Penting untuk diingat bahwa Anda dapat mengubah pin ini sesuai kebutuhan, tetapi Anda harus mencerminkan perubahan tersebut nanti dalam konstanta program.
LED dihubungkan dengan resistor yang sesuai untuk perlindungan, sementara tombol tekan dikonfigurasi secara internal untuk menghindari pengkabelan tambahan. Setelah Anda merakit rangkaian pada papan prototipe (breadboard) , Anda dapat melanjutkan ke bagian perangkat lunak, di mana semua aksi terjadi.
Cara Mengatur Bot di Telegram
Agar ESP32 dapat mengetahui siapa yang harus didengarkan, kita harus terlebih dahulu membuat identitas bot di dalam aplikasi Telegram itu sendiri. Proses ini sangat penting karena menyediakan dua informasi kunci: token bot (serangkaian panjang angka dan huruf) dan ID pengguna pribadi Anda . Tanpa kedua kunci ini, perangkat tidak dapat mengautentikasi dirinya sendiri atau menentukan siapa yang berwenang untuk memberikan perintah kepadanya.
Jika sewaktu-waktu Anda merasa obrolan menjadi kacau, ingatlah bahwa Anda selalu dapat menghapus riwayat dari menu di kanan atas. Dengan melakukan itu, bot akan dimulai ulang dan kembali ke tombol beranda dengan perintah yang tersedia, sehingga Anda dapat memulai dari awal.
Persiapan lingkungan pengembangan
Agar kode ini berfungsi, kita perlu menginstal alat yang memudahkan pekerjaan kita: pustaka UniversalTelegramBot . Alih-alih menulis ratusan baris kode untuk menangani API Telegram, pustaka ini melakukan hampir semuanya untuk kita.
Untuk menginstalnya, cukup buka pengelola pustaka di Arduino IDE, ketik nama pustaka, dan klik instal. Pastikan juga Anda telah menginstal pustaka WiFi dan WiFiClientSecure , karena pustaka ini memungkinkan ESP32 untuk terhubung ke internet dan menggunakan protokol HTTPS untuk komunikasi yang aman.
Analisis kode kontrol
Program ini dimulai dengan menentukan kredensial jaringan WiFi Anda dan kunci bot. Sangat penting bagi Anda untuk mengganti nilai contoh dengan nilai Anda sendiri. SSID dan kata sandiserta token dan ID obrolan. Untuk interaktivitas, kami mendefinisikan variabel yang disebut info yang berisi daftar perintah yang akan dikenali oleh bot, seperti /led_on atau /sw_state.
Manajemen pesan dan perintah
Inti dari sistem ini adalah fungsi yang memeriksa pesan baru. ESP32 menggunakan metode ini. getUpdates ayat periksa antrean pesan dari Telegram. Untuk mencegah orang asing mengendalikan rumah Anda, kode tersebut menyertakan filter yang memverifikasi bahwa ID pengirim sama persis dengan ID Anda. ID CHAT yang telah ditentukan sebelumnya.
Setelah pengguna divalidasi, bot menganalisis teks yang diterima: jika mendeteksi /led_onIa mengirimkan sinyal digital ke pin 33 untuk menyalakan lampu; jika menerima /led_off, mematikannya. Ada juga opsi untuk /led_toggleyang sangat praktis karena membalikkan keadaan saat ini dari LED tanpa Anda perlu mengetahui apakah sebelumnya LED tersebut menyala atau mati.
Pembacaan dan penyelesaian sensor
Selain mengeluarkan perintah, bot juga dapat memberikan informasi. Dengan menggunakan perintah /sw_stateESP32 membaca status pin 14. Karena kita telah mengkonfigurasi pin tersebut sebagai INPUT_PULLUPPerangkat akan mendeteksi apakah tombol ditekan atau tidak dan akan mengirimkan balasan teks kepada kita untuk mengkonfirmasinya.
Selama proses booting, perangkat terhubung ke Wi-Fi secara terkunci, artinya perangkat tidak akan melakukan apa pun sampai koneksi stabil . Untuk lebih meningkatkan keamanan, sertifikat root Telegram digunakan, memastikan bahwa lalu lintas data dienkripsi. Loop utama hanya mengulangi pengecekan pesan setiap detik untuk menjaga sistem tetap gesit dan responsif.
Dengan sistem ini, kami telah berhasil mengintegrasikan perangkat keras dan perangkat lunak untuk menciptakan jembatan komunikasi nirkabel. Kami telah mengkonfigurasi bot, mengelola keamanan menggunakan ID dan sertifikat, serta memprogram respons pin GPIO untuk berinteraksi dengan dunia fisik dari mana saja yang memiliki koneksi internet.
Pertanyaan yang sering diajukan
Library apa yang dibutuhkan untuk menghubungkan ESP32 ke Telegram?
Sebaiknya gunakan library UniversalTelegramBot, yang menyederhanakan interaksi dengan API Telegram dan mempermudah pengiriman dan penerimaan pesan.
Bagaimana cara memastikan bahwa hanya saya yang dapat mengontrol bot tersebut?
Kode tersebut mengimplementasikan filter yang membandingkan ID obrolan dari pesan yang diterima dengan CHAT_ID yang telah ditentukan sebelumnya, mengabaikan perintah apa pun yang berasal dari pengguna lain.
Apakah perlu menggunakan HTTPS untuk berkomunikasi dengan bot?
Ya, Telegram memerlukan koneksi yang aman, jadi WiFiClientSecure digunakan dan sertifikat root Telegram harus dikonfigurasi pada ESP32.
Apa tujuan dari perintah /led_toggle dalam kode tersebut?
Perintah ini digunakan untuk membalikkan keadaan LED saat ini, menyalakannya jika sebelumnya mati atau mematikannya jika sebelumnya menyala.
Mengapa INPUT_PULLUP digunakan untuk switch?
Ini digunakan untuk mengaktifkan resistansi internal papan, sehingga menghindari kebutuhan untuk menambahkan resistansi fisik eksternal ke rangkaian tombol tekan.
Di mana saya bisa mendapatkan token bot dan ID pengguna?
Token diperoleh dengan membuat bot melalui BotFather di Telegram, dan ID pengguna dapat diperoleh melalui bot yang khusus untuk mendapatkan identitas profil.



