Inhoudsopgave:

[IoT] Telegram Bot met Arduino MKR WiFi 1010 - Ajarnpa
[IoT] Telegram Bot met Arduino MKR WiFi 1010 - Ajarnpa

Video: [IoT] Telegram Bot met Arduino MKR WiFi 1010 - Ajarnpa

Video: [IoT] Telegram Bot met Arduino MKR WiFi 1010 - Ajarnpa
Video: УМНЫЙ ПОЛИВ НА АРДУИНО nano 2024, Juli-
Anonim
Image
Image
Wat je nodig hebt
Wat je nodig hebt

Dit project laat zien hoe Arduino kan worden gekoppeld aan de Telegram Bot API's. Het project is gebouwd rond het nieuwe MKR WiFi 1010-bord dat is uitgerust met een ESP32-module van U-BLOX.

In dit stadium is het project niet meer dan een proof of concept, alleen om je te laten zien wat je ermee zou kunnen doen, dus hiervoor heb je alleen het Arduino-bord nodig.

Maar wat is een Telegram Bot? Welnu, Bots zijn gewoon Telegram-accounts die worden beheerd door software – niet door mensen – en ze hebben vaak AI-functies. Ze kunnen alles doen: lesgeven, spelen, zoeken, uitzenden, herinneren, verbinden, integreren met andere diensten of zelfs opdrachten doorgeven aan het internet der dingen. (credits door Telegram:

In ons geval geven we opdrachten door aan Arduino om een eenvoudig IoT-apparaat te bouwen. Het antwoordt op eenvoudige commando's en zet ook de ingebouwde Led aan/uit. Ik laat je fantasie er meer mee doen… (stel je voor om een of meerdere relais aan te sluiten op de I/O-pinnen en bijvoorbeeld een verwarming of het airconditioningsysteem aan/uit te zetten met je smartphone).

Stap 1: Wat je nodig hebt

Wat je nodig hebt
Wat je nodig hebt

Voor dit project heb je nodig:

  • Arduino MKR WiFi 1010 van Arduino winkel:
  • Arduino IDE 1.8.5 of hoger:
  • Een micro-usb-kabel om Arduino op je pc aan te sluiten
  • Een internetverbinding, het vereist de SSID en het wachtwoord. Het is beter als u uw eigen thuisrouter gebruikt om er zeker van te zijn dat deze niet wordt geblokkeerd.
  • Telegram-app geïnstalleerd op uw smartphone, ongeacht het merk. Kijk hier ook voor pc- en webversies!

Stap 2: De IDE installeren

De IDE installeren
De IDE installeren
De IDE installeren
De IDE installeren
De IDE installeren
De IDE installeren

Ja, ik weet het, ik weet het … de meesten van jullie hebben de Arduino IDE al op de pc geïnstalleerd, maar deze Instructables is ook bedoeld voor beginners. Dus download allereerst de Arduino IDE 1.8.5 naar keuze (zip-bestand voor 'niet-beheerders' of exe-bestand)

De 1.8.5-versie wordt aanbevolen, ik heb geen oude versies getest en het nieuwe bord dat in het project werd gebruikt, kon helemaal niet worden ondersteund.

Nu moet je de nieuwe borden met hun stuurprogramma's installeren:

  1. start de IDE
  2. Kies in het menu Tools de optie Boards en kies vervolgens bovenaan de lijst met processors voor Boards manager.
  3. Blader door het nieuwe venster (zie afbeelding) totdat u de Arduino SAMD-kaarten vindt met de nieuwe MKR WiFi 1010.
  4. Klik op dat tabblad of klik op Meer info in het tabblad, kies de nieuwste versie en installeer.
  5. Wacht tot de installatie is voltooid. Het zorgt ook voor de installatie van stuurprogramma's
  6. Je hebt ook een nieuwe wifi-bibliotheek voor dit bord nodig: kies Sketch, Include Library en Manage Libraries. Zoek naar Wifinina en installeer zoals je deed met de bovenstaande processor.

Sluit nu uw nieuwe Arduino-bord aan en wacht tot Windows de installatie van het stuurprogramma voltooit.

Via het menu Tools->Board vind je de nieuwe boards, kies de MKR WiFi 1010.

Er is nog een speciale bibliotheek nodig voor dit project, het is de ESP8266TelegramBot-bibliotheek van Giancarlo Bacchio. De bibliotheek is enigszins aangepast om met dit bord te werken, dus het is opgenomen in de map van de schets.

Kies de juiste com-poort en test het bord met de opdracht Get Board Info.

Gefeliciteerd, je bent klaar met de IDE!

Stap 3: De Telegram-bot maken

De Telegram-bot maken
De Telegram-bot maken
De Telegram-bot maken
De Telegram-bot maken
De Telegram-bot maken
De Telegram-bot maken

Het maken van een nieuwe Telegram Bot is vrij eenvoudig.

Open de Telegram-app en typ @BotFather in de zoekbalk en begin een chat met hem (afbeelding1). BotFather is de… Bot-fabriek. Het zal u helpen een nieuwe bot te maken en de instellingen ervan te wijzigen.

Na het /start commando zie je de helplijst (afbeelding 2).

  • Typ /newbot (afbeelding3)Typ nu de naam van uw bot. De naam wordt weergegeven in contactgegevens en elders.
  • BotFather zal u om een gebruikersnaam vragen. De gebruikersnaam is een korte naam die moet worden gebruikt in vermeldingen en telegram.me-links. Gebruikersnamen zijn 5-32 tekens lang en zijn niet hoofdlettergevoelig, maar mogen alleen Latijnse tekens, cijfers en onderstrepingstekens bevatten. De gebruikersnaam van uw bot moet eindigen op 'bot', b.v. 'tetris_bot' of 'TetrisBot'.
  • Als zowel de naam als de gebruikersnaam geldig zijn, ontvangt u een lange reeks tekens genaamd TOKEN. Dit is uw persoonlijke 'sleutel' die wordt gebruikt om te communiceren met Telegram-servers. Kopieer en plak deze voorlopig in een tekstbestand op uw pc. We zullen het later gebruiken in de Arduino-code. Als je het verliest, maak je geen zorgen, heropen gewoon de chat en typ /token om een nieuwe te genereren.

Alle stappen worden hier beschreven:

Geavanceerd (optioneel)

Open de chat opnieuw en typ /help

Klik op (of typ) /setuserpic om een afbeelding voor uw bot te uploaden. Klik op (of typ) /setabouttext om het gedeelte Over voor uw Bot in te stellen: Mensen zien deze tekst op de profielpagina van de bot en deze wordt samen met een link naar uw bot wanneer ze deze met iemand delen.

Klik op (of typ) /setdescription om een beschrijvingssectie voor uw bot in te stellen. Mensen zien deze beschrijving wanneer ze een chat openen met je bot, in een blok met de titel 'Wat kan deze bot doen?'.

Stap 4: Wijzig, upload en test de schets

Wijzig, upload en test de schets
Wijzig, upload en test de schets
Wijzig, upload en test de schets
Wijzig, upload en test de schets
Wijzig, upload en test de schets
Wijzig, upload en test de schets

Het is tijd om de software te uploaden naar het Arduino MKR WiFi 1010-bord.

Download de bijgevoegde bestanden, om de een of andere reden kan ik geen ZIP uploaden, dus maak een map met de naam als de schets en kopieer alle 4 bestanden erin, verander de namen niet tenzij je weet wat je doet.

Aanpassen

Open de schets, we moeten wat informatie invullen (afbeelding1): vul de arduino_secrets.h in met je wifi- en telegramreferentie.

  • Zoek de WiFi-netwerkinformatie en typ uw netwerknaam (SSID) en wachtwoord in.
  • Zoek de bot-informatie van het telegram en typ de naam, gebruikersnaam en token in die door @BotFather zijn verstrekt

Uploaden

Zorg ervoor dat het bord correct is (afbeelding 2) in de ide en is aangesloten en probeer vervolgens de code te compileren. Als de compilatie goed gaat, upload deze dan naar het bord, het duurt maar een paar seconden.

Controleer bij problemen op typefouten en probeer het opnieuw.

Toets

[BELANGRIJK!] De schets stuurt logs naar de IDE. De processor heeft een native USB-poort (zoals Leonardo-boards). Eenmaal ingeschakeld, wacht de code totdat de seriële monitor actief is. Laat het dus op de pc aansluiten en open de seriële monitor. Arduino maakt eerst verbinding met internet en begint vervolgens de Telegram-server te pollen voor nieuwe berichten (afbeelding 3).

Open nu Telegram op uw voorkeursapparaat en typ in het zoekvak de naam van uw bot (niet de gebruikersnaam die eindigt op 'bot'). Open er een chat mee.

Het eerste commando om een chat met een bot te starten is /start, onze Arduino zal antwoorden met een welkomstbericht. Typ nu help (zonder schuine streep), het zal antwoorden met een lijst met ondersteunde commando's, je kunt ze allemaal proberen (afbeelding 4).

Je bent klaar met de test, als iets niet werkt, controleer dan de informatie die in de schets is ingevoerd (naam, gebruikersnaam, token …)

CertificatenAls u fouten ervaart met de verbinding met de telegramserver (log: Bot niet verbonden):

  • Open Extra-> Wifi101/wifinina-updater
  • Zorg ervoor dat uw bord is aangesloten, controleer de poorten aan de linkerkant van de updater-tool, het bord moet daar zijn
  • Klik op Updater-schets openen en upload deze naar het bord
  • Kies na het uploaden in de updater de nieuwste firmware voor je board en klik op update firmware
  • Klik na de update in de updater, sectie SSL-certificaten, op Domein toevoegen, in het dialoogvenster schrijf telegram.org:443 en druk op OK.
  • Klik op Upload certificaten naar wifi-module
  • Upload deze schets naar het bord

Stap 5: Verbeteringen

Verbeteringen
Verbeteringen

Als we naar de code kijken, is het heel eenvoudig om nieuwe commando's te implementeren en de gebruiker te antwoorden.

Nieuwe commando's: je kunt een sub schrijven voor elk nieuw commando. Elke sub zorgt voor het voltooien van de opdracht en stuurt (uiteindelijk) statusinformatie naar de gebruiker.

Gebruikers beperken: Natuurlijk is dit project slechts een demo. Elke Telegram-gebruiker kan verbinding maken met uw huis en ongewenste opdrachten verzenden. Dit wil je niet!.

Nou, kijk naar de afbeelding 1, deze toont 2 verbonden gebruikers. Zoals u kunt zien, heeft elke gebruiker zijn eigen gebruikers-ID. Met een beetje werk aan de codekant kun je filteren (of een lijst maken) alleen voor geautoriseerde gebruikers. Bestudeer de code en probeer het gebruikers-ID-nummer te onderscheppen. Voer vervolgens alleen opdrachten uit van bekende gebruikers.

Hardware: Aan de hardwarekant kunnen veel sensoren en relais worden aangesloten op de I/O-pinnen van Arduino.

Wees voorzichtig: het bord dat in dit project wordt gebruikt, is 3.3V tolerant!!! Gebruik waar nodig een voltage level shifter!Voor meer info en tips over dit board lees je hier:https://www.arduino.cc/en/Guide/MKRWiFi1010

Dat is alles, geniet ervan!

Aanbevolen: