Sommario:

[IoT] Telegram Bot con Arduino MKR WiFi 1010: 5 passaggi
[IoT] Telegram Bot con Arduino MKR WiFi 1010: 5 passaggi

Video: [IoT] Telegram Bot con Arduino MKR WiFi 1010: 5 passaggi

Video: [IoT] Telegram Bot con Arduino MKR WiFi 1010: 5 passaggi
Video: 35 Light Control with Telegram and ESP8266 | NodeMCU | Arduino | 2024, Dicembre
Anonim
Image
Image
Quello di cui hai bisogno
Quello di cui hai bisogno

Questo progetto dimostra come interfacciare Arduino con le API del Bot di Telegram. Il progetto è costruito attorno alla nuova scheda MKR WiFi 1010 dotata di un modulo ESP32 di U-BLOX.

In questa fase, il progetto non è altro che una prova di concetto, solo per mostrarti cosa potresti fare, quindi per questo hai bisogno solo della scheda Arduino.

Ma cos'è un bot di Telegram?Bene, i bot sono semplicemente account di Telegram gestiti da software, non da persone, e spesso hanno funzionalità di intelligenza artificiale. Possono fare qualsiasi cosa: insegnare, riprodurre, cercare, trasmettere, ricordare, connettersi, integrarsi con altri servizi o persino passare comandi all'Internet of Things. (crediti di Telegram:

Nel nostro caso passeremo i comandi ad Arduino costruendo un semplice dispositivo IoT. Risponderà a semplici comandi e accenderà/spegnerà anche il Led integrato. Lascerò che la tua immaginazione faccia di più… (immagina di collegare uno o più relè ai pin I/O e accendere/spegnere un riscaldatore o l'impianto di condizionamento con il tuo smartphone, per esempio).

Passaggio 1: cosa ti serve

Quello di cui hai bisogno
Quello di cui hai bisogno

Per questo progetto hai bisogno di:

  • Arduino MKR WiFi 1010 dal negozio Arduino:
  • Arduino IDE 1.8.5 o superiore:
  • Un cavo micro-usb per collegare Arduino al PC
  • Una connessione Internet, richiede l'SSID e la password. Meglio se usi il tuo router di casa per essere sicuro che non sia bloccato.
  • App Telegram installata sul tuo smartphone, indipendentemente dalla marca. Controlla qui anche per le versioni PC e Web!

Passaggio 2: installazione dell'IDE

Installazione dell'IDE
Installazione dell'IDE
Installazione dell'IDE
Installazione dell'IDE
Installazione dell'IDE
Installazione dell'IDE

Sì, lo so, lo so… la maggior parte di voi ha già l'IDE Arduino installato nel PC, ma questo Instructables è pensato anche per i principianti. Quindi, prima di tutto, scarica l'IDE Arduino 1.8.5 di tua scelta (file zip per 'non amministratori' o file exe)

La versione 1.8.5 è consigliata, non ho testato le vecchie versioni e la nuova scheda utilizzata nel progetto non è stata affatto supportata.

Ora devi installare le nuove schede con i loro driver:

  1. avvia l'IDE
  2. Dal menu Strumenti scegli Schede quindi, nella parte superiore dell'elenco dei processori, scegli Gestore schede.
  3. Scorri la nuova finestra (vedi immagine) fino a trovare le schede Arduino SAMD che includono il nuovo MKR WiFi 1010.
  4. Fai clic su quella scheda o fai clic su Maggiori informazioni all'interno della scheda, scegli l'ultima versione e installa.
  5. Attendi il completamento dell'installazione. Si occuperà anche dell'installazione dei driver
  6. Hai anche bisogno di una nuova libreria WiFi per questa scheda: scegli Schizzo, Includi libreria e Gestisci librerie. Cerca Wifinina e installa come hai fatto con il processore sopra.

Ora collega la tua nuova scheda Arduino e attendi che Windows completi l'installazione del driver.

Dal menu Strumenti->Scheda troverai le nuove schede, scegli la MKR WiFi 1010.

Per questo progetto è necessaria un'altra libreria speciale, la libreria ESP8266TelegramBot di Giancarlo Bacchio. La libreria è stata leggermente modificata per funzionare con questa scheda, quindi è inclusa nella cartella dello sketch.

Scegli la porta com corretta e prova la scheda con il comando Ottieni informazioni sulla scheda.

Congratulazioni, hai finito con l'IDE!

Passaggio 3: creazione del bot di Telegram

Creare il Bot di Telegram
Creare il Bot di Telegram
Creare il Bot di Telegram
Creare il Bot di Telegram
Creare il Bot di Telegram
Creare il Bot di Telegram

Creare un nuovo Bot di Telegram è abbastanza semplice.

Apri l'app di Telegram e, nella barra di ricerca, digita @BotFather e avvia una chat con lui (immagine1). BotFather è la… fabbrica di Bot. Ti aiuterà a creare un nuovo bot e a modificarne le impostazioni.

Dopo il comando /start vedrai l'elenco di aiuto (immagine2).

  • Digita /newbot (image3)Ora digita il nome del tuo bot. Il nome viene visualizzato nei dettagli di contatto e altrove.
  • BotFather ti chiederà un nome utente. Il nome utente è un nome breve, da utilizzare nelle menzioni e nei collegamenti telegram.me. I nomi utente sono lunghi 5-32 caratteri e non fanno distinzione tra maiuscole e minuscole, ma possono includere solo caratteri latini, numeri e trattini bassi. Il nome utente del tuo bot deve terminare con "bot", ad es. 'tetris_bot' o 'TetrisBot'.
  • Se sia il nome che il nome utente sono validi, riceverai una lunga stringa di caratteri chiamata TOKEN. Questa è la tua "chiave" personale utilizzata per comunicare con i server di Telegram. Copiala e incollala in un file di testo sul tuo PC per ora. Lo useremo in seguito nel codice Arduino. Se lo perdi non preoccuparti, riapri la chat e digita /token per generarne uno nuovo.

Tutti i passaggi sono descritti qui:

Avanzato (opzionale)

Riapri la chat e digita /help

Fai clic su (o digita) /setuserpic per caricare un'immagine per il tuo bot. Fai clic su (o digita) /setabouttext per impostare la sezione Informazioni sul tuo Bot: le persone vedranno questo testo nella pagina del profilo del bot e verrà inviato insieme a un link al tuo bot quando lo condividono con qualcuno.

Fai clic su (o digita) /setdescription per impostare una sezione di descrizione per il tuo bot. Le persone vedranno questa descrizione quando aprono una chat con il tuo bot, in un blocco intitolato "Cosa può fare questo bot?".

Passaggio 4: modifica, carica e prova lo schizzo

Modifica, carica e prova lo schizzo
Modifica, carica e prova lo schizzo
Modifica, carica e prova lo schizzo
Modifica, carica e prova lo schizzo
Modifica, carica e prova lo schizzo
Modifica, carica e prova lo schizzo

È ora di caricare il software sulla scheda Arduino MKR WiFi 1010.

Scarica i file allegati, per qualche motivo non riesco a caricare uno ZIP, quindi crea una cartella denominata come lo schizzo e copia tutti e 4 i file al suo interno, per favore non cambiare i nomi a meno che tu non sappia cosa stai facendo.

Modificare

Apri lo sketch, dobbiamo inserire alcune informazioni (image1): riempi arduino_secrets.h con le tue credenziali wifi e telegram.

  • Individua le informazioni sulla rete WiFi e digita il nome della rete (SSID) e la password.
  • Individua le informazioni del Bot di telegram e digita il nome, il nome utente e il token forniti da @BotFather

Caricamento

Assicurati che la scheda sia corretta (immagine2) nell'ide e collegata, quindi prova a compilare il codice. Se la compilazione va bene, caricala sulla bacheca, ci vorranno solo pochi secondi.

In caso di problemi verificare la presenza di un errore di battitura e riprovare.

Test

[IMPORTANTE!] Lo sketch invia i log all'IDE. Il processore ha una porta USB nativa (come le schede Leonardo). Una volta acceso, il codice attenderà che il monitor seriale sia in esecuzione. Quindi, lascialo collegato al PC e apri il monitor seriale. Arduino si connetterà prima a Internet, quindi inizierà a interrogare il server Telegram per nuovi messaggi (immagine3).

Ora apri Telegram sul tuo dispositivo preferito e, nella casella di ricerca, digita il nome del tuo bot (non il nome utente che termina con 'bot'). Apri una chat con esso.

Il primo comando per avviare una chat con un bot è /start, il nostro Arduino risponderà con un messaggio di benvenuto. Ora digita help (senza slash), ti risponderà con una lista di comandi supportati, puoi provarli tutti (immagine4).

Hai finito con il test, se qualcosa non funziona controlla le informazioni inserite nello sketch (nome, username, token…)

CertificatiSe riscontri errori con la connessione al server di telegram (log: Bot non connesso):

  • Apri Strumenti->Wifi101/wifinina updater
  • Assicurati che la tua scheda sia collegata, controlla le porte a sinistra dello strumento di aggiornamento, la scheda deve essere lì
  • Fai clic su Apri schizzo di aggiornamento e caricalo sulla lavagna
  • Dopo il caricamento, nel programma di aggiornamento scegli il firmware più recente per la tua scheda e fai clic su Aggiorna firmware
  • Dopo l'aggiornamento, nel programma di aggiornamento, sezione Certificati SSL, fai clic su Aggiungi dominio, nella finestra di dialogo scrivi telegram.org:443 quindi premi OK.
  • Fare clic su Carica certificati sul modulo Wi-Fi
  • Carica questo schizzo sulla lavagna

Passaggio 5: miglioramenti

Miglioramenti
Miglioramenti

Guardando il codice è molto semplice implementare nuovi comandi e rispondere all'utente.

Nuovi comandi: puoi scrivere un sottotitolo per ogni nuovo comando. Ogni sub si occuperà di completare il comando e (eventualmente) restituire un'informazione di stato all'utente.

Limitare gli utenti: ovviamente questo progetto è solo una demo. Qualsiasi utente di Telegram può connettersi a casa tua e inviare comandi indesiderati. Non vuoi questo!.

Bene, guarda l'immagine1, mostra 2 utenti connessi. Come puoi vedere, ogni utente ha il proprio ID utente. Con un po' di lavoro sul lato del codice puoi filtrare (o creare un elenco) solo per gli utenti autorizzati. Basta studiare il codice e provare a intercettare il numero ID utente. Quindi esegui i comandi solo da utenti noti.

Hardware: sul lato hardware, molti sensori e relè possono essere collegati ai pin I/O di Arduino.

Attenzione: la scheda utilizzata in questo progetto è 3.3V tollerante!!! Usa un variatore di livello di tensione dove necessario! Per maggiori informazioni e suggerimenti su questa scheda, leggi qui:

Questo è tutto, divertiti!

Consigliato: