| Come
già illustrato nella pagina
di configurazione di Telegram, esso è molto utile per
ricevere dati o inviare comandi al Raspberry attraverso al
Web in ogni parte del mondo. Il questa pagina verrà illustrato come inserire i moduli necessari sulla BDS, creare l'ambiente virtuale, utilizzare i programmi dedicati. I primi due programmi ricevono dei comandi da Telegram ed eseguono delle operazioni per mezzo del Raspberry, quali accendere una luce, un condizionatore, aprire una porta, ecc. I seguenti funzionano in modo opposto: Telegram riceve delle informazioni (frasi di testo, valori di un sensore, ecc.) dal Raspberry e le mostra su Telegram in base a una scedulazione: per esempio indicare dati quale temperatura, umidità, pressione, ecc. Gli ultimi programmi sono simili ai precedenti, però si attivano in base a un cambio di stato di un qualche parametro, come un allarme: l'apertura di una porta o di una finestra, un movimento in un ambiente, una fuga di gas o un incendio... e magari anche per eventi meno problematici. Ecco il collegamento ai vari gruppi di programmi:
|
| |
| Come inserire DHT11, BME280 e i led/Relè sulla BDS |
| |
![]() La BDS con tutti i componenti necessari per i vari programmi presentati in questa pagina: relè, led, DHT11/22, BME280 |
| |
|
|
| |
| La creazione dell'ambiente virtuale e l'inserimento delle librerie necessarie |
| Ipotizziamo che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocartella "telegram " in cui creeremo l'ambiente virtuale (che chiameremo "tele "), le librerie necessarie e i programmi. Nota: naturalmente i nomi dati alle sottocartelle possono essere variati a piacere. Postulando che si siano create le cartelle indicate, si può iniziare con la programmazione. Aprire un terminale (la quarta icona in alto a destra) e digitare quanto segue:cd Desktop/Projects/telegram per spostarsi nella cartella "telegram "; python3 -m venv tele per creare l'ambiente virtuale "tele "; source tele/bin/activate per attivare l'ambiente virtuale: apparirà (tele) all'inizio della nuova riga; Come
installare le librerie necessarie
Dopo aver creato la cartella e attivato l'ambiente virtuale si possono installare le librerie necessarie.
|
| |
|
|
| |
| Altri
programmi che usano relè, DHT11/22, BME280, relè. |
|
Altri
programmi che usano DHT11/DHT22:
Clicca qui
per un primo programma con il display SSD1306 OLED.Clicca qui per un secondo programma con il display SSD1306 OLED. Clicca qui per un terzo programma, con il display Led 1602. Clicca qui per i programmi che utilizzano Thingspeak Clicca qui per i programmi che utilizzano DHT11/22 Altri
programmi che usano BME280:
Clicca qui per programmi con BME280 con il sensore di qualità dell'aria SGP30. Clicca qui per programmi con BME280 Altri programmi che usano i relè: Clicca qui per programmi con l'uso di relè |
| |
|
|
| |
| Primo gruppo: Telegram invia comandi al Raspberry |
| |
| |
| Il primo programma: inviare UN comando al Raspberry |
|
|
|
| Il secondo programma: inviare DUE comando al Raspberry |
Questo secondo programma è identico al primo; semplicemente si possono inviare due comandi distinti. Con questa tecnica è sufficiente inserire più funzioni "def" e "if/elif" per poter controllare più apparecchi esterni. In questo caso, useremo due led/relè:bo2a
E'
sufficiente digitare "on" oppure "On" per attivare e "off"
oppure "Off" per disattivare LED1/Relè su DG1. Di seguito viene mostrato come duplicare le funzioni "def" e "if/elif" per controllare "x" periferiche: |
![]() la lista delle possibili opzioni per accendere/spegnere due led/relè |
![]() Come si può vedere, sono stati semplicemente duplicate le funzioni "def", selezionando quali comandi eseguire |
|
![]() Anche le le funzioni if/elif sono state duplicate, sostituendo nella seconda routine i comandi da eseguire |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python tele_bot2.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
Il secondo gruppo di programmi: Rapberry invia dati schedulati a Telegram |
| Il terzo programma: invia generico di dati a Telegram |
| Questo
programma mi è servito di base a quelli successivi: in poche
istruzioni sipossono inviare dei messaggi a Telegram. Affinchè funzioni, è necessario inserire il proprio API Token e Chat_id. Nell'immagine a destra si vedono le poche istruzioni necessarie per inviare messaggi a Telegram. |
![]() |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python send_tele.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
| Il quarto programma: invia dati schedulati a Telegram da DHT11/22 |
| In
questo programma comincia ad accadere qualcosa di
interessante: un sensore DHT11/22 invia dati schedulati a
Telegram su temperatura e umidità. Affinchè funzioni, è necessario inserire il proprio API Token e Chat_id. La prima parte di codice (in alto) riguarda la configurazione del sensore: potrà essere adafruit_dht.DHT11 o adafruit_dht.DHT22 in base al sensore che si usa. Il sensore è posto sullo zoccolo one_wire (GPIO4). Temperature_offset è relativa alla calibrazione del sensore: "-4" significa che mostra 4 gradi in più del reale. Verificare con cura. I dati sono inviati a Telegram per mezzo di una schedulazione: "time.sleep(30.0)". Significa che invieremo i dati ogni 30 secondi, tempo servito per i test. Se si volesse inviare l'informazione ogni ora, sarebbe: "time.sleep(3600.0), eccetera. Clicca qui per vedere le info del programma "di base". |
![]() Configurazione di DHT11/DHT22 ![]() Le righe di codice per inviare temperatura e umidità Nota:
righe incorniciate sono state spezzate solo per ragioni di
esposizione, ma entrambe sono un'unica linea. ![]() L
a schedulazione in secondi
![]() |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python tele_dht.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
| Il quinto programma: invia dati schedulati a Telegram da DHT11/22 + attivazione relè |
Il quinto programma usa lastetta struttura del precedente come base, ma fa qualcosa in più: relativamente alle informazioni ricevute da DHT11 e dalle variabili di soglia, può attivare automaticamente un condizionatore, una pompa di calore o un deumidificatore, inviando i dati schedulati a Telegram. In questo senso lo si può considerare un veo programma di domotica. Le righe di base per sviluppare queso programma (variabili, comandi dei relè, ecc.) sono state prelevate da questo sketch. Vedere le informazioni dettagliate. Affinchè il programma funzioni funzioni, è necessario inserire il proprio API Token e Chat_id. |
![]() |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python tele_dht_c.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
| Il sesto programma: invia dati schedulati a Telegram da BME280 |
| Il
sesto programma invia i dati di temperatura, umidità e
pressione (quindi diventa una vera stazione meteorologica) a
Telegram, con ua schedulazione a piacere. Affinchè funzioni, è necessario inserire il proprio API Token e Chat_id. La schedulazione, come per il quarto programma, è impostato in secondi. Un ora: 3600 secondi |
![]() |
![]() |
i
dati relativi alla configurazione del sensore BME280 |
![]() |
le righe di codice relative al trasferimento dei dati su Telegram. I dati contenuti in un riquadro blu sono relativi ad un'unica linea di codice. |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python tele_280.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
| Il settimo programma: invia dati schedulati a Telegram da BME280 + attivazione relè |
| Questo
programma è sulla stessa linea del quinto programma, per
DHT11; semplicemente è stato sostituito con il BME280
e quindi modificate le linee relative alla configurazione
del sensore stesso. Affinchè il programma funzioni, funzioni, è necessario inserire il proprio API Token e Chat_id. Le righe di base per sviluppare queso programma (variabili, comandi dei relè, ecc.) sono state prelevate da questo sketch. Vedere le informazioni dettagliate. |
![]() |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python tele_280_c.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|
| L'ottavo programma: inviare messaggi al cambio di condizioni dal Raspberry a Telegram |
L'ottavo (e per ora ultimo!) programma è molto interessante, perché viene mandato un messaggio a Telegram ogni volta che un sensore registra un camio di condizioni: una porta/finestra aperta o chiusa; un movimento in una camera, una fuga di gas, un incendio... e questo praticamente in tempo reale ! All'avvio del programma è necessario per esempio aprire e chiudere una porta per metterlo in condizione di verificare le variazioni future. Affinchè il programma funzioni, funzioni, è necessario inserire il proprio API Token e Chat_id. |
|
![]() |
|
Le
righe di codice specifiche per questo programma. All'avvio verifica lo stato del sensore; appurato ciò, al cambio dello stato del sensore, invia un messaggio a Telegram con lo stato attuale. |
Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "Desktop/Projects/telegram" e lanciarlo con il seguente comando: "python door_ctrl.py" Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |
|
|