Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 



Progetti hardware

Basetta sperimentale per ESP8266

Assemblare la basetta sperimentale

Configurazione e piedinatura di ESP8266

Download dei dati 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



Pin disponibili per  gli sketch




Programmi con libreria SSD1306Wire.h

Un orolgio digitale

Un orologio analogico

AUn orologio analogico con 2 display


Un termometro con DHT11 Wi-Fi




Programmi con libreria U8G2.h

Controllo di uno_switch in locale

Controllo di uno switch via_WiFi

Controllo di due switch in locale

Controllo di due_switch_via WiFi

Una stazione meteo con BME280

Una stazione meteo con BME280 e due display

Qualità dell'aria e temperatura con SGP30 e DHT11



Programmi con libreria Oled.h

Un termometro Dht11 in locale




Programmi con il DB Firebase




Programmi con MQTT (Mosquitto)




Programmi con LittleFS




Link utili


 















ESP8266 Oled
Programmi con libreria U8G2.h




La libreria U8G2.h è ben documentata, quindi si possono sviluppare abbastanza rapidamente diversi programmi con essa e la scheda didattica e sperimentale (BDS). Ecco aluni esempi.





u8wf
Immagine in scala 1:1 della BDS configurata per il programma
che controlla lo stato di due switch via Wi-fi



Controllo con uno switch in locale



Questo è un semplice programma per testare alcune funzioni di base della basetta didattica e sperimentale (BDS) per ESP8266 OLED.
Le funzioni sono banali: dopo aver caricato il programma, il LED1 è acceso e LED2 è spento; il buzzer è muto e sul display appere la scritta in azzurro "switch non attivo".
Se si avvicina al dito al pulsante touch "BT1" integrato sulla basetta, il LED1 si spegne eil LED2 si accende; il buzzer emette un suono e
sul display appere la scritta (in giallo)  "switch attivato".





Lo schema elettrico



u81sw

Il collegamento elettrico:

-BP1 (Touch) -> ADC0
-LED1 -> GPIO4
-LED2 -> GPIO5
-BUZZER -> GPIO2



sw1
Rendering della basetta didattica e sperimentale in scala 1:1
Si noti in basso a sinistra il buzzer sullo zoccolo GPO2
e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA"
BT1 (il pulsante touch) è parzialmente nascosto dal buzzer, solo per  esigenze di render.



Le librerie utilizzate:

Nota: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.
Clicca qui per imformazioni sull'installazione delle librerie

Arduino.h
Wire.h
U8g2lib.h



Nota sul caricamento: si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento.



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







Controllo con due switch in locale



Anche questo programma serve per un test leggermente più completo del precedente.
Se si preme il pulsante touch BT1 (o ci si avvicina ad esso):
- il LED2 si accende;
- il buzzer emette un suono;
- sul display Oled appare: "switch1 attivato"; altrimente appare: "switch 1 NON attivo".

Se si preme il pulsante touch BT2 (o ci si avvicina ad esso):
- il LED1 si accende;
- il buzzer emette un suono;
- sul display Oled appare: "switch2 attivato"; altrimente appare: "switch 2 NON attivo"





Lo schema elettrico



2sw


Il collegamento elettrico:

-BP1 (Touch) -> GPIO13
-BP2 (Touch) -> GPIO15 -LED1 -> GPIO4
-LED2 -> GPIO5
-BUZZER -> GPIO2



r2sw
Rendering della basetta didattica e sperimentale in scala 1:1
Si noti in basso a sinistra il buzzer sullo zoccolo GPO2
e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA"
I pulsanti touch
BT1 e BT2 sono parzialmenti nascosti dal buzzer, solo per  esigenze di render.



Le librerie utilizzate:

Nota: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.
Clicca qui per informazioni sull'installazione delle librerie


Arduino.h
Wire.h
U8g2lib.h



Nota sul caricamento: si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento.





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







Controllo con uno switch via WiFi



Questo programma è simile al primo proposto, e serve  per testare alcune funzioni di base della basetta didattica e sperimentale (BDS) per ESP8266 OLED.
Le funzioni sono banali: dopo aver caricato il programma, il LED1 è acceso e LED2 è spento; il buzzer è muto e sul display appere la scritta in azzurro "switch non attivo".
Se si avvicina al dito al pulsante touch "BT1" integrato sulla basetta, il LED1 si spegne eil LED2 si accende; il buzzer emette un suono e
sul display appere la scritta (in giallo)  "switch attivato".
La differenza con il primo programma è che viene ativato anche il Wi-Fi, e quindi le informazioni sulla pressione del pulsante può essere visualizzata anche sul proprio browser, sempre che si resti all'interno della propria rete.





Lo schema elettrico
u81sw


Il collegamento elettrico:

-BP1 (Touch) -> ADC0
-LED1 -> GPIO4
- LED2 -> GPIO5
- BUZZER -> GPIO2



1swifi

Rendering della basetta didattica e sperimentale in scala 1:1
Si noti in basso a sinistra il buzzer sullo zoccolo GPO2
i il collegamento sulla destra tra lo zoccolo "AUX" e "DATA"
BT1 (il pulsante touch) è parzialmente nascosto dal buzzer, solo per  esigenze di render.




Le librerie utilizzate:

Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.
Nota 2: la libreria 
ESP8266WebServer.h viene installata insieme alle schede relative a ESP8266.
Clicca qui per informazioni sull'installazione delle librerie


Arduino.h
Wire.h
U8g2lib.h
ESP8266WebServer.h




ssid

In serire nel programma il nome della propria rete Wi-Fi e la password.
Caricare il programma.



Prendere nota dell'indirizzo IP che il router ha attibuoto alla propria ESP8266

ip



Nota sul caricamento:
- si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento.
- terminato il caricamento e trascorsi alcuni secondi, appena il nostro ESP8266 si aggancia alla rete Wi-Fi, apparirà sullo schermo Oled l'indirizzo IP del microcontroller, che dovremo poi scrivere sulla barra di indirizzo del browser per vedere le infomazioni da remoto.
P.s.: nel caso dopo un tempo ragionevole non apparissero le informazioni sul display, eseguire un reset, premendo per qualche secondo il tasto "RST", alla destra del connettore USB.
Le informazioni, sia dell'indirizzo IP che degli stati degli switch si possono vedere anche sul monitor seriale, che deve essere settato su 115200 bps.








browser

Inserire sul proprio browser preferito l'indirizzo della scheda (nel mio caso: 192.168.1.158).
Apparirà la seguente schermata.

Ho provato ad immaginare di inserire un interruttore (per esempio di tipo magnetico) alla porta di entrata. Qaundo il contatto è chiuso, sul browser appare in verde "porta chiusa"; sul display OLED appare la scritta in blu "switch attivato". Viceversa quando il contatto è aperto, postulo che anche la porta lo sia. Perciò sul browser apparirà in rosso, con caratteri più evidenti la scritta "PORTA APERTA!" e sul display OLED in giallo "switch non attivo.
Se è stato inserito il buzzer, emetterà un segnale di allarme.



Nota sul caricamento: si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento.



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







Controllo con due switch via WiFi



Questo quarto programma ha una configurazione simile (ma non uguale)  di quello che controlla due switch in locale; la differenza sostanziale è che invia anche le informazioni via Wi-Fi alla propria rete.





Il funzionamento del programma



Questo programma sfrutta i due switch touch ed i tre led presenti sulla basetta sperimentale. Di seguito si vedrà come effettuare i collegamenti.
Dopo aver caricato il programma e atteso per alcuni secondi, apparirà sul dispaly Oled l'indirizzo IP acquisito dalla scheda e lo stato degli switch; ho immaginato che la posto degli switch a bordo, la scheda sia collegato a due sensori magnetici, che verificano l'apertura o la chiusura di due porte.
  • Quando si attiva lo switch "BT1", il LED1 si accende, appare sullo schermo "porta 1 chiusa". Lo stesso messaggio appare sul monitor seriale e sul Browser appare "porta di ingresso chiusa".
  • Se "BT1 non è attivo, il LED1 è spento, appare sullo schermo "PORTA 1 APERTA!!!". Lo stesso messaggio appare sul monitor seriale.e sul Browser appare "PORTA DI INGRESSO APERTA!!!".
  • Quando si attiva lo switch "BT2", il LED3 si accende, appare sullo schermo "porta 2 chiusa".  Lo stesso messaggio appare sul monitor seriale e sul Browser appare "porta-finestra chiusa".
  •  Se "BT2 non è attivo, il LED3 è spento, appare sullo schermo "PORTA 2 APERTA!!!". Lo stesso messaggio appare sul monitor seriale. e sul Browser appare "PORTA-FINESTRA APERTA!!!"
  • Nel caso che uno o entrambi gli switch non fossero attivi, si accende anche il LED2 e il buzzer emette un suono di allarme.





Lo schema elettrico



wf


Il collegamento elettrico:

-BP1 (Touch) -> GPIO13
-BP2 (Touch) -> GPIO15
-LED1 -> GPIO4
-LED2 -> GPIO5
- LED3 -> GPIO0
-BUZZER -> GPIO2



66wf
Rendering della basetta didattica e sperimentale in scala 1:1
Si noti in basso a sinistra il buzzer sullo zoccolo GPO2
e il collegamento sulla destra tra lo zoccolo "AUX" e "DATA"
I pulsanti touch
BT1 e BT2 sono parzialmenti nascosti dal buzzer, solo per  esigenze di render.



Le librerie utilizzate:

Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.
Nota 2: la libreria 
ESP8266WebServer.h viene installata insieme alle schede relative a ESP8266.
Clicca qui per informazioni sull'installazione delle librerie


Arduino.h
Wire.h
U8g2lib.h
ESP8266WebServer.h




ssid

In serire nel programma il nome della propria rete Wi-Fi e la password.
Caricare il programma.




Prendere nota dell'indirizzo IP che il router ha attibuoto alla propria ESP8266

ip



Nota sul caricamento:
- si consiglia di inserire il buzzer su GPO2 dopo aver caricato il programma, per evitare un errore nel caricamento.
- terminato il caricamento e trascorsi alcuni secondi, appena il nostro ESP8266 si aggancia alla rete Wi-Fi, apparirà sullo schermo Oled l'indirizzo IP del microcontroller, che dovremo poi scrivere sulla barra di indirizzo del browser per vedere le infomazioni da remoto.
P.s.: nel caso dopo un tempo ragionevole non apparissero le informazioni sul display, eseguire un reset, premendo per qualche secondo il tasto "RST", alla destra del connettore USB.
Le informazioni, sia dell'indirizzo IP che degli stati degli switch si possono vedere anche sul monitor seriale, che deve essere settato su 115200 bps.



2sw

In questa immagine scaricata dal browser, in cui uno switch è attivato, mentre l'altro è disattivato, simulando una porta aperta e una chiusa.



Clicca qui per vedere il programma
Clicca qui per scaricare il programma in formato ".zip"





Una stazione meteorologica con BME280



Questo programma trasforma la nostra basetta sperimentale in una piccola stazione meteorologica, che si comporta però come una tradizionale, fornendo la temperatura, l'umidità e la pressione atmosferica. Tutto questo con un solo, minuscolo componente: un BME280.
bme 280
BME280
Tutto questo con un solo, minuscolo componente: un BME280.
Attenzione: non confonderlo con BMP280, che fornisce solo temperatura e umidità, e un calcolo, a dire il vero poco preciso, dell'altezza sul livello del mare.



bme280
Le informazioni rilevate da BME280 visualizzate dal display OLED.



Lo schema elettrico




schema


Il sensore BME280 va collegato all'alimentazione a 3,3v.
Mentre "SCL" sarà collegata a GPIO5 (clock) e "SDA" si connetterà a GPIO4 (data).
Gli ultimi pin non saranno usati in questo progetto.

Nota: per comodità, l'immagine è di ESP8266 standard.




basetta
La basetta sperimentale con il sensore BMP280 in scala 1:1.
BMP280 è connesso allo zoccolo I2C2, adatto al protocollo I2C.






Le librerie utilizzate:

Nota 1: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.

Clicca qui per informazioni sull'installazione delle librerie

BME280I2C.h
Wire.h
U8g2lib.h




Questo programma è piuttosto semplice, e non richiede di configurazioni particolari.
Se si sono caricate le librerie necessarie e dopo aver trasferito il programma al microcontroller, darà immediatamente le informazioni richieste.
Se si volesse trasmettere le informazioni via Wi-fi alla propria rete, si potrà utilizzare parte di questo programma, sviluppato per ESP8266 "standard", inserendo nello schetch attuale le righe di codice per inviare i dati in rete.

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



280
Ed ecco la fotografia in formato 1:1 della BDS con BME280







Una stazione meteorologica con BME280 e DUE dispaly



Questo programma serve a dimostrare una possibilità particolare di questa libreria: gestire due display, ovvero quello integrato, più un secondo display che utilizzi il protocollo I2C.
Oltre che una curiosità, questo sketch potrebbe essere utile nel caso si abbia la necessità di visualizzare le stesse informazioni in posti diversi.
Al di là delle righe di codice necessario per gestire due display, il programma è uguale al precedente.

ssid
un display SSID1306



Lo schema elettrico



2dsp


Il sensore BME280 va collegato all'alimentazione a 3,3v.
Mentre "SCL" sarà collegata a GPIO5 (clock) e "SDA" si connetterà a GPIO4 (data).
Gli ultimi pin non saranno usati in questo progetto.
Il display DDS1306 128x64 OLED si connette alle stesse porte di BME280, perchè entrambi seguono il protocollo I2C.
Nota: per comodità, l'immagine è di ESP8266 standard.



bme2
La basetta sperimentale con il sensore BMP280 in scala 1:1.
BMP280 è connesso allo zoccolo I2C2, adatto al protocollo I2C.
Il secondo display, SSID1306 12x64 è connesso allo zoccoloI2C3.




Le librerie utilizzate:

Nota: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.

Clicca qui per informazioni sull'installazione delle librerie


BME280I2C.h
Wire.h
U8g2lib.h




Questo programma è piuttosto semplice, e non richiede di configurazioni particolari.
Se si sono caricate le librerie necessarie e dopo aver trasferito il programma al microcontroller, darà immediatamente le informazioni richieste.
Se si volesse trasmettere le informazioni via Wi-fi alla propria rete, si potrà utilizzare parte di questo programma, sviluppato per ESP8266 "standard", inserendo nello schetch attuale le righe di codice per inviare i dati in rete.

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









Controllo qualità dell'aria + temperatura e umidità con SGP30 e DHT11



L'ultimo programma che viene presentato per testare la libreria U8G2.h è piuttosto interessante perchè, oltre a indicare la temperatura e l'umidità (la presentazione di questi due soli parametri è piuttosto inflazionata!), mostra quattro parametri per monitorare la qualità dell'aria. Vengono usati due sensori: DHT11 e SGP30.
Il programma sviluppato è piuttosto semplice, ma aggiungendo qualche riga di codice è possibile visualizzare i dati su due display e anche inviarli su internet e vederli in ogni parte del mondo con Thingspeak. Qui trovi i rimandi ai programmi che ti aiuteranno a modificare il programma per ottenere questi obiettivi.


oled_30
La visualizzazione dei parametri



dht11
DHT11
I due sensori necessari: DHT11 per rilevare la temperatura e
l'umidità; SGP30 per misurare:
TVOC, ovvero "composti organici volatili";
H2, la presenza di idrogeno;
CO2; anidride carbonica;
EtOH, Etanolo, o alcol etilico (C2H6O oppure EtOH).

Attenzione: SGP30 è venduto con due piedinature diverse.
Il modello "1" va inserito sullo zoccolo I2C3;
il modello "2" va inserito sullo zoccolo I2C1.
s1

1
s2
2
Tipi di SGP30



Lo schema elettrico



sgdh

Il sensore temperatura/umidità DHT11 va collegato sulla porta GPIO0; mentre SGP30 segue il protocollo I2C, per cui SCL si connette su GPIO5 e SDA su GPIO4



dhsg
Il rendering della basetta sperimentale in scala 1:1.
DHT11 si connette sullo zoccolo DG1,
mentre SGP30 si connette sullo zoccolo I2C2.
Vedi nota iniziale.
Fare attenzione a connetterlo sui pin corretti.



Come sempre, per prima cosa, è necessario essere certi di aver installato le librerie necessarie.
Sulla destra si legge l'elenco. Il loro utilizzo è piuttosto intuitivo:

DHT.h serve per gestire DHT11;
Wire.h serve a connettere al protocollo I2C;
Adafruit_SGP30.h
è relativo a SGP30.

Nota: per quanto possibile, scaricare sempre le librerie più aggiornate.
Solo in caso non le trovaste, utilizzare quelle proposte nel sito.


DHT.h

Wire.h

Adafruit_SGP30.h




11

Queste linee di programma servono per stabilire il tipo di sensore che si sta utilizzando: DHT11, DHT21 o DHT22, e inserire i giusti parametri, altrimenti si leggeranno dei valori incoerenti.
Nota: ho acquistato sia da Amazon che Aliexpress dei sensori  come DHT11, ma in realtà erano DHT22! Sostituiti i paramentri, tutto ha funzionato regolarmente.



u830
L'immagine della BDS in scala 1:1.
Si noti che il sensore SGP30 è posto sullo zoccolo I2C1.
DHT11 è inserito su DG1.



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




Per contatti: info@ethicaldiy.org