Membuat Bot Telegram pada Arduino MKR WiFi 1010: Panduan Starter IoT
Komponen dan Perlengkapan
Arduino MKR WIFI 1010
×
1
Tentang Proyek Ini
Proyek ini menunjukkan cara menghubungkan Arduino dengan Telegram Bot APIs. Proyek ini dibangun di sekitar papan baru MKR WiFi 1010 yang dilengkapi dengan modul ESP32 oleh U-BLOX.
Pada tahap ini, proyek ini tidak lebih dari bukti konsep, hanya untuk menunjukkan apa yang bisa Anda lakukan dengan, jadi untuk ini Anda hanya membutuhkan papan Arduino.
Tetapi apa itu bot Telegram?
Nah, bot adalah sekedar akun Telegram yang dioperasikan oleh perangkat lunak – bukan orang – dan mereka sering memiliki fitur AI. Mereka dapat melakukan apa saja – mengajarkan, bermain, mencari, menyiarkan, mengingatkan, menghubungkan, terintegrasi dengan layanan lain, atau bahkan meneruskan perintah ke Internet of Things. (kredit oleh Telegram: https://telegram.org/blog/bot-revolution)
Dalam kasus kami kita akan meneruskan perintah ke Arduino membangun perangkat IoT sederhana. Ini akan merespons perintah sederhana dan juga menyalakan/mematikan Led built-in. Saya biarkan imajinasi Anda melakukan lebih banyak dengannya... (bayangkan menghubungkan satu atau lebih relai ke pin I/O dan menyalakan/mematikan pemanas atau sistem pendingin udara dengan smartphone Anda, misalnya).
Langkah 1: Apa yang Dibutuhkan
Untuk proyek ini Anda membutuhkan:
Arduino MKR WiFi 1010 dari toko Arduino:https://store.arduino.cc/arduino-mkr-wifi-1010
Arduino IDE 1.8.5 atau lebih tinggi:https://www.arduino.cc/en/Main/Software
Kabel micro-usb untuk menghubungkan Arduino ke PC Anda
Koneksi internet, membutuhkan SSID dan kata sandi. Lebih baik jika Anda menggunakan router rumah Anda sendiri untuk memastikan tidak diblokir.
Aplikasi Telegram terinstal di smartphone Anda, tidak masalah merek. Lihat di sini untuk versi PC dan Web juga!
Langkah 2: Menginstal IDE
Ya, saya tahu, saya tahu... sebagian besar Anda sudah menginstal Arduino IDE di PC, tetapi tutorial ini juga dimaksudkan untuk pemula.
Jadi, pertama-tama, unduh Arduino IDE 1.8.5 pilihan Anda (file zip untuk 'non administrator' atau file exe)
Versi 1.8.5 disarankan, saya tidak menguji versi lama dan papan baru yang digunakan dalam proyek ini mungkin tidak didukung sama sekali.
Sekarang Anda perlu menginstal papan baru dengan driver mereka:
mulai IDE
Dari menu Tools pilih Boards lalu, di atas daftar prosesor, pilih Boards manager.
Gulir jendela baru (lihat gambar) sampai Anda menemukan papan Arduino SAMD yang mencakup MKR WiFi 1010 yang baru.
Klik pada tab tersebut atau klik More info di dalam tab, pilih versi terbaru dan instal.
Tunggu instalasi selesai. Ini juga akan mengurus instalasi driver
Anda juga memerlukan library WiFi baru untuk papan ini: pilih Sketch, Include Library dan Manage Libraries.Cari Wifinina dan instal seperti yang Anda lakukan dengan prosesor di atas.
Sekarang hubungkan papan Arduino baru Anda dan tunggu Windows menyelesaikan instalasi driver.
Dari menu Tools->Board Anda akan menemukan papan baru, pilih MKR WiFi 1010.
Library khusus lagi diperlukan untuk proyek ini, yaitu library ESP8266TelegramBot oleh Giancarlo Bacchio. Library telah sedikit dimodifikasi untuk bekerja dengan papan ini jadi disertakan dalam folder sketsa.
Pilih port COM yang benar dan uji papan dengan perintah Get Board Info.
Selamat, Anda selesai dengan IDE!
Langkah 3: Membuat Bot Telegram
Membuat bot Telegram baru cukup mudah.
Buka aplikasi Telegram dan, di kolom pencarian, ketik @BotFather dan mulai obrolan dengan dia (gambar1).BotFather adalah... pabrik bot. Ini akan membantu Anda membuat bot baru dan mengubah pengaturannya.
Setelah perintah /start Anda akan melihat daftar bantuan (gambar2).
Ketik /newbot (gambar3)Sekarang ketik nama bot Anda. Nama ditampilkan di detail kontak dan di tempat lain.
BotFather akan meminta Anda untuk Username. Username adalah nama pendek, untuk digunakan dalam menyebut dan tautan telegram.me. Usernames panjang 5-32 karakter dan tidak peka huruf besar/kecil, tetapi hanya dapat mencakup karakter Latin, angka, dan underscore. Username bot Anda harus diakhiri dengan ‘bot’, misalnya ‘tetris_bot’ atau ‘TetrisBot’.
Jika nama dan username valid Anda akan menerima string panjang karakter yang disebut TOKEN. Ini adalah 'kunci' pribadi Anda yang digunakan untuk berkomunikasi dengan server Telegram.Salin dan tempel dalam file teks di PC Anda untuk saat ini. Kami akan menggunakannya nanti dalam kode Arduino.Jika Anda kehawatirkan tidak masalah, cukup buka kembali obrolan dan ketik /token untuk menghasilkan yang baru.
Semua langkah dijelaskan di sini:https://core.telegram.org/bots#6-botfather
Lanjutan (opsional)
Buka kembali obrolan dan ketik /help
Klik pada (atau ketik) /setuserpic untuk mengunggah gambar untuk bot Anda.Klik pada (atau ketik) /setabouttext untuk mengatur bagian About untuk bot Anda: Orang akan melihat teks ini di halaman profil bot dan akan dikirim bersama dengan tautan ke bot Anda saat mereka membagikannya kepada orang lain.
Klik pada (atau ketik) /setdescription untuk mengatur bagian deskripsi untuk bot Anda. Orang akan melihat deskripsi ini saat mereka membuka obrolan dengan bot Anda, dalam blok yang berjudul 'Apa yang bisa dilakukan bot ini?'
Langkah 4: Modifikasi, Unggah, dan Uji Sketsa
Saatnya untuk mengunggah perangkat lunak ke papan Arduino MKR WiFi 1010.
Unduh sketsa yang dilampirkan dan ekstrak, jangan mengubah nama dan folder kecuali Anda tahu apa yang Anda lakukan.
Modifikasi
Buka sketsa, kita perlu mengisi beberapa informasi (gambar1),
Pergi ke tab arduino_secrets.h:
Temukan informasi jaringan WiFi dan ketik nama jaringan (SSID) dan kata sandi Anda.
Temukan informasi bot Telegram dan ketik nama, username dan token yang diberikan oleh @BotFather
Unggah
Pastikan papan yang benar (gambar2) di IDE dan terhubung lalu coba kompilasi kode. Jika kompilasi berjalan dengan baik, unggah ke papan, itu hanya akan memakan waktu beberapa detik.
Jika ada masalah periksa kesalahan ketik dan coba lagi.
Uji
[PENTING!] Sketsa mengirim log ke IDE. Prosesor memiliki port USB asli (seperti papan Leonardo). Setelah dinyalakan, kode akan menunggu sampai serial monitor berjalan. Jadi, biarkan terhubung ke PC dan buka serial monitor. Arduino akan terhubung ke internet terlebih dahulu, lalu akan mulai polling server Telegram untuk pesan baru (gambar3).
Sekarang buka Telegram di perangkat pilihan Anda dan, di kotak pencarian, ketik nama bot Anda (bukan username yang diakhiri dengan 'bot'). Buka obrolan dengannya.
Perintah pertama untuk memulai obrolan dengan bot adalah /start, Arduino kami akan menjawab dengan pesan sambutan.Sekarang ketik help (tanpa garis miring), itu akan menjawab dengan daftar perintah yang didukung, Anda dapat mencoba semuanya (gambar4).
Anda selesai dengan uji, jika sesuatu tidak berfungsi, periksa informasi yang dimasukkan dalam sketsa (nama, username, token...)
Sertifikat Jika Anda mengalami kesalahan dengan koneksi ke server Telegram (log: Bot not connected):
Buka Tools->Wifi101/wifinina updater
Pastikan papan Anda terhubung, periksa port di sisi kiri alat updater, papan harus ada di sana
Klik Open updater sketch dan unggah ke papan
Setelah unggah, di updater pilih firmware terbaru untuk papan Anda dan klik update firmware
Setelah pembaruan, di updater, bagian SSL sertifikat, klik Add domain, dalam dialog tulis telegram.org:443 lalu tekan OK.
Klik Upload sertifikat ke modul wifi
Unggah sketsa ini ke papan
Langkah 5: Peningkatan
Melihat kode sangat mudah untuk menerapkan perintah baru dan merespons pengguna.
Perintah Baru
Anda dapat menulis sub untuk setiap perintah baru. Setiap sub akan menangani penyelesaian perintah dan (kemungkinan) mengembalikan informasi status ke pengguna.
Membatasi Pengguna
Tentu saja proyek ini hanya demo. Setiap pengguna Telegram dapat terhubung ke rumah Anda dan mengirim perintah yang tidak diinginkan. Anda tidak ingin ini!.
Nah, lihat gambar1, itu menunjukkan 2 pengguna terhubung. Seperti yang Anda lihat setiap pengguna memiliki user ID sendiri. Dengan sedikit pekerjaan di sisi kode Anda dapat menyaring (atau membangun daftar) hanya untuk pengguna yang diizinkan. Cukup pelajari kode dan coba tangkap nomor user ID. Kemudian jalankan perintah hanya dari pengguna yang dikenal.
Hardware
Di sisi hardware, banyak sensor dan relai dapat dihubungkan ke pin I/O Arduino.
Hati-hati: papan yang digunakan dalam proyek ini toleransi 3.3V!!! Gunakan penggeser level tegangan di mana diperlukan! Untuk informasi dan tips lebih lanjut tentang papan ini silakan baca di sini: https://www.arduino.cc/en/Guide/MKRWiFi1010