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 bluetooth

hc06
HC-06
La scheda ESP8266 non possiede un chip che controlla il Bluetooth, ma collegandola a un adattatore come HC05 o HC06, diventa possibile controllare delle periferiche con questa tecnologia. ESP8266 nativamente si collega al WiFi, quindi il bluetooth può essere superfluo. Ci sono casi in cui si preferisce non collegarsi in rete, e anche per testare la flessibilità della basetta sperimentale.  Inoltre si ottengono con grande facilità risultati molto piacevoli e scenografici.

Differenze tra HC-05 e HC-06. La differenza più evidente è il numero di piedini: 6 per HC05 e quattr per HC06. Tuttavia, i quattro piedini centrali di HC05 sono gli stessi e nella stessa sequenza, per cui portando attenzione, possono essere collegati sullo stesso zoccolo, in quanto per i nostri scopi i due piedini esterni di HC05 sono ininfluenti.
La differenza ecnica è che HC05 può essere una periferica sia master (principale) che slave (secondaria)  per la rete bluetooth, mentre HC06 può essere solo secondaria, ovvero ricevere dei comandi e darne conferma.
hc06HC-05



Ecco i le informazioni e i programmi presenti in questa pagina:












Come collegare un modulo HC05/HC06 alla rete bluetooth




I moduli Hc-05 - HC-06 si collegano al cellulare in modo analogo agli altri apparecchi Bluetooth. Appena alimentati, entrano in modalità "paring" ovvero in modalità accoppiamento; il led presente su entrambi comincia a lampeggiare. Quando HC-05 viene agganciato dal cellulare, il suo led emette due rapidi lampeggi e poi rimane spento per alcuni secondi e dopo riprende il ciclo; mentre quando si è collegato HC-06, il suo led rimane acceso in modo fisso.

Dopo aver acceso il modulo e attenso che il led lampeggi, andare sulle impostazioni del cellulare e cercare la voce Bluetooth. Aperta l'applicazione, si vedrà la lista dei dispositivi connessi. Premere su "accoppia nuovo dispositivo" e attendere qualche secondo. Dovrebbe apparire il nome della nostra scheda. A volte viene richiesta una password di connessione, in genere "1234" oppure "0000". Inserita la password, la scheda apparirà tra la lista dei dispositivi riconosciuti.

bl_sm













La App per Android per controllare il sistema: Arduino Bluetoot Control




Ci sono varie App per controllare le nostre periferiche Bluetooth, ma quella che ho preferito per semplicità e completezza è "Arduino Bluetooth Control" della Giristudio, che per semplicità abbrevierò dora in poi in "ABC".
Come per tutte le App di Android, si può installare a mezzo "Play store" di Google.
Sulla destra appare il logo di
Arduino Bluetooth Control.
Dopo aver scaricato e aperto l'APP,  apparirà la lista dei dispositivi collegati, probabillmente con il nome HC-05 o HC-06 e il loro Macaddress. Cliccare su quello scelto.
Si aprirà una nuova finestra, con la ricca lista dei possibili metodi per controllare il nostro dispositivo, come appare nell'immagine di destra.
Di seguito, una breve descrizioni delle voci disponibili:
- LED/Lamp control: è l'applicazione più semplice. Appare un pulsante, per cui si può accendere/spegnere un led, oppure, usando un relè, accendere o spegnere una qualsiasi periferica, amnche connessa alla rete elettrica, come una lampada.
- RGB LED Control: appare un cerchio come quello presente sui programmi di grafica, in cui si possono scegliere le sfumature di colore. Se è connesso ul led a tre colori, si può selezionare la tonalità di colori preferita.
- Gamepad: appare un game pad, appunto, con 10 possibilità di controllo. A ogni pulsante si può attribuire una diversa funzione.
- Switches: in questa pagina ci sono 10 switches (interruttori) che possono accendere/spegnere una qualsiasi periferica collegata.
- Terminal: con questa applicazione, si possno inviare a HC05/HC06 una serie di comandi scritti via terminale.
- Voice Control: questa applicazione è molto divertente, perchè si possono inviare comandi vocali, anche articolati. Il riconoscimento della voce è eccellente.
- Control over Internet: riceve dati da un altra periferica e le invia a un controller.

Se si clicca sui tre puntini in alto a destra, appare un menù con alcune voci interessanti:
- Code Examples: fornisce alcuni esempi per creare i propri sketch con Arduino o ESPxxx.
- Settings: permette alcune configurazioni relative alla App.

logo
Il logo dell'App

app abc
La app con le voci disponibili












Controllo a mezzo Terminale




terminal

Nei due programmi seguenti utilizzeremo il terminale. In questo caso, si aprirà una finestra in cui inserire dei comandi, che verranno indicati durante la presentazione dei programmi. Se il comando sarà riconosciuto ed accettato, sul terminale apparirà la conferma della sua esecuzione.













Controllo DUE led/relè a mezzo terminale



In questo programma si controlleranno due led presenti sulla basetta sperimentale, oppure due relè KY-019 presenti sugli zoccoli "DG1" e "DG2", collegati rispettivamente alle porte di ESP8266 su GPIO0 e GPIO2. Naturalmente nulla vieta di pilotare contemporaneamente i relè e i led, se connessi sulle stesse porte.
il modulo Bluetooth HC-05 o HC-06 utilizzano anch'essi due porte: GPIO4 per la trasmissione dei dati e GPIO5 per la ricezione. Il nostro modulo è stato inserito sullo zoccolo I2C2, usato in altri progetti per il protocollo I2C.
Nota : per pilotare i relè, il jumper JP2 deve essere settato su +5v e deve essere collegato all'ingresso "PWR" un alimentatore in grado di fornire una tensione di 6/7 volt.
Attenzione: se si intende collegare ai relè apparecchi connessi alla rete elettrica, verificare di averne la competenza o oppure affidarsi a un tecnico qualificato.



Il programma riconosce alcuni comandi, che devono essere scritti esattamente sul terminale di "Arduino Bluetooth Control", pena il mancato riconoscimento.
I comandi sono i seguenti (attenzione allo spazio tra il numero e le lettere):
1 on:     accende il "LED1"  presente sulla basetta e collegato alla porta GPIO0
e/o il relè inserito in DG1";
1 off:     spegne il "LED1"  presente sulla basetta e collegato alla porta GPIO0 e/o il relè inserito in DG1";
2 on:     accende il "LED2"  presente sulla basetta e collegato alla porta GPIO2 e/o il relè inserito in DG2";
2 off:     spegne il "LED2"  presente sulla basetta e collegato alla porta GPIO2 e/o il relè inserito in DG2";
12 on:   accende contemporaneamente entrambi i led/relè;
12 off:  
spegne contemporaneamente entrambi i led/relè;
12 son:
accende entrambi i led/relè in sequenza, con un piccolo ritardo tra le due accensioni;
12 soff:
spegne entrambi i led/relè in sequenza, con un piccolo ritardo tra i due spegnimenti.





com2l

Lo schema di collegamento.
I led si collegano alle porte GPIO0 e GPIO2 di ESP8266 a mezzo resistenze da 220 ohm.
I due relè Ky-019 (oppure qualunque relè commerciale che funzioni a +5v) si connettono alle stesse porte, utilizzando gli zoccoli "DG1" e "DG2".



cmd2bl
Rendering della basetta sperimentale in formato 1:1.
si notino i relè sulla sinistra, HC-05 in alto e i collegamenti dei due led sulla destra.

L'inserimento dei componenti sulla basetta sperimentale.
i relè sono rispettivamente sugli zoccoli "DG1" e "DG2.
"Led1" e "Led2" sono collegati con dei ponticelli tra gli zoccoli "AUX" e DATA", rispettivamente su GPIO0 e GPIO2.
Si noti il collegamento di HC-05: il piedino all'estrema destra NON è collegato alla scheda. Non è un errore nell'immagine; semplicemente non viene usato e se fosse collegato renderebbe errata la successione dei pin di alimentazione, ecc.
HC-06 ha solo quattro pin, quindi verrà collegato sull'estrema destra dello zoccolo "I2C2". Prestare comunque molta attenzione ai collegamenti.  Se si usano i relè, è necessario collegare un alimentatore esterno sulla presa "PWR". Il jumper JP1 deve essere settato su +3v per non danneggiare HC-05 o HC06.













Controllo di QUATTRO (o cinque) led/relè a mezzo terminale



Questo programma è una semplice evoluzione del precedente e mostra come ampliare le possibilità di conntrollo via Bluetooth con ESP8266.  Nel programma precedente sono state utilizzate le porte GPIO4 e GPIO5 per il modulo Bluetooth, e le porte GPIO0 e GPIO2 per controllare due led e/o relè.
Rimangono ancora tre porte tra quelle consigliate per l'uso degli utenti, e sono rispettivamente GPIO12, GPIO13, GPIO14, perciò potremmo controllare fino a 5 led e/o relè.
Sulla nostra basetta sono presenti solo tre led liberamente utilizzabili, quindi se ne volessimo collegare un quarto, sarà necessario inserirlo su di una porta dello zoccolo "DATA", che indirizzeremo correttamente allo scopo.
Poichè esistono dei moduli commerciali a prezzo veramente contenuto con quattro relè, il progetto verrà scritto con queste specifiche, utilizzando , oltre le porte
GPIO0 e GPIO2, anche le GPIO12 e GPIO13. Sarà semplice, nel caso si volessero usare cinque periferiche, aggiungere al programma anche le linee per gestire la porta GPIO14.



Il problema dei comandi per l'accensione/spegnimento dei relè



Ho riscontrato che ci può essere un problema sui comandi relativi all'accensione e spegnimento delle periferiche. Abitualmente un relè KY-019 o un led si attivano/accendono quando la porta viene portata a livello "HIGH" e disattivano/spengono quando essa ritorna a livello "LOW", e questo vale anche per la nostra basetta sperimentale, mentre ho notato che utilizzando il modulo commerciale con un relè (immagine in alto a sinistra), tutto funziona alla rovescia, per cui quando si dà il comando di accensione, si spegne il led o il relè, e quando si invia il comando di spegnimento, esso si attiva!   Per approfondire l'argomento, vedi la pagina relativa alla gestione dei relè
Ho inserito nel programma una variabile "ChangeVal". Se la variabile è uguale a "1", i comandi sono rovesciati (acceso = "LOW"), adatti per molti moduli commerciali di relè; per qualsiasi altro valore numerico (per restare in ambito digitale, uso "0"), i comandi sono standard (acceso = "HIGH") e sono adatti per i led e i relè su scheda KY-019.
 


ch1
La variabile numerica changeVal

r0
Se changeVal = 1 il relè si attiva se il suo valore è "LOW";


ch1
se changeVal è diverso da 1, il relè si attiva se il suo valore è "HIGH".

schema 4 relè

4bt
Lo schema elettrico del collegamento verso HC05/HC06 e il blocco di 4 relè



4rele
Il rendering dei componenti sulla basetta sperimentale.
Per motivi di impaginazione, è leggermente più piccola che in originale.
HC-05/HC06 sono connessi sullo zoccolo I2C2. Attenzione al collegamento corretto!
Il gruppo di 4 relè è connesso dulle porte GPIO0/2/14/12. JP2 deve essere settato a +5v.
Necessaria l'alimentazione con un alimentatore esterno che fornisca 6/9 v connesso su "PWR"




I comandi per la gestione dei relè:

1 on:     accende il "Relay1", collegato alla porta GPIO0 dello zoccolo "DATA";
1 off:     spegne il il "Relay1";
2 on:     accende il "Relay2", collegato alla porta GPIO2 dello zoccolo "DATA";
2 off:     spegne il il "Relay1";
3 on:     accende il "Relay3", collegato alla porta GPIO14 dello zoccolo "DATA";
3 off:     spegne il il "Relay3";
4 on:     accende il "Relay4", collegato alla porta GPIO12 dello zoccolo "DATA";
4 off:     spegne il il "Relay4";
14 on:   accende contemporaneamente tutti i relè;
14 off:  
spegne contemporaneamente etutti i relè:
14 son:
accende i relè in sequenza, con un piccolo ritardo tra le quattro accensioni;
14 soff:
spegne  i relè in sequenza, con un piccolo ritardo tra i quattro spegnimenti.



Clicca qui per visualizzare il programma

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

Naturalmente i relè possono essere sostituiti da led; se si collegano allo zoccolo "DATA", è necessario interporre tra led e alimentazione una resistenza da 220 ohm, per evitare che si brucino rapidamente.

Attenzione: se si intende collegare ai relè apparecchi connessi alla rete elettrica, verificare di averne la competenza o oppure affidarsi a un tecnico qualificato.














Controllo di led/relè con alcuni switch




swtc

Nel programma seguente vedremo come gestire quattro relè (o led) con altrettanti interruttori.













Controllo di QUATTRO (o cinque) relè per mezzo di interruttori



Questo programma è molto simile al precedente; semplicemente sono stati sostituiti i comandi, in modo che non sia necessariousare il terminale, ma i relè (o led) sono comandati da interruttori, molto più rapidi da usare che non scrivere comandi su di un terminale.
Valgono quindi le stesse considerazioni del programma precedente; anche in questo si può gestire un relè/led aggiuntivo, collegandolo sulla porta GPIO13 di ESP8266, aggiungendo le righe di programma necessarie.
Pure per questo programma è stata inserita la variante "changeVal", per adattare i comandi sia per relè commerciali che per i led, che spesso usano una logica diversa. Di default la variabile e posta a "1", ovvero adatta per le scehe commerciali con 4 relè.



Anche lo schema elettrico e quello di collegamento della scheda Bluetooth e dei relè è identico a quelli presentati nel programma precedente.   Clicca qui per visualizzarlo.

I comandi usati per questo programma:

-Switch1: accendi/spegni il "Relay1" (GPIO0)
-Switch2: accendi/spegni il "Relay2" (GPIO2)
-Switch3: accendi/spegni il "Relay3" (GPIO14)
-Switch4: accendi/spegni il "Relay4" (GPIO12)
- Switch5: accendi/spegni TUTTI i relè
-Switch6:
accendi/spegni TUTTI i relè in swequenza

Gli switch da 7 a 10 non sono usati in questo programma.

Clicca qui per visualizzare il programma

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

Naturalmente i relè possono essere sostituiti da led; se si collegano allo zoccolo "DATA", è necessario interporre tra led e alimentazione una resistenza da 220 ohm, per evitare che si brucino rapidamente.

Attenzione: se si intende collegare ai relè apparecchi connessi alla rete elettrica, verificare di averne la competenza o oppure affidarsi a un tecnico qualificato.

10 sw
Schermata del controllo con switch.
sono attivi i relè 2 e 4.














Controllo cromatico di un led a tre colori




rgbl

In questo programma si può controllare la tonalità di colore di un led RGB (Red Green Blue), ovvero di un led a tre colori.













Controllo di un led RGB



Un led RGB possiede al suo interno tre sorgenti di colore, rosso, verde, blu e in base all'intensità che si può controllare singolarmente, permette di ottenere un grande numero di sfumature di colori diversi. Gli schermi di computer, televisori, ecc. hanno al loro interno migliaia, addirittura milioni di questi minuscoli led.
Con questo programma si potrà variare graficamente la tonalità di colore.

ky016
led RGB Ky-016



Dopo aver agganciato il modulo Bluetooth (vedi inizio pagina)Selezionare la seconda opzione di "Arduino Bluetooth Control", ovvero RGB LED Control.
Apparirà un disco con diverse sfumature di colore, simile a quello presente nell'immagine di destra. Esercitando pressione con il dito  sulla sezione desiderata, il led RGB muterà la  tonalità sul colore prescelto.

disco col



sc el

Lo schema elettrico del collegamento di un led a tre colori. E' rappresentato sia il collegamento di un led su basetta (come KY-016) che un semplice led a tre colori, che viene collegato alle porte di ESP8266 con tre resistenze da 220 ohm, per l'imitare la corrente che attraversa il led.



rgb_bt
Schema di collegamento con la basetta sperimentale in formato 1:1
Mostra il collegamento sia con KY-016 che con un led a 3 colori con resistenze da 220 ohm.

Lo stesso schema, però visto sulla basetta sperimentale



Clicca qui per visualizzare il programma

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














Controllo di led/relè a mezzo vocale





voice c

Il controllo vocale è la sesta voce del menù, ed è molto scenografico e divertente; inoltre il riconoscimento vocale è ottimo: gli errori di interpretazione sono veramente pochissimi.













Controllare QUATTRO (o cinque) relè con il comando vocale



Aprendo questo menù, in basso appare l'icona di un microfono. Premendolo si è invitati a dire una frase. Se essa verrà riconosciuta e risulterà corretta nel confronto di quanto scritto nel programma, allora verrà eseguito il comando.



Anche in questo programma, interagendo con relè, è stata introdotta la variabile "changeVal" che permette di invertire i comandi "HIGH" e "LOW" relativi all'accensione e spegnimento delle periferiche, in quanto i led si accendono quando essa è posta ad "HIGH", mentre i relè commerciali su scheda per la maggior parte si attivano quando viene posta a "LOW". Perciò, invece di entrare nel programma  e sostituire manualmente questi valori, è sufficiente porre  "changeVal" = 0 per i relè, e "changeVal" = 1 per i led.

ch1
La variabile numerica changeVal

r0
Se changeVal = 1 il relè si attiva se il suo valore è "LOW";




4bt
Lo schema elettrico del collegamento verso HC05/HC06 e il blocco di 4 relè




4rele
Il rendering dei componenti sulla basetta sperimentale.
Per motivi di impaginazione, è leggermente più piccola che in originale.
HC-05/HC06 sono connessi sullo zoccolo I2C2. Attenzione al collegamento corretto!
Il gruppo di 4 relè è connesso dulle porte GPIO0/2/14/12. JP2 deve essere settato a +5v.
Necessaria l'alimentazione con un alimentatore esterno che fornisca 6/9 v connesso su "PWR"



I comandi vocali per gestire l'attivazione/disattivazione dei relè (o led):
- "accendi il primo"  attiva il primo relè/led collegato alla porta GPIO0;
- "accendi il secondo"  attiva il secondo relè/led collegato alla porta GPIO2;
- "accendi il terzo"  attiva il terzo relè/led collegato alla porta GPIO14;
- "accendi il quarto"  attiva il quarto relè/led collegato alla porta GPIO12;
- "spegni il primo"  disattiva il primo relè/led collegato alla porta GPIO0;
- "spegni il secondodisattiva il secondo relè/led collegato alla porta GPIO2;
- "spegni il terzodisattiva il terzo relè/led collegato alla porta GPIO14;
- "spegni il quartodisattiva il quarto relè/led collegato alla porta GPIO12;
- "accendi tutti"  attiva contemporaneamente tutti i relè/led;
- "spegni tutti"  disattiva contemporaneamente tutti i relè/led;
- "accendi tutti in sequenza"  attiva tutti i relè/led con una piccola pausa tra uno e l'altro;
- "spegni tutti in sequenza"  disattiva tutti i relè/led con una piccola pausa tra uno e l'altro.




Naturalmente i relè possono essere sostituiti da led; se si collegano allo zoccolo "DATA", è necessario interporre tra led e alimentazione una resistenza da 220 ohm, per evitare che si brucino rapidamente.

Attenzione: se si intende collegare ai relè apparecchi connessi alla rete elettrica, verificare di averne la competenza o oppure affidarsi a un tecnico qualificato.



Clicca qui per visualizzare il programma

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







Per contatti: info@ethicaldiy.org