Raspberry Pi è sempre stato divertente e facile da realizzare. La sua potente architettura ARM e il sistema operativo open source basato su Linux ci hanno aiutato molto a mettere online i nostri progetti in pochissimo tempo. In questo tutorial impareremo un altro modo interessante per condividere dati (file / foto / video / audio / testo) tra Raspberry Pi e il nostro telefono cellulare attraverso una popolare applicazione di chat chiamata Telegram.
Per chi è nuovo su Telegram, si tratta di un'applicazione basata su chat disponibile nel Play Store per Android (disponibile anche per Iphone e Windows) molto simile a Whatsapp. Ha oltre 100 milioni di download (come il 5-10-2017) su Play Store e le persone affermano che sia più veloce e più funzionale di Whatsapp (dita incrociate). Una delle caratteristiche speciali di questa applicazione è che supportano i bot. Significa che questa applicazione per smartphone non può essere utilizzata solo dagli umani ma anche dalla macchina. Nel nostro caso la macchina sarà Raspberry Pi. Una volta addestrato Raspberry Pi su come agire come bot, chiunque (se lo rendi pubblico) può chattare con il tuo Raspberry Pi come chattare con qualsiasi persona normale e persino condividere foto, documenti, file audio. Puoi persino addestrarlo per essere il tuo assistente personale, suona bene, vero? Impariamo come costruire un fileBot telegramma lampone pi.
Materiali richiesti:
- Qualsiasi Raspberry Pi connesso a Internet
- Un'applicazione Telegram per dispositivi mobili.
Non c'è molto hardware coinvolto in questo progetto, quindi rilassati sulla sedia con il tuo Pi e segui i passaggi seguenti. Se sei nuovo su Raspberry Pi, segui il nostro articolo introduttivo al Raspberry Pi e altri tutorial su Raspberry Pi.
Passaggio 1: installazione di Telegram sul tuo cellulare
Il primo passo sarebbe installare Telegram sul tuo cellulare. Telegram è disponibile per Android, IOS e anche per la piattaforma Windows, quindi vai avanti e scarica la tua applicazione Telegram. Proprio come tutte le applicazioni ci sarà una piccola procedura di registrazione per iniziare a utilizzare Telegram, prosegui con essa fino a raggiungere la schermata iniziale.
Step2: Parla con Bot Father
Il prossimo passo sarebbe richiedere al Bot Father di crearci un nuovo Bot. Nell'angolo in alto a destra della schermata Home ci sarà un'icona di ricerca, cliccaci sopra per cercare il nome “botfather”. Botfather è un bot di per sé, ti guiderà a creare un nuovo bot per te. Fare clic su Start e selezionare / newbot come mostrato nell'immagine sottostante. Ora, il bot chiederà alcuni dettagli come il nome del tuo Bot e il nome utente del bot. Compila questi dettagli e ricorda il nome utente perché ne avremo bisogno in futuro.
Passaggio 3: ottenere il token per l'accesso
Ho chiamato bot come circuitdigest e il nome utente come circuitdigestBot. Dopo questo processo il botfather ti darà un token per l'accesso. Questa è come la password del tuo bot, le persone possono controllare il programma del tuo bot usando questa chiave token. Quindi tienilo al sicuro e non condividerlo con nessuno. Dopo aver ricevuto questa chiave token, è tempo di passare a Raspberry Pi.
Step4: Telepot per l'installazione di Telegram su Raspberry Pi
L'utilizzo di Telegram Bot in Raspberry Pi è reso possibile dal pacchetto python chiamato Telepot. Dobbiamo installare questo pacchetto su Raspberry Pi utilizzando i seguenti comandi sul terminale Lx
sudo apt-get install python-pip sudo pip install telepot
Una volta importato Telepot in Raspberry, possiamo utilizzare questo pacchetto nel nostro programma Python per comunicare con il nostro Bot Telegram.
Passaggio 5: programmazione del tuo Raspberry Pi
Il bot che abbiamo appena creato su Telegram è proprio come un bambino, non può fare nulla da solo a meno che non gli insegniamo cosa e come fare le cose. Questo insegnamento può essere svolto tramite Raspberry Pi e script Python. In questo tutorial ho programmato il bot per eseguire alcune azioni di base come l'invio di un messaggio, foto, audio e documento. Quindi, quando pronunci un particolare comando, risponderà con una particolare azione, il comando e l'azione sono elencati nella tabella sottostante
Comando da Telegram |
Risposta di Raspberry Pi |
/Ciao |
Risponde con una stringa "Ciao! CircuitDigest " |
/tempo |
Risponde con l'ora corrente |
/logo |
Risponde con un'immagine (logo di CircuitDigest) |
/file |
Risponde con un file (che contiene il programma corrente) |
/Audio |
Risponde con un file audio demo |
Il programma completo per eseguire le azioni di cui sopra è fornito in fondo a questa pagina. Ma appena sotto, ho spiegato gli snippet importanti nel programma per aiutarti a capire come funziona il programma.
Il primo passo è importare tutte le librerie, qui ovviamente avremo bisogno della libreria di teletrasporto per utilizzare il bot di Telegram. Usiamo anche la libreria time, timedate per leggere l'ora corrente per Raspberry pi. Quindi creiamo un oggetto ora in cui è memorizzato il valore.
import time, datetime import telepot da telepot.loop import MessageLoop now = datetime.datetime.now ()
Il prossimo passo è creare una funzione per eseguire azioni in base ai comandi in arrivo dall'app Telegram su Mobile. Qui il nome della funzione è azione. È all'interno di questa funzione che il bot prende vita. Il nostro bot non può avviare una conversazione da solo, può rispondere solo se chiediamo qualcosa. Quindi ogni volta che chiediamo qualcosa ci sarà l'ID chat. Questo ID chat è qualcosa di simile a un indirizzo, solo utilizzando questo ID chat un bot può risponderci. Quindi il primo passo è leggere l'ID della chat e il messaggio che sta cercando di dirci. Stampiamo anche il messaggio ricevuto a scopo di debug.
def action (msg): chat_id = msg command = msg print 'Ricevuto:% s'% comando
Più in basso all'interno della funzione confrontiamo questo comando con un testo predefinito ed eseguiamo compiti particolari. Questo primo comando sarà / hi a cui risponderemo “Ciao! CircuitDigest "
if comando == '/ hi': telegram_bot.sendMessage (chat_id, str ("Ciao! CircuitDigest"))
Il prossimo comando sarà / time , a cui risponderemo l'ora corrente. Ora abbiamo già l'ora e la data, qui semplicemente suddividila in base all'ora e ai minuti e aggiungila usando la funzione str .
comando elif == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Il comando successivo sarà / logo , a cui il bot recupererà un'immagine da un URL e ce la invierà. Un'immagine può essere inviata da un URL o dal disco rigido. Qui ho appena usato l'URL che mostra il logo di CircuitDigest.
comando elif == "/ logo": telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Il comando successivo sarà / file , che invierà il file denominato Aisha.py dal disco rigido. È possibile inviare qualsiasi file si desideri modificando l'indirizzo della directory
comando elif == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
L'ultimo comando sarà / audio . Questo può inviare qualsiasi file mp3 dal disco rigido, ho appena usato un file audio chiamato test.mp3 come demo qui
comando elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Ok, ora arriva il passaggio più importante, è qui che diamo accesso al nostro bot di Telegram allo script Python. Qui chiamiamo il bot telegram_bot e gli assegniamo l'indirizzo del token che è stato fornito dal nostro botfather nel passaggio 3. Nella riga sottostante ho rimosso le ultime cifre del mio token per una questione di privacy. Usiamo anche la stampa per farmi visualizzare i dettagli del Bot sullo schermo della shell, questo ci aiuterà a notare che le cose funzionano.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Spero che tu abbia capito come funziona il programma, ora passiamo al passaggio successivo.
Passaggio 6: eseguire il programma nel tuo Raspberry Pi
Come detto in precedenza il programma completo è riportato alla fine di questa pagina, potete anche scaricarlo da qui. Una volta aperto il codice, assicurati di cambiare l'indirizzo del token del programma con il tuo indirizzo del token.
Ora esegui il codice Python e dovresti vedere i dettagli del tuo bot sulla finestra della shell in questo modo
Qui, il nome utente del mio bot è circuitdigestBot. Se ottieni il nome del tuo bot qui significa che sta andando tutto bene.
Quando viene visualizzato " attivo e funzionante ", significa che il tuo bot è pronto per l'azione e ora può rispondere ai tuoi comandi.
Passaggio 7: godimento dell'output
Ora, non resta che verificare quanto bene sta rispondendo il tuo bot per il tuo programma. Cerca il nome del tuo bot nel mio caso è "circuitdigestBot". Cerca il nome utente e non il nome del bot, il tuo nome utente dovrebbe terminare con bot.
Una volta aperto il bot, fai clic su start e digita qualsiasi comando come / hi, / time, / file, / logo o / audio e dovresti rispondere di conseguenza.
Puoi usare lo script della shell per vedere a cosa sta rispondendo il tuo script. La lavorazione completa si trova nel video riportato alla fine di questa pagina.
Passaggio 8: dammi il cinque
Spero che tu abbia capito il tutorial e ora sarai in grado di creare questo bot Telegram Raspberry pi e comunicare con Raspberry Pi usando l'app Telegram. Ahimè! Se hai problemi fammelo sapere attraverso la sezione commenti e cercherò di ricontattarti. Inoltre, fammi sapere come ti è piaciuto questo progetto o cosa vorresti che costruissi usando questo nei prossimi progetti.
Inoltre, nel nostro prossimo tutorial. Renderemo questo aspetto più interessante cambiando il modo in cui inviamo i comandi e qualcosa di più correlato all'hardware su Raspberry Pi.