Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Progetti hardware

Home di ESP01

Basetta sperimentale per ESP01

Dati costruttivi della basetta sperimentale

Download dei file necessari per la realizzazione della basetta sperimentale




Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione della IDE 
- Caricamento dei programmi
- Il problema dei permessi sulle porte seriali con Linux
-Procedura con la basetta sperimentale per ESP01
- Come caricare le librerie necessarie
- Piedinatura di ESP01
- Piedinatura di ESP8266

I sensori/attuatori compatibili con ESP01
I sensori/attuatori compatibili con ESP8266



Programmi vari

Temperatura e umidità con
DHT11/DHT/21/DHT22


Controllo di 1/2 relè via WiFi

DHT11/DHT21/DHT22 + 1 relè

Una stazione meteorologica con BMP280

Ricevere la data e l'ora esatta

Una stazione meteorologica con OpenWeatherMap

Monitorare la qualità dell'aria con BMP680



Programmi con Telegram






 
Programmi con in Db Firebase





Inviare/ricevere dati
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.
I programmi sono stati modificati per poter funzionare con ESP01, che offre solo due porte disponibili per l'utente.



INVIARE dati per mezzo di MQTT



Lo schema elettrico



2sw_sc

Per testare il programma di invio informazioni via MQTT, sono stati collegati due pulsanti, rispettivamente a  GPIO0 e GPIO2.
La pressione di uno o entrambi i pulsanti cambia il segnale inviato.




2 sw
La basetta sperimentale per ESP01 in formato 1:1
con i due pulsanti posti su DG1 (GPIO2) e DG2 (GPIO0)




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 e GPIO2. 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 due switch: un KY-004 (o un qualsiasi sensore digitale che dia come risposta "0" o "1"), si connette alla porta GPIO0, mentre un secondo si connette su GPIO2  (vedi schema riprodotto sopra).
Sulla destra appare la routine per l'intercettazione dello stato degli switch.
Quando i valori Rvalue, Rvalue2 sono posti a "1", lo switch è stato premuto; quando sono = "0" sono disattivati.
Una curiosità:  nel caso si usassero dei touch switch (tipo TTC223) hanno un comportamento oinverso rispetto a KY-004. Infatti quest'ultimo è premuto quando digitalRead(0) o
digitalRead(2)è uguale a "0" e non attivato quando il valore è uguale a "1", mentre touch switch sono attivi (si è avvicinato un dito alla loro superficie) quando digitalRead(0) o digitalRead(2)  è 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.

mqtt2



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).



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, è necessario 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 selezionato nel programma trasmettitore, lo stato dei due switch. Questo è al momento, semplicemente un programma dimostrativo.

Clicca qui per visualizzare il programma trasmettitore
Clicca qui per scaricare in formato ".zip"
il programma trasmettitore

Clicca qui per visualizzare il programma ricevitore
Clicca qui per scaricare in formato ".zip" il programma ricevitore






Per contatti: info@ethicaldiy.org