Innholdsfortegnelse:

[IoT] Telegram Bot Med Arduino MKR WiFi 1010: 5 trinn
[IoT] Telegram Bot Med Arduino MKR WiFi 1010: 5 trinn

Video: [IoT] Telegram Bot Med Arduino MKR WiFi 1010: 5 trinn

Video: [IoT] Telegram Bot Med Arduino MKR WiFi 1010: 5 trinn
Video: Can You Reattach a Severed Finger? 🤔 2024, Juli
Anonim
Image
Image
Hva trenger du
Hva trenger du

Dette prosjektet viser hvordan du kan koble Arduino til Telegram Bot API. Prosjektet er bygget rundt det nye MKR WiFi 1010-kortet utstyrt med en ESP32-modul fra U-BLOX.

På dette stadiet er prosjektet ikke mer enn et konseptbevis, bare for å vise deg hva du kan gjøre med, så for dette trenger du bare Arduino -brettet.

Men hva er en Telegram Bot? Vel, Bots er ganske enkelt Telegram -kontoer som drives av programvare - ikke mennesker - og de vil ofte ha AI -funksjoner. De kan gjøre alt - undervise, spille, søke, kringkaste, minne, koble til, integrere med andre tjenester eller til og med sende kommandoer til tingenes internett. (kreditter av Telegram:

I vårt tilfelle sender vi kommandoer til Arduino som bygger en enkel IoT -enhet. Den vil svare på enkle kommandoer og også slå på/av den innebygde LED-en. Jeg lar fantasien gjøre mer med det … (tenk deg å koble ett eller flere relé til I/O -pinnene og slå på/av en varmeapparat eller klimaanlegget med smarttelefonen din, for eksempel).

Trinn 1: Det du trenger

Hva trenger du
Hva trenger du

For dette prosjektet trenger du:

  • Arduino MKR WiFi 1010 fra Arduino-butikken:
  • Arduino IDE 1.8.5 eller nyere:
  • En mikro-usb-kabel for å koble Arduino til din PC
  • En internettforbindelse, det krever SSID og passord. Bedre hvis du bruker din egen hjemmeruter for å være sikker på at den ikke er blokkert.
  • Telegram -appen er installert på smarttelefonen din, uansett merke. Sjekk her også for PC- og webversjoner!

Trinn 2: Installere IDE

Installere IDE
Installere IDE
Installere IDE
Installere IDE
Installere IDE
Installere IDE

Ja, jeg vet, jeg vet … de fleste av dere har allerede Arduino IDE installert på PCen, men denne instruksen er også beregnet for nybegynnere. Så først og fremst må du laste ned Arduino IDE 1.8.5 etter eget valg (zip -fil for 'ikke -administratorer' eller exe -fil)

1.8.5 -versjonen anbefales, jeg testet ikke gamle versjoner, og det nye kortet som ble brukt i prosjektet kunne ikke støttes i det hele tatt.

Nå må du installere de nye brettene med driverne:

  1. start IDE
  2. Velg Boards fra Verktøy -menyen, og velg Boards manager øverst på prosessorlisten.
  3. Bla gjennom det nye vinduet (se bildet) til du finner Arduino SAMD -kortene som inneholder den nye MKR WiFi 1010.
  4. Klikk på den fanen eller klikk på Mer informasjon i fanen, velg den nyeste versjonen og installer.
  5. Vent til installasjonen er fullført. Det vil også ta vare på installasjonen av drivere
  6. Du trenger også et nytt WiFi -bibliotek for dette brettet: Velg Sketch, Include Library og Manage Libraries. Søk etter Wifinina og installer som du gjorde med prosessoren ovenfor.

Koble nå til det nye Arduino -kortet og vent på at Windows skal fullføre driverinstallasjonen.

Fra Verktøy-> Board-menyen finner du de nye kortene, velg MKR WiFi 1010.

Et annet spesialbibliotek er nødvendig for dette prosjektet, det er ESP8266TelegramBot -biblioteket av Giancarlo Bacchio.

Velg riktig port og test brettet med kommandoen Get Board Info.

Gratulerer, du er ferdig med IDE!

Trinn 3: Opprette Telegram Bot

Opprette Telegram Bot
Opprette Telegram Bot
Opprette Telegram Bot
Opprette Telegram Bot
Opprette Telegram Bot
Opprette Telegram Bot

Å lage en ny Telegram Bot er ganske enkelt.

Åpne Telegram -appen, og skriv @BotFather i søkefeltet og start en prat med ham (image1). BotFather er … Bot -fabrikken. Det vil hjelpe deg med å lage en ny bot og endre innstillingene.

Etter /start -kommandoen ser du hjelpelisten (image2).

  • Type /newbot (image3) Skriv nå navnet på boten din. Navnet vises i kontaktinformasjon og andre steder.
  • BotFather vil be deg om et brukernavn. Brukernavnet er et kort navn, som skal brukes i omtaler og lenker til telegram.me. Brukernavn er 5–32 tegn lange og er ufølsomme for store og små bokstaver, men kan bare inneholde latinske tegn, tall og understrek. Botens brukernavn må ende med ‘bot’, f.eks. ‘Tetris_bot’ eller ‘TetrisBot’.
  • Hvis både navnet og brukernavnet er gyldig, vil du motta en lang rekke tegn som kalles TOKEN. Dette er din personlige 'nøkkel' som brukes til å kommunisere med Telegram -servere. Kopier og lim den inn i en tekstfil på PC -en din nå. Vi bruker den senere i Arduino -koden. Hvis du mister den, ikke bekymre deg, bare åpne chatten på nytt og skriv /token for å generere en ny.

Alle trinnene er beskrevet her:

Avansert (valgfritt)

Åpne chatten igjen og skriv /hjelp

Klikk på (eller skriv) /setuserpic for å laste opp et bilde for din bot. Klikk på (eller skriv) /setabouttext for å angi About -delen for din Bot: Folk vil se denne teksten på botens profilside, og den vil bli sendt sammen med en lenke til boten din når de deler den med noen.

Klikk på (eller skriv) /setdescription for å angi en beskrivelsesdel for boten din. Folk vil se denne beskrivelsen når de åpner en chat med boten din, i en blokk med tittelen 'Hva kan denne boten gjøre?'.

Trinn 4: Endre, last opp og test skissen

Endre, last opp og test skissen
Endre, last opp og test skissen
Endre, last opp og test skissen
Endre, last opp og test skissen
Endre, last opp og test skissen
Endre, last opp og test skissen

Det er på tide å laste opp programvaren til Arduino MKR WiFi 1010 -kortet.

Last ned de vedlagte filene, av en eller annen grunn kan jeg ikke laste opp en ZIP, så opprett en mappe som heter skissen og kopier alle de 4 filene i den. Vennligst ikke endre navn med mindre du vet hva du gjør.

Endre

Åpne skissen, vi må fylle ut litt informasjon (bilde 1): fyll arduino_secrets.h med wifi og telegramlegitimasjon.

  • Finn informasjon om WiFi -nettverket og skriv inn nettverksnavnet ditt (SSID) og passord.
  • Finn telegram Bot -informasjonen og skriv inn navnet, brukernavnet og tokenet som er gitt av @BotFather

Laste opp

Kontroller at tavlen er riktig (image2) i ideen og tilkoblet, og prøv deretter å kompilere koden. Hvis samlingen går bra, last den opp til brettet, det tar bare noen sekunder.

I tilfelle problemer, se etter en skrivefeil og prøv igjen.

Test

[VIKTIG!] Skissen sender logger til IDE. Prosessoren har en innebygd USB -port (som Leonardo -kort). Når den er slått på, vil koden vente til den serielle skjermen kjører. Så la den kobles til PCen og åpne den serielle skjermen. Arduino vil først koble til internett, deretter vil det begynne å avstemme Telegram -serveren for nye meldinger (image3).

Åpne nå Telegram på din foretrukne enhet, og skriv inn navnet på boten din i søkefeltet (ikke brukernavnet som slutter med 'bot'). Åpne en prat med den.

Den første kommandoen for å starte en chat med en bot er /start, vår Arduino vil svare med en velkomstmelding. Nå skriver du hjelp (uten skråstrek), den vil svare med en liste over støttede kommandoer, du kan prøve dem alle (image4).

Du er ferdig med testen, hvis noe ikke fungerer, sjekk informasjonen som er angitt i skissen (navn, brukernavn, token …)

Sertifikater Hvis du opplever feil med tilkoblingen til telegramtjeneren (logg: Bot ikke tilkoblet):

  • Åpne Verktøy-> Wifi101/wifinina oppdaterer
  • Kontroller at kortet er tilkoblet, sjekk portene til venstre for oppdateringsverktøyet, kortet må være der
  • Klikk på Åpne oppdatererskisse og last den opp til tavlen
  • Etter opplasting velger du den nyeste fastvaren for brettet i oppdateringsprogrammet og klikker på oppdater firmware
  • Etter oppdateringen, i oppdateringsdelen, delen SSL -sertifikater, klikk på Legg til domene, skriv telegram.org:443 i dialogboksen, og trykk deretter OK.
  • Klikk på Last opp sertifikater til wifi -modulen
  • Last opp denne skissen til tavlen

Trinn 5: Forbedringer

Forbedringer
Forbedringer

Når man ser på koden, er det veldig enkelt å implementere nye kommandoer og svare for brukeren.

Nye kommandoer: Du kan skrive en sub for hver nye kommando. Hver sub vil ta seg av å fullføre kommandoen og (til slutt) returnere en statusinformasjon til brukeren.

Begrensning av brukere: Selvfølgelig er dette prosjektet bare en demo. Enhver Telegram -bruker kan koble seg til hjemmet ditt og sende uønskede kommandoer. Du vil ikke ha dette !.

Se på bildet1, det viser 2 tilkoblede brukere. Som du kan se har hver bruker sin egen bruker -ID. Med litt arbeid på kodesiden kan du filtrere (eller bygge en liste) bare for autoriserte brukere. Bare studer koden og prøv å fange opp bruker -ID -nummeret. Utfør deretter kommandoer bare fra kjente brukere.

Maskinvare: På maskinvaresiden kan mange sensorer og releer kobles til I/O -pinnene på Arduino.

Vær forsiktig: brettet som ble brukt i dette prosjektet er 3,3V tolerant !!! Bruk en spenningsnivåskifter der det er nødvendig! For mer informasjon og tips om dette brettet, vennligst les her:

Det er alt, nyt!

Anbefalt: