Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Progetti hardware

Basetta sperimentale per ESP8266

Dati costruttivi per la basetta sperimentale

Download dei dati necessari per la realizzazione della basetta sperimentale



Informazioni di base

Come installare la IDE di Arduino

Configurazione di ESP8266

Caricamento dei programmi

Le librerie necessarie



Programmi vari

Creare un web server

Temperatura e umidità con DHT11/DHT21/DHT22

Controllo di 1/2 relè via WiFi

DHT11/DHT21/DHT22  + 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

Verificare l'apertura di uno o più vani

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 dei led/relè



Programmi con MQTT (Mosquitto)

Inviare /ricevere dati per mezzo di MQTT



Programmi con LittleFS





Link utili

Visualizzazione di link utili per ESPxxx





 















La basetta sperimentale per ESP8266 - ESP12E

L'ESP8266 _ESP12E è un eccellente chip, che permette di realizzare una vasta serie di programmi. Esso ha un costo modesto, un bassissimo consumo energetico, diverse porte digitali e una analogica disponibile. Vedi la pagina dedicata ai pin disponibili.
Specialmente quando si debbono testare sketch complessi, con varie periferiche, sulla basetta millefori si dovranno collegare molti cavi, con il richhio di errori e malfunzionamenti. Inoltre quando si assembla uno schema complesso, che richiede parecchio tempo per essere realizzato, poi si è restii a disassemlarlo, per provare altri schemi.

I vantaggi della basetta sperimentale e didattica:
  • si potranno realizzare tantissimi progetti con grande rapidità;
  •  dieci zoccoli predisposti per ospitare decine dei moduli più comuni;
  • senza l'uso di cavetti, o utilizzandone una minima quantità;
  • on board due pulsanti e tre led per simulare la presenza di sensori e relè;
  • predisposizione per l'alimentazione esterna.

Clicca qui per visualizzare la basetta

Clicca qui per visualizzare i conflitti

Clicca qui per i moduli che vanno su ogni zoccolo

Clicca qui per le istruzioni per la costruzione della basetta sperimentale

Clicca qui per il download dei file necessari per la costruzione della basetta


esp12e

ESP8266 - ESP12E



Una soluzione personale al problema: realizzare una basetta ad hoc.



Prima di lanciarmi nel progetto definitivo, che ha prodotto una basetta di stile professionale, ne ho realizzate un paio di modelli in modo "arigianale", disegnando personalmente le tracce, che poi ho stampato sulla basetta con superficie ramata, trattata con l'acido, eseguta la serigrafia superiore, la foratura, ecc. Ecco l'immagina della seconda versione.
Rispetto alla terza versione, aveva già a bordo un paio di pulsanti e tre led, però la gestione delle periferiche era piuttosto spartana e richiedeva dei cavi di collegamento, ma era comunque utile per i primi test.

ver.2
Ecco la seconda versione in formato 1:1



La basetta nella sua versione definitiva



esp12
La basetta in formato 1:1, versione definitiva, V3.

La basetta sperimentale per ESP8266 nella versione ESP12E. In basso al centro sii vede l'alloggiameto per il microcontroller, sia nella versione con chip seriale CH340C e CP2101/2.
Oltre agli zoccoli previsti per alloggiare una vasta gamma di sensori/attuatori e display, sono presenti on-board due pulsanti e tre led che possono servire per effettuare alcuni test rapidi.
La differenza tra le due versioni è subito evidente.

Ora eseguiremo un'analisi dettagliata delle varie parti logiche che compongono la basetta.



chip
L'alloggiamento del chip principale.


In questa sezione si inserisce il microcontroller. Le due versioni, quella con adattatore seriale CP2101/2 e CH340C, hanno la stessa piedinatura, ma un ingombro laterale diverso.
ESP12E con chip CP2101/2 è più stretto, e si inserisce nel profilo indicato da "NODE1"; mentre quello con chip CH340C usa lo zoccolo di destra più esterno, etichettato "ESP2".
Gli zoccoli ALL_SX e ALL_DX, replicano fedelmente i piedini dell'ESP8266
rispettivamente di sinistra e di destra. Disponendo di queste uscite, si possno effettuare tutti i collegamenti al nostro ESP8266; semplicemente i connettori sono femmine invece che maschi.





analogic
In questa sezione ci sono (da sinistra a destra): gli zoccoli relativi alla sezione analogica, a quella dedicata ai moduli SPI e infine a quelli che seguono il protocollo I2C. Nel dettaglio:
  • AD1: su questo zoccolo si possono inserire moduli "misti", ovvero che abbiano un uscita analogica e una digitale. Quest'ultima è collegata su d5/GPIO14. Essendo questo GPIO comune anche allo zoccolo SPI1, non sarà possibile inserire contemporaneamente dei moduli su entrambi gli zoccoli, pena il conflitto.
    AD1 va in conflitto anche con AN1.
    Clicca qui per la lista dei moduli.
  • AN1: su di esso si possono inserire i moduli analogici più "puri". Da ricordare che ADCO accetta solo moduli in ingresso, e non in uscita. AN1 e AD1 usano la stessa porta analogica; per cui non si possono usare contemporaneamente. Clicca qui per la lista dei moduli.

  • SPI1: in questa posizione si possono collegare i moduli che usano il protocollo "SPI", come per esempio il modulo RFID RF522. Utilizza le porte d5/Sclk, d6/Miso, d7/Mosi, d8/Cs. Non si può usare contemporanea-mente ad AD1 e a DG4, pena conflitti. Su questo zoccolo si possono collegare altri moduli digitali complessi, che utilizzino fino a quattro porte. Nel caso la sequenza di pin non fosse coerente con il modulo che si vuole inserire, si può utilizzare una serie di cavetti di collegamento. Clicca qui per la lista dei moduli.

  • I2C1: zoccolo per moduli I2C. Clicca qui per la lista dei moduli.

  • I2C2: zoccolo per moduli I2C. Clicca qui per la lista dei moduli.

  • I2C3: zoccolo per moduli I2C. Clicca qui per la lista dei moduli.

Nota 1: I2C1, I2C2, I2C3 permettono di collegare, anche simultaneamente, tre moduli I2C. Ogni zoccolo ha i piedini in configurazioni diverse, il modo da poter accogliere un vasto numero di periferiche.

Nota 2: naturalmente sugli zoccoli I2C1, I2C2, I2C3 possono essere connessi anche dei semplici moduli digitali, con una o due uscite. Però a differenza di quelli I2C, non possono essere collegati più moduli alla stessa porta.

Nota 3: JP1 (riquadro giallo) permette, utilizzando la corretta ponticellatura dei pin maschi, di utilizzare per questi moduli una tensione di +3,3v o di 5v (solo se collegato ad un alimentatotre esterno. Per non danneggiare ESP8266, usare tutte le volte che possibili solo la tensione di 3,3v.




digital

In questa sezione, si vedono le porte per i moduli digitali: DG1, DG2, DG3, DG4.
Ecco la descrizione dettagliata:
  • DG1: accetta semplici moduli digitali, quali relè e moltissimi altri sensori. Usa la porta d3/GPIO0. Clicca qui per la lista dei moduli.

  • DG2: accetta semplici moduli digitali, quali relè e moltissimi altri sensori. Usa la porta d4/GPIO2. Usando la stessa porta, va in conflitto con DG3.
    Clicca qui per la lista dei moduli.

  • DG3: si possono collegare altri moduli Quali PIR), avendo una disposizione dei piedini diversa rispetto a DG1 e DG2. Va in conflitto con DG2, usando la stessa porta, d4/GPIO2. Clicca qui per la lista dei moduli.

  • DG4: permette di connettere moduli digitali più complessi, che utilizzano due porte, quali il sensore a ultrasuoni. Utilizza le porte d5/Sclk e d5/Miso. Pertanto va in conflitto con SDI1. Clicca qui per la lista dei moduli.

Nota 1: JP1 (riquadro giallo) permette, utilizzando la corretta ponticellatura dei pin maschi, di utilizzare per questi moduli una tensione di +3,3v o di 5v (solo se collegato ad un alimentatotre esterno. Per non danneggiare ESP8266, usare tutte le volte che possibili solo la tensione di 3,3v.




Nell'immagine di sinistra si vedono due zoccoli, BT1 e BT2, su cui verranno saldati due pulsanti e tre led, LD1, LD2, LD3, con le loro resistenze. Essi sono stati inseriti nativamente sulla basetta sperimentale per poter realizzare vari progetti. I due pulsanti possono sostituire per i test tutti quei sensori che si comportano come switch digitali, con valore "0" o "1", quali sensori magetici, radar, pir, ultrasuoni, luci, suoni, ecc.; mentre i led possono essere usati come indicatori, oppure simulare la presenza di relè.
Essi sono connessi al connettore presente sulla destra, evidenziata in giallo; possono essere collegati con un breve cavo al connettore inferiore "data" selezionando individualmente a quale porta collegarli, avendo quindi la massima libertà e flessibilità.


aux
I pulsanti e i led on-board



dx

Questa immagine, che visualizza la zona destra in basso della basetta, mostra un connettore universale, denominato "DATA". Infatti su questo connettore sono presenti tutte le porte che possono essere facilmente utilizzate. Sulla sinistra ci sono altri due file di connettori: uno per la tensione dei +3,3v e l'altro della massa. Sopra di essi sono presenti altri due piccoli connettori, uno per i +5v (solo se la basetta è connessa all'alimentatore esterno e questa tensione è assolutamente necessaria) e il successivo ancora per la massa.

Sotto di essi si vede un altro piccolo connettore con solo sue pin maschi: ponticellandolo, per qualche secondo, si "risveglia" l ESP8266 da un "deep sleep".

Clicca qui per la lista dei moduli.

Nota 1: alimentare i moduli esterni a +5v solo se è assolutamente necessario, perchè si potrebbe danneggiare l'ESP8266.
Nota 2: praticamente usando questo zoccolo, si possono connettere qualsiasi modulo presenti nelle tabelle relative ai singoli zoccoli, e probabilmente anche molti altri.




Si può testare questa porta, usando ben otto porte digitali: da d1 a d8, collegando una batteria da otto led, che funzionano perfettamente anche a 3,3v. Ne esistono due versioni, e bisogna verificare se si ha la versione ad anodo comune o a catodo comune.
Collegare i pin d1/./d8 dei led agli omonimi d1/./d8 del connettore "DATA". Se i led hanno l'anodo in comune, collegare "COM" al +3,3v delle basetta; se invece i led hanno il catodo comune, collegare "COM" alla GND della nostra basetta.
Clicca qui per visualizzare il programma ad anodo comune;
Clicca qui per scaricare in formato ".zip"
il programma ad anodo comune;
Clicca qui per visualizzare il programma a catodo comune;
Clicca qui per scaricare in formato ".zip"
il programma a catodo comune.

Nota: i led sostituiscono egregiamente i relè nelle procedure di test.

8 led
il modulo da 8 led



Ed infine, le zone predisposte per l'alimentazione: nel riquadro rosa, si vede il connettore per la'imentatore esterno e il led con la sua resistenza che segnala che la basetta è alimentata.
Il semiconduttore L7805 portaa +5v l'alimentazione prelevata dal connettore a cui si inserisce l'alimentatore esterna, che può essere compresa tra 6 e 10v. I condensatori C1 e C2 livellano il valore della tensione esterna. Dei jumper JP1 e JP2 sono già stati illustrati precedentemente.
Nota: l'alimentazione a +5v è attiva solo se l'alimentatore esterna è collegato al connettore della basetta sperimentale.

alim
Le parti coinvolte per la gestione dell'alimentazione.



45
Il rendering in 3D della basetta sperimentale









I conflitti nell'uso delle porte della basetta sperimentale



L'ESP8266 -ESP12E monta a bordo 1 porta analogica e 8 porte digitali che possono essere utilizzate facilmente e senza problemi. Progettando la basetta, e nel tentativo di inserire più zoccoli che possano ospitare una vasta gamma di moduli, ci si trova inevitabilmente nel dubbio di quali porte attribuire a ogni connettore, e purtroppo è necessario fare delle scelte, non sempre facili.
Poichè le porte a disposizione non sono tantissime, nel corso della realizzazione dei programmi, sarà necessario fare attenzione a non creare conflitti.
La seguente basetta pemetterà di verificare rapidamente come procedere.

conflitti

lista
Ecco la lista degli zoccoli
che non possono essere
usati contemporaneamente,
pena conflitti
Gli zoccoli che usano le stesse porte, usualmente non possono usati contemporaneamente, pena la creazione di conflitti e malfunzionamenti.
Fanno eccezione:
  •  i moduli che usano il protocollo I2C; nel caso le singole periferiche abbiano indirizzi interni differenti, possono usare contemporaneamente le porte GPIO5 e GPIO4,  infatti sono di colore verde;
  • i moduli che pur non seguendo il protocollo I2C hanno diversi indirizzi interni, come per esempio il misuratore di temperatura digitale 18B20.
DG1, usa la porta GPIO0, che non è utilizzata in alcun altro zoccolo. Perciò potra sempre essere utilizzato.




I moduli che possono essere connessi su ogni zoccolo



In questo paragrafo si trova la lista, piuttosto articolata, dei sensori che possono essere connessi su ogni zoccolo disponibile. Questa lista non è esaustiva, perché il numero di periferiche che possono essere connessi al nostro ESP8266, come per Arduino, sono tantissimi.
Qui troverete la lista di quelli che semplicemente ho testato personalmente, per cui nel tempo verrà sicuramente ampliata.



I moduli adatti per AD1:

ad1
Note:
L'ultima colonna a destra mostra se i sensori hanno superato il test dell'alimentazione a 3,3v.
I sensori di gas in particolare, che hanno un notevole assorbimento, specialmente in riscaldamento, non possono essere sostenuti dai pochi mA forniti da ESP01. In questo caso necessitano di alimentazione a 5v, che però potrebbe danneggiare il microcontroller. Attenzione, quindi!

Alcuni moduli, pur utilizzando una porta analogica e una digitale, purtroppo hanno una diversa piedinatura; pertanto devono essere collegati con dei cavetti allo zoccolo, facendo attenzione  alle corrispondenze.



I moduli adatti per AN1:

an1
Note:
valgono le stesse indicazioni geneali che per AD1.
Su questo zoccolo possono essere collegati vari semplici sensori che abitualmente sono connessi sulle porte digitali.



I moduli adatti per SPI1:

spi1
Note:
su questo zoccolo si può connettere direttamente solo il modulo RFID RF522. Per tutti gli altri è necessario usare dei cavetti, facendo attenzione alla loro sequenza.

Questo connettore si collega a ben cinque porte dell'ESP8266. E' quasi una porta universale...

Non si possono collegare contemporaneamente moduli su AD1 e DG4, pena conflitti e malfunzionamenti.




I moduli adatti per I2C1:


i2c1


Note:

tutti i moduli che si connettono con I2C2 e I2C3 possono essere connessi anche su questo zoccolo, usando dei cavetti, da collegare con attenzione.

I moduli che seguono il protocollo I2C possono essere connessi su uno qualsiasi di questi zoccoli, se hanno indirizzi interni differenti.



I moduli adatti per I2C2:

i2c2
Note:

tutti i moduli che si connettono con I2C1 e I2C3 possono essere connessi anche su questo zoccolo, usando dei cavetti, da collegare con attenzione.

I moduli che seguono il protocollo I2C possono essere connessi su uno qualsiasi di questi zoccoli, se hanno indirizzi interni differenti.




I moduli adatti per I2C3:




i2c3




Note:

tutti i moduli che si connettono con I2C1 e I2C2 possono essere connessi anche su questo zoccolo, usando dei cavetti, da collegare con attenzione.

I moduli che seguono il protocollo I2C possono essere connessi su uno qualsiasi di questi zoccoli, se hanno indirizzi interni differenti.

il modulo MAX9814 monta su questo zoccolo, ma non segue I2C, pertanto va in confitto con altre periferiche inserite su I2C1 e I2C2!




I moduli adatti per DG1 - DG2:


dg1/2
 Note:
 questi zoccoli hanno la stessa configurazione.
 Però DG1 usa la porta GPIO0; DG2 usa GPIO2.


 Il trasmettitore a 433 MHz con 3,3v ha una portata ridotta.

 Alcuni moduli devono essere ruotati di 180° quando          .verranno inseriti nello zoccolo; altri, come lo shok sensor e 18B20 non hanno superato il test a 3,3v.

Naturalmente usando dei cavetti, ognuno di questi moduli può essere connesso sullo zoccolo DG3.

 Questo zoccolo non può essere usato in contemporanea con .DG3, perchè usano la stessa porta dell'ESP8266.




I moduli adatti per DG3:

dg3



Note:

I moduli PIR non amano la tensione a 3,3v...

Naturalmente usando dei cavetti, ognuno di questi moduli può essere connesso sullo zoccolo DG1.

 Questo zoccolo non può essere usato in contemporanea con .DG2, perchè usano la stessa porta dell'ESP8266.




I moduli adatti per DG4:

dg4


Note:

come si può vedere, alcuni moduli non funzionano correttamente a 3,3v.

Alcune periferiche usano due porte per connettersi al microcontroller, ma richiedono un cavetto causa diversa disposizione delle connessioni.

 Questo zoccolo non può essere usato in contemporanea
con .SPI1, perchè usano alcune porte in comune.



I moduli adatti per "DATA":

data

Note:


In questa tabella sono inseriti solo i moduli che richiedono più di cinque porte, e che quindi non possono essere connessi singolarmente sugli altri zoccoli.

Naturalmente si può collegare
su questo connettore, praticamente universale, qualsiasi modulo descritto per i singoli zoccoli.



































Per contatti: info@ethicaldiy.org

 











No