Usare un bot Telegram per ricevere dati da un canale Thingspeak
Usare un bot Telegram per ricevere dati da un canale Thingspeak
Usare un bot Telegram per ricevere dati da un canale Thingspeak
Ultimamente mi sono cimentato in Telegram e le sue vastissime funzioni, tra cui, quella molto interessante dei bot.
Avendo in precedenza collegato un Arduino UNO ad un canale Thingspeak, avrei voluto creare uno script per programmare un bot Telegram sul mio RPI Zero che fosse in grado di rispondere ad alcuni semplici comandi.
Non essendoci alcuna guida (o che almeno io abbia trovato) ho deciso di pubblicarla qui.
Non essendoci alcuna guida (o che almeno io abbia trovato) ho deciso di pubblicarla qui.
SI ASSUME:
- Che tu abbia un canale personale o pubblico di Thingspeak la quale ricavare i dati
- Che tu abbia una macchina sulla quale far girare Python 3.6 Es. RPI
Cosa Serve:
- Telegram ed un bot creato su di essi
- Raspberry Pi
- Thingspeak account
Per creare n bot bisogna innanzitutto aggiungere @BotFather e creare un bot inviando il comando /newbot, una volta inserito tutti i dati richiesti vi sarà inviato un messaggio con su scritto il token del bot, copiatelo che servirà più tardi.
Per una guida più dettagliata sulla creazione del bot cliccate qui
Scriviamo lo script
Essendo Telegram open source è possibile accedere alle API da questo link.
Ci sono molti moduli in giro in grado di facilitare tutto il lavoro, in questo caso mi è corso in aiuto Telepot (Github o Sito Ufficiale), questa fantastica libreria rende molto facile la creazione di un bot.
Passiamo al Codice:
Non mi prolungo sulla spiegazione in quanto ho tentato di fare il mio meglio cercando di tenere lo script il più ristretto e di commentarlo il più possibile.
Una volta copiato lo script e salvato in un file con estensione .py apritelo con IDLE inserendo il vostro token ed il link ad un canale thingspeak ed ovviamente modificare il vostro menu inline , salvatelo ed avviatelo in una Python Shell.
Conclusioni
Le possibilità sono infinite con i bot di telegram una ricerca su Google vi riporterà a tutti i moduli disponibili per la creazione di un bot su telegram.
Al solo script qui su potremmo aggiungere diverse funzioni automatiche a seconda dei dati o qualsiasi cosa ti venga in mente.
Lo so non è il massimo ma funziona!
Spero vi sia piaciuto il post e se avete qualche domanda lasciatemi un commento , alla prossima!
E Non Dimenticare Di Iscriverti!😇
non capisco come mai ma ho per questa linea
RispondiEliminaif(query_data == 'temp'):
bot.sendMessage(from_id, text='La Temperatura è di:' + data['feeds'][0]['field1'] + '°C')
il seguente errore:
SyntaxError: Non-ASCII character '\xc3' in file test.py on line 27, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
hai qualche idea? grazie :)
Ciao Erich,
EliminaIn alto nel tuo file test.py prima degli import prova ad inserire
# coding=utf-8
Questo dovrebbe risolvere il problema.
Fammi sapere!