Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

[IoT] Telegram Bot met Arduino MKR WiFi 1010

Componenten en benodigdheden

Arduino MKR WIFI 1010
× 1

Over dit project

Dit project laat zien hoe Arduino kan worden gekoppeld aan de Telegram Bot-API's. Het project is opgebouwd rond het nieuwe MKR WiFi 1010-bord 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:lesgeven, spelen, zoeken, uitzenden, herinneren, verbinden, integreren met andere diensten of zelfs opdrachten doorgeven aan het internet der dingen. (credits door Telegram:https://telegram.org/blog/bot-revolution)

In ons geval zullen we opdrachten doorgeven aan Arduino die een eenvoudig IoT-apparaat bouwt. 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 dat je een of meer relais aansluit op de I/O-pinnen en bijvoorbeeld een verwarming of het airconditioningsysteem aan-/uitzet met je smartphone).

Stap 1:Wat u nodig heeft

Voor dit project heb je nodig:

  • Arduino MKR WiFi 1010 van Arduino store:https://store.arduino.cc/arduino-mkr-wifi-1010
  • Arduino IDE 1.8.5 of hoger:https://www.arduino.cc/en/Main/Software
  • Een micro-usb-kabel om Arduino op uw 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

Ja, ik weet het, ik weet het... de meesten van jullie hebben de Arduino IDE al op de pc geïnstalleerd, maar deze tutorial is ook bedoeld voor beginners.

Download dus eerst 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 boards met hun drivers installeren:

  • start de IDE
  • Van de Hulpprogramma's menu kies Boden kies vervolgens bovenaan de lijst met processors Boardsbeheer .
  • Scrol door het nieuwe venster (zie afbeelding) totdat u de Arduino SAMD-kaarten vindt met de nieuwe MKR WiFi 1010.
  • Klik op dat tabblad of klik op Meer info in het tabblad, kies de nieuwste versie en installeer.
  • Wacht tot de installatie is voltooid. Het zorgt ook voor de installatie van stuurprogramma's
  • Je hebt ook een nieuwe wifi-bibliotheek nodig voor dit bord:kies Sketch, Include Library en Bibliotheken beheren. 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.

Van het Tools->Board menu vind je de nieuwe borden, 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 Boardinfo ophalen commando.

Gefeliciteerd, je bent klaar met de IDE!

Stap 3: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 je helpen een nieuwe bot te maken en de instellingen ervan te wijzigen.

Na de /start commando ziet u de helplijst (afbeelding 2).

  • Typ /newbot (afbeelding3) Typ nu de naam van je bot. De naam wordt weergegeven in contactgegevens en elders.
  • BotFather zal je 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, ontvang je een lange reeks tekens genaamd TOKEN. Dit is uw persoonlijke 'sleutel' die wordt gebruikt om te communiceren met de servers van Telegram. Kopieer en plak deze voorlopig in een tekstbestand op uw pc. We gebruiken het later in de Arduino-code. Als je het kwijtraakt, maak je dan geen zorgen, heropen gewoon de chat en typ /token om een ​​nieuwe te genereren.

Alle stappen worden hier beschreven:https://core.telegram.org/bots#6-botfather

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 verzonden 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

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

Download de bijgevoegde schets en pak deze uit, wijzig de namen en mappen niet tenzij u weet wat u doet.

Aanpassen

Open de schets, we moeten wat informatie invullen (afbeelding1),

Ga naar het tabblad arduino_secrets.h:

  • Zoek de WiFi-netwerkinformatie en typ uw netwerknaam (SSID) en wachtwoord in.
  • Zoek de telegram Bot-informatie en typ de naam, gebruikersnaam en token 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 in geval van problemen op typefouten en probeer het opnieuw.

Testen

[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 (afbeelding3).

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 , zal onze Arduino 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 (afbeelding4).

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

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

  • Open Tools->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 firmware bijwerken
  • 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 Certificaten uploaden naar wifi-module
  • Upload deze schets naar het bord

Stap 5:Verbeteringen

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

Nieuwe opdrachten

U kunt voor elk nieuw commando een sub schrijven. Elke sub zorgt voor het voltooien van de opdracht en (uiteindelijk) geeft de gebruiker statusinformatie terug.

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 dan 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 spanningsniveauverschuiver! Lees hier voor meer info en tips over dit board:https://www.arduino.cc/en/Guide/MKRWiFi1010

Dat is alles, geniet ervan!

Code

  • MKR1010Bot_V1_02.zip
MKR1010Bot_V1_02.zipC/C++
Telegram Bot-schets
Geen voorbeeld (alleen downloaden).

Productieproces

  1. GoPiGo v2 met Windows IoT
  2. Bedien muntvangers met Arduino
  3. Audiofrequentiedetector
  4. Arduino met Bluetooth om een ​​LED te bedienen!
  5. Tech-TicTacToe
  6. DIY voltmeter met Arduino en een Nokia 5110-display
  7. Arduino Countdown Timer
  8. Bluetooth spraakgestuurde apparaten met OK Google
  9. Bouw de Fridgeye-app met een Nextion-display
  10. RC Porsche Car (Arduino Project)
  11. Zonnestraling meten met Arduino