Sommario:
- Passaggio 1: cosa ti serve
- Passaggio 2: installazione dell'IDE
- Passaggio 3: creazione del bot di Telegram
- Passaggio 4: modifica, carica e prova lo schizzo
- Passaggio 5: miglioramenti
Video: [IoT] Telegram Bot con Arduino MKR WiFi 1010: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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
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
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:
- avvia l'IDE
- Dal menu Strumenti scegli Schede quindi, nella parte superiore dell'elenco dei processori, scegli Gestore schede.
- Scorri la nuova finestra (vedi immagine) fino a trovare le schede Arduino SAMD che includono il nuovo MKR WiFi 1010.
- Fai clic su quella scheda o fai clic su Maggiori informazioni all'interno della scheda, scegli l'ultima versione e installa.
- Attendi il completamento dell'installazione. Si occuperà anche dell'installazione dei driver
- 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 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
È 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
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:
Bot di Telegram con NodeMCU (ESP8266): 3 passaggi
Telegram Bot With NodeMCU (ESP8266): Hai bisogno di un bot per inviare notifiche dal tuo sistema? o fare qualcosa semplicemente inviando un messaggio? Telegram Bot è la tua soluzione! In questo tutorial, userò Telegram Web e BotFather per creare il mio bot
Usa gli scudi Arduino MKR con Raspberry Pi: 8 passaggi
Usa gli scudi Arduino MKR con Raspberry Pi: il nostro PiMKRHAT è un HAT adattatore per utilizzare le schede e gli scudi Arduino MKR insieme al Raspberry Pi. Diversi Arduino MKR Shield possono essere utilizzati tramite il nostro HAT come estensione per Raspberry Pi. Voglio mostrare in questo piccolo progetto come usare l'Ardu
Utilizzo del sensore di movimento con RaspberryPi e Telegram Bot: 4 passaggi
Utilizzo del sensore di movimento con RaspberryPi e Telegram Bot: Ciao ragazzi. In questo post utilizzeremo Raspberry Pi Telegram Bot con sensore PIR (movimento)
Mangiatoia per animali domestici con RasPi e Telegram Bot: 4 passaggi (con immagini)
Pet Feeder Machine With RasPi e Telegram Bot: Prima di tutto devo chiarire che questa non è una Idea Mine originale, basta aggiornare e adattare gli script di programmazione per funzionare con telegram, l'ho trovata in un precedente Instructable quindi i crediti sono davvero i autore di esso. Potresti vedere lo spagnolo
Smart House Telegram Bot con Nodemcu (esp8266, Relay, Ds18b20): 8 passaggi
Smart House Telegram Bot With Nodemcu (esp8266, Relay, Ds18b20): In questo tutorial ti mostrerò come creare un bot di Telegram e come controllarlo. Ma prima, iscriviti al mio canale Telegram e scopri nuovi progetti più velocemente di altri. È una motivazione per me. Andiamo