- Materiali richiesti:
- Schema elettrico:
- Programma Raspberry Python:
- Controllo dei LED con Raspberry Pi e Telegram bot:
Telegram è un'applicazione ottimale da combinare con Raspberry Pi per tutti i nostri scopi di controllo mobile. Ha un ottimo supporto per gli sviluppatori e molte funzionalità saranno presto rilasciate per migliorare le prestazioni dei bot di Telegram. Nel nostro precedente tutorial abbiamo imparato come configurare un bot di Telegram per Raspberry Pi e abbiamo anche imparato a chattare con esso e condividere immagini, documenti e file audio.
Ora, procederemo al passaggio successivo imparando come possiamo controllare i pin GPIO sui pin Raspberry utilizzando Telegram, in modo da fornire supporto hardware per il nostro bot. In questo tutorial collegheremo quattro LED ai pin GPIO di Raspberry Pi e li alterneremo usando il linguaggio naturale (chattando come) da Telegram. Sembra interessante, vero? Cominciamo.
Materiali richiesti:
- Quattro LED (qualsiasi colore)
- Raspberry Pi (con connessione Internet)
- Breadboard
- Cavi di collegamento
Prerequisiti:
Prima di procedere con il tutorial assicurati che il tuo Raspberry Pi sia connesso a Internet e che tu possa eseguire programmi Python sul tuo Pi. Leggi anche il tutorial precedente per sapere come configurare il bot di Telegram con Raspberry Pi Pi, poiché presumo che tu abbia familiarità con quella roba per procedere con il progetto.
Se sei nuovo su Raspberry Pi, segui il nostro articolo introduttivo al Raspberry Pi e altri tutorial su Raspberry Pi.
Schema elettrico:
Lo schema del circuito per il controllo dei LED utilizzando Raspberry Pi e l'app Android Telegram non è altro che quattro LED e alcuni cavi di collegamento. Non avremo bisogno dei resistori di limitazione della corrente poiché i pin GPIO di Raspberry Pi funzionano su 3.3V TTL. Segui il circuito sottostante e collega il tuo LED.
La tabella seguente ti aiuterà a determinare il numero di pin e il numero GPIO per il collegamento di quattro led.
Terminale Led |
Codice PIN |
Numero GPIO |
Anodo verde |
Pin 31 |
GPIO 6 |
Anodo rosso |
Pin 33 |
GPIO 13 |
Anodo giallo |
Pin 35 |
GPIO 19 |
Anodo bianco |
Pin 37 |
GPIO 26 |
Catodo di tutti e quattro |
Pin 39 |
Terra |
Di seguito è riportato lo schema del circuito in cui sono collegati quattro LED secondo la tabella sopra:
Dopo le connessioni, la configurazione dell'hardware dovrebbe essere simile a questa di seguito.
Programma Raspberry Python:
Una volta che l'hardware è pronto, possiamo procedere con il programma Python. In questo programma dobbiamo leggere i dati (messaggio) inviati dal bot di Telegram e attivare il LED di conseguenza. Per renderlo più naturale, invece di controllare ogni frase e codificare quelle frasi all'interno del nostro programma, possiamo controllare le parole e procedere di conseguenza.
Quindi il programma controllerà principalmente due parole, che siano attive e disattivate. Una volta rilevata una di queste due parole, cercherà altre parole chiave come bianco, giallo, verde e rosso. Il rispettivo LED colorato verrà attivato solo se la parola viene rilevata. Aggiorneremo anche una stringa per le parole rilevate per inviare un messaggio al bot di Telegram.
Il programma completo si trova in fondo a questa pagina; appena sotto ho spiegato il programma suddividendolo in piccole giunche significative.
Affinché questo programma funzioni, è necessario che il telepot venga scaricato e importato nel nostro Raspberry Pi. Nel nostro precedente tutorial abbiamo già scaricato il teletrasporto all'interno del nostro Raspberry Pi, quindi ora non ci resta che importarlo nel nostro programma insieme alla libreria GPIO come mostrato di seguito.
importa RPi.GPIO come GPIO importa telepot da telepot.loop importa MessageLoop
Controlleremo le luci a LED utilizzando questo programma e il colore dei LED sarà bianco, giallo, rosso e verde. Sono collegati ai pin mostrati nello schema elettrico; cerchiamo di definire i nomi dei pin per questi LED in base al loro colore in modo che sia utilizzarli nel programma.
bianco = 26 giallo = 19 rosso = 13 verde = 6
Il prossimo passo sarebbe definire tutti questi pin LED come pin di uscita e definirli come spenti per impostazione predefinita utilizzando le linee seguenti.
#LED White GPIO.setup (bianco, GPIO.OUT) GPIO.output (bianco, 0) #Off inizialmente #LED Giallo GPIO.setup (giallo, GPIO.OUT) GPIO.output (giallo, 0) #Off inizialmente #LED Rosso GPIO.setup (rosso, GPIO.OUT) GPIO.output (rosso, 0) #Off inizialmente #LED verde GPIO.setup (verde, GPIO.OUT) GPIO.output (verde, 0) #Off inizialmente
Come abbiamo appreso nel nostro precedente tutorial, tutte le azioni che devono essere eseguite dal bot Raspberry saranno definite all'interno dell'azione della funzione. Qui dobbiamo fare in modo che il bot ascolti il messaggio inviato dal cellulare, confrontalo con alcune parole chiave e attiva il LED di conseguenza.
Per ogni messaggio che inviamo dal cellulare, ci sarà un ID chat e un comando. Questo ID chat è richiesto dal programma per rispondere al mittente. Quindi salviamo l'ID chat e il messaggio come mostrato di seguito.
chat_id = msg comando = msg
Ora, qualunque cosa inviamo dal telefono verrà salvata come stringa nel comando variabile. Quindi, tutto ciò che dobbiamo fare è controllare le parole chiave in questa variabile. Python ha un comando che semplifica le cose qui. Ad esempio, se dobbiamo controllare se la parola "on" è presente nella stringa memorizzata nella variabile di comando , possiamo semplicemente utilizzare la riga sottostante.
se 'on' al comando:
Allo stesso modo controlliamo tutte le parole chiave, una volta ricevuto un "on", procediamo a controllare per quale colore l'utente ha menzionato. Questo viene fatto anche dagli stessi comandi confrontando le stesse parole chiave. Aggiorniamo anche una stringa denominata messaggio che può essere risposto all'utente come messaggio di stato.
if 'on' in command: message = "Turned on" if 'white' in command: message = message + "white" GPIO.output (white, 1) if 'yellow' in command: message = message + "yellow" GPIO.output (giallo, 1) se 'rosso' nel comando: messaggio = messaggio + "rosso" GPIO.output (rosso, 1) se 'verde' nel comando: messaggio = messaggio + "verde" GPIO.output (verde, 1) se "tutto" nel comando: messaggio = messaggio + "tutto" GPIO.output (bianco, 1) GPIO.output (giallo, 1) GPIO.output (rosso, 1) GPIO.output (verde, 1) messaggio = messaggio + "light (s)" telegram_bot.sendMessage (chat_id, messaggio)
Come mostrato sopra, cerchiamo parole chiave come "verde", "bianco", "rosso", "giallo" e "tutto" e "Acceso" solo quel particolare LED. Una volta completato il lavoro, inviamo un messaggio all'utente su ciò che è appena accaduto. Lo stesso metodo può essere utilizzato per spegnere bene le luci.
se "off" nel comando: messaggio = "Disattivato" se "bianco" nel comando: messaggio = messaggio + GPIO "bianco ".output (bianco, 0) se" giallo "nel comando: messaggio = messaggio + GPIO" giallo ".output (giallo, 0) se 'rosso' nel comando: messaggio = messaggio + "rosso" GPIO.output (rosso, 0) se 'verde' nel comando: messaggio = messaggio + "verde" GPIO.output (verde, 0) se 'all' nel comando: messaggio = messaggio + "tutto" GPIO.output (bianco, 0) GPIO.output (giallo, 0) GPIO.output (rosso, 0) GPIO.output (verde, 0) messaggio = messaggio + "light (s)" telegram_bot.sendMessage (chat_id, messaggio)
Controllo dei LED con Raspberry Pi e Telegram bot:
Collega i tuoi LED e avvia il tuo programma su Python. Assicurati di aver cambiato l'indirizzo del token per il tuo bot. E inizia a digitare i comandi che desideri. Ad esempio, per accendere la luce rossa e gialla è possibile utilizzare uno dei seguenti comandi.
1.Accendere la luce rossa e gialla
2.Accendere il colore rosso e giallo a destra
3. Sul rosso e sul giallo
4.Please messo sul colore giallo e rosso luce
Come puoi vedere, il bot cerca solo le parole chiave e ignorerà le altre parole nella frase, in questo modo puoi parlarle in modo naturale. Il funzionamento completo del progetto si trova nel Video riportato alla fine di questa pagina.
Vai avanti! gioca con il tuo progetto e divertiti. Puoi portarlo a un livello completamente nuovo ora. Con entrambi i tutorial combinati abbiamo il potere di controllare qualsiasi hardware dal nostro smartphone in qualsiasi parte del mondo e anche di ottenere input / risultati dal nostro Raspberry Pi sotto forma di messaggio, audio, immagine e persino come documento. Se si sostituiscono i LED con relè e apparecchi AC, potrebbe essere una automazione domestica controllata da smartphone. Quindi, usa la tua creatività e costruisci i tuoi fantastici progetti…
Spero ti sia piaciuto il progetto e ti sia piaciuto costruire qualcosa di simile. Fammi sapere se hai problemi tramite la sezione commenti e sarò felice di aiutarti. Condividete anche la vostra bella idea con me e fateci vedere cosa possiamo costruire.