Bouw een Telegram Bot op Arduino MKR WiFi 1010: IoT Starter Handleiding
Onderdelen en Benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino MKR WIFI 1010 | 1 |
Over dit Project
Dit project demonstreert hoe je Arduino koppelt aan de Telegram Bot API's. Het is gebouwd rond het nieuwe MKR WiFi 1010 bord met een ESP32 module van U-BLOX.
Op dit moment is het project niet meer dan een proof-of-concept, om te laten zien wat er mogelijk is. Je hebt alleen het Arduino bord nodig.
Maar wat is een Telegram bot? Bots zijn simpelweg Telegram-accounts die door software worden bediend – niet door mensen – en ze hebben vaak AI-functies. Ze kunnen alles: leren, spelen, zoeken, uitzenden, herinneren, verbinden, integreren met andere diensten, of zelfs commando's doorgeven aan het Internet of Things.
In ons geval sturen we commando's naar Arduino om een simpel IoT-apparaat te bouwen. Het antwoordt op simpele commando's en zet de ingebouwde LED aan/uit. Ik laat je verbeelding de rest bedenken... (stel je voor dat je een of meer relais aan de I/O pinnen koppelt en de verwarming of airconditioning met je smartphone aan/uit zet).
Stap 1: Wat Je Nodig Hebt
- Arduino MKR WiFi 1010 uit de Arduino winkel: store.arduino.cc
- Arduino IDE 1.8.5 of hoger: arduino.cc
- Een micro-USB kabel om Arduino met je PC te verbinden
- Een internetverbinding, vereist SSID en wachtwoord. Beter je eigen thuissrouter gebruiken om zeker te zijn dat het niet geblokkeerd is.
- Telegram app geïnstalleerd op je smartphone, merk maakt niet uit. Check hier voor PC en Web versies.
Stap 2: De IDE Installeren
Meesten hebben de Arduino IDE al geïnstalleerd, maar deze tutorial is ook voor beginners.
- Download Arduino IDE 1.8.5 (zip voor 'non administrators' of exe).
- Start de IDE.
- Ga naar Tools > Boards > Boards Manager.
- Zoek "Arduino SAMD boards" wat de MKR WiFi 1010 bevat.
- Klik op het tabblad of "More info", kies de nieuwste versie en installeer. Dit installeert ook de drivers.
- Je hebt ook een nieuwe WiFi bibliotheek nodig: Sketch > Include Library > Manage Libraries. Zoek "Wifinina" en installeer.
- Sluit je nieuwe Arduino bord aan en wacht tot Windows de drivers installeert.
- Onder Tools > Board kies je MKR WiFi 1010.
- Een speciale bibliotheek is nodig: ESP8266TelegramBot library door Giancarlo Bacchio. Deze is licht aangepast voor dit bord en zit in de sketch-map.
- Kies de juiste COM-poort en test het bord met Get Board Info.
Gefeliciteerd, je bent klaar met de IDE!
Stap 3: De Telegram Bot Maken
- Open de Telegram app en zoek in de zoekbalk naar @BotFather en start een chat.
- Na
/startzie je de help lijst. - Typ
/newbot. - Geef een naam voor je bot (zichtbaar in contactgegevens).
- BotFather vraagt om een gebruikersnaam. Deze moet 5-32 karakters zijn, hoofdletterongevoelig, alleen Latijnse letters, cijfers en underscores. De gebruikersnaam moet eindigen op 'bot', bijv. 'tetris_bot' of 'TetrisBot'.
- Als beide geldig zijn, ontvang je een lange string: de TOKEN. Dit is je persoonlijke sleutel om te communiceren met Telegram-servers. Kopieer en bewaar het. Als je het verliest, typ
/tokenbij BotFather voor een nieuwe.
Alle stappen staan beschreven op: core.telegram.org
Geavanceerd (optioneel)
- Typ
/helpbij BotFather. /setuserpicom een afbeelding voor je bot te uploaden./setabouttextvoor de "Over" sectie op het profiel./setdescriptionvoor een beschrijving die gebruikers zien als ze een chat openen.
Stap 4: Sketch Aanpassen, Uploaden en Testen
- Download de bijgevoegde sketch en pak uit. Verander geen namen/mappen tenzij je weet wat je doet.
- Aanpassen: Open de sketch, ga naar tab
arduino_secrets.h:- Vul je WiFi netwerknaam (SSID) en wachtwoord in.
- Vul de Telegram Bot gegevens in: naam, gebruikersnaam en token van @BotFather.
- Uploaden: Zorg dat het juiste bord geselecteerd is in de IDE, compileer en upload.
- Testen: BELANGRIJK! De sketch stuurt logs naar de IDE. De processor heeft een native USB poort (zoals Leonardo). Zodra aangesloten, wacht de code tot de Serial Monitor draait. Laat hem aangesloten en open de Serial Monitor. Arduino verbindt met internet, begint te polsen naar de Telegram-server voor nieuwe berichten.
- Open Telegram op je apparaat, zoek de naam van je bot (niet de gebruikersnaam die op 'bot' eindigt). Open een chat.
- Eerste commando:
/start– Arduino antwoordt met een welkomstbericht. - Typ
help(zonder slash) – het geeft een lijst met ondersteunde commando's. Probeer ze allemaal.
Als iets niet werkt, controleer de ingevoerde gegevens in de sketch (naam, gebruikersnaam, token...).
Certificaten Als je fouten ervaart bij verbinding met de Telegram-server (log: "Bot not connected"):
- Open Tools > Wifi101/wifinina updater.
- Zorg dat je bord aangesloten is, check de poorten links in de updater tool.
- Klik "Open updater sketch" en upload naar het bord.
- Na upload, kies de nieuwste firmware voor je bord en klik "update firmware".
- Na update, in de updater, sectie "SSL certificates", klik "Add domain", voer
telegram.org:443in en druk OK. - Klik "Upload certificates to wifi module".
- Upload deze sketch weer naar het bord.
Stap 5: Verbeteringen
Kijkend naar de code is het heel simpel om nieuwe commando's te implementeren en de gebruiker te beantwoorden.
Nieuwe Commando's
Je kunt een subroutines schrijven voor elk nieuw commando. Elke sub zorgt voor het uitvoeren van het commando en (eventueel) het terugsturen van statusinformatie.
Gebruikers Beperken
Dit project is alleen een demo. Elke Telegram-gebruiker kan verbinden en ongewenste commando's sturen. Dat wil je niet! In de afbeelding zie je 2 verbonden gebruikers. Elke gebruiker heeft een eigen User ID. Met wat codewerk kun je filteren (of een lijst bouwen) voor geautoriseerde gebruikers. Bestudeer de code en probeer de User ID af te vangen. Voer commando's alleen uit van bekende gebruikers.
Hardware
Veel sensoren en relais kunnen aan de I/O pinnen van Arduino worden aangesloten. Let op: dit bord is 3.3V tolerant!!! Gebruik een voltage level shifter waar nodig! Meer info en tips: arduino.cc/en/Guide/MKRWiFi1010
Dat is alles, veel plezier!
Code
MKR1010Bot_V1_02.zip (C/C++)
Telegram Bot sketch – download alleen (geen preview beschikbaar).
Productieproces
- GoPiGo v2 Uitbreiden op Windows 10 IoT Core voor Raspberry Pi 3
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een DIY Voltmeter met Arduino en Nokia 5110 Display – Stap-voor-Stap Handleiding
- Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display
- Spraakgestuurde huishoudapparaten: Bluetooth-besturing met Google Assistant
- De Fridgeye-app bouwen met een Nextion-display: stapsgewijze handleiding
- Bouw je eigen RC Porsche-auto met Arduino: Stap-voor-stap handleiding
- Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield