Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Progetti hardware

Basetta sperimentale per ESP8266

Assemblare la basetta sperimentale

Download dei dati necessari per la realizzazione della basetta sperimentale



Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione e piedinatura 
- Caricamento dei programmi
- Come caricare le librerie necessarie



Programmi vari

DHT11/DHT21/DHT22 e RELE'
- Temp. e umidità con un DHT11/21/22
- Temp. e umidità con due DHT11/21/22
- Controllo du un relè con DHT11/21/22


ESP8266 e Bluetooth
- controllo di più led e relè via Bluetooth
- controllo di un led a tre colori
- controllo vocale di più led/relè

Web server e ora esatta
- creare  più web server (3)
- ricevere data e ora esatta (2)

Controllare dei relè via WiFi
- controllo di 1/2/4/5 relè via WiFi (3)

Stazione meteorologica/qualità dell'aria
- staz. meteorologica con BMP280 (3)
- staz. meteorologica con BME280
- staz. meteorol. con OpenWeatherMap
- qualità dell'aria con BME680
- qualità dell'aria con SGP30



Programmi con Telegram

Verificare l'apertura di uno o più porte

Controllo di uno o più relè



Programmi con ThingSpeak

Una stazione meteorologica con BMP680

Monitorare la qualità dell'aria con GSP30



Programmi con il DB Firebase

Gestire alcuni led/relè

Gestire led/relè con Mit App Inventor 2



Programmi con MQTT (Mosquitto)

Inviare /ricevere dati per mezzo di MQTT



Programmi con scheda Bluetooth

Controllo led/relè via terminale

Controllo led/relè con switch

Controllo cromatico di un led

Controllo a mezzo vocale



Programmi con LittleFS





Link utili

Visualizzazione di link utili per ESPxxx






 















ESP8266 - ESP12E
Programmi con MQTT

MQTT (Message Quering Telemetry Transport) è un protocollo di messaggistica leggero di tipo publish-subscribe posizionato su TCP/IP. È stato progettato per le situazioni in cui è richiesto un basso impatto energetico e dove la banda è limitata ed è molto usato anche su Arduino, Rasberry, ecc. e per i progetti di domotica.
Poichè in rete si trovano ottimi manuali su MQTT, non sto a dilungarmi. Ecco alcuni siti /video utili che ho trovato in rete:
https://www.cloud.it/tutorial/come-installare-e-mettere-sicurezza-mosquitto-su-ubuntu-20-04.aspx
Alcuni progetti chiari e interessanti su questi video di Paolo Aliberti, a cui va sempre la mia gratitudine:
https://www.youtube.com/watch?v=k5HJ6G0YeWw           
Creare un subscriver

https://www.youtube.com/watch?v=cLRuWwKkSp4             Creare un publisher

mqtt

Schema a blocchi del funzionamento del
 protocollo MQTT



In questa pagina si troveranno inizialmente due programmi:
- un primo, che invia dati al broker MQTT
- un secondo, che riceve dati attraverso al broker MQTT.
Entrambi i programmi sono stati prelevati dal sito di Arduino  https://docs.arduino.cc/tutorials/uno-wifi-rev2/uno-wifi-r2-mqtt-device-to-device/ e leggermente modificati.
Anche l'immagine iniziale è stata prelevata dalla stessa pagina.





INVIARE dati per mezzo di MQTT



In questo programma ci si collega ad un broker MQTT. Alla scheda ESP8266 sono collegati tre interruttori, che manderanno un segnale di apertura/chiusura al receiver ogni tot secondi.



Lo schema elettrico



send

Lo schema elettrico con un pulsante (KY-004) su GPIO0 e due touch switch  rispettivamente si GPIO14 e GPIO12.
E' stata usata questa particolare configurazione perché sulla basetta sperimentale ci sono due touch switch, ma sia questi ultimi che KY-004 possono essere sostituiti da tre sensori digitali (stati "0" e "1").



mq_bs
La basetta sperimentale in formato reale con i componenti e i collegamenti necessari.



Il programma



E' sempre necessario di avere caricato le librerie necessarie per poter compilare
 il programma.
Ecco quelle che sono necessarie:

ArduinoMqttClient.h
ESP8266WiFi.h




In questo programma dapprima ci si collega alla rete WiFi, quindi è necessario inserire i dati della propria rete WiFi e la password.
Effettuata la connessione, si aggancia   un broker (=server) pubblico MQTT, utile per fare i nostri test. Essendo pubblico, si consiglia di usarlo solo per brevi prove, in modo che resti disponibile (e veloce nelle risposte) per tutti.
Si collegheranno tre pulsanti (o sensori digitali con risposte on/off) rispettivamente alle porte GPIO0, GPIO14, GPIO12. Il programma (publisher), dopo essersi agganciato al broker, controlla lo stato degli interruttori, e invia ogni tot millisecondi invia al broker e stampa i risultati sul monitor seriale.
Una ulteriore scheda ESP8266, cha fungerà da ricevitore  (subscriber), riceverà i dati dal broker e li pubblicherà sempre sul proprio monitor seriale.


passw
La richiesta della SSID e password





delay
L'attesa tra un invio e l'altro. 8000 millisec = 8 secondi






E' neceassario inserire l'indirizzo IP (o il nome) del proprio broker, che può essere locale nella propria rete o nel wob, come nel nostro caso:  "test.mosquitto.org". La porta usata è abitualmente la "1883".

IP



I tre switch: un KY-004 (o un qualsiasi sensore digitale che dia come risposta "0" o "1"), si connette alla porta GPIO0, mentre i due touch switch inseriti a bordo della basetta sperimentale si collegano alle porte GPIO13 e GPIO14 (vedi schema riprodotto sopra).
Sulla destra appare la routine per l'intercettazione dello stato degli switch.
Quando i valori Rvalue, Rvalue2, Rvalue3 sono posti a "1", lo switch è stato premuto; quando sono = "0" sono disattivati.
Una curiosità:  i touch switch hanno un comportamento opposto rispetto a KY-004. Infatti quest'ultimo è premuto quando digitalRead(0) è uguale a "0" e non attivato quando il valore è uguale a "1", mentre i due touch switch sono attivi (si è avvicinato un dito alla loro superficie) quando digitalRead(13) o digitalRead(14) è uguale a "1".
Tenerne conto  nel caso si usino switch differenti, altrimenti si otterranno messaggi opposti a quello che ci si aspetta!

A questo punto, i dati verranno inviati al broker e stampati sul monitor seriale.

Nota: ci vogliono diversi secondi, da quando il programma è stato compilato a quando cominciano ad apparire i dati sul monitor seriale.

3sw
La routine che interroga
i tre switch










Ricevere dati per mezzo di MQTT



Caricando questo programma, potremo ricevere lo stato dei tre switch controllati dal programma "sender".Con questo genere di programma, avremo bisogno di due scehde per testare inostri programmi; una invierà i dati e l'altra li riceverà. Poichè con il programma che verificheremo ora non avremo degli attuatori (verificheremo solo con il monitor seriale lo stato degli switch), come ricevitore potremmo usare anche in "piccolo" ESP01.




E' sempre necessario di avere caricato le librerie necessarie per poter compilare
 il programma.
Ecco quelle che sono necessarie:


ArduinoMqttClient.h
ESP8266WiFi.h



Come per il programma trasmettitore, è neseccario dichiarare nel programma il nome della propria rete WiFi e la password.

Sarà già inserito anche l'indirizzo del broker, sia la porta di collegamento.


passw

ip2

Dopo aver atteso qualche secondo, si comincerà a vedere scorrere, con l'intervallo seletionato nel programma trasmettitore, lo stato dei tre switch. Questo è al momento, semplicemente un programma dimostrativo.



































































































































Per contatti: info@ethicaldiy.org