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





 















ESP8266 - ESP12E
Pin e configurazione

In questa pagina potrai trovare alcune brevi note su come configurare la IDE di Arduino per poter trasferire i tuoi sketch sui microcontroller con processore ESP8266, ed inoltre la piedinatura per ESP8266 - ESP12E, oltre ad alcuni link utili per l'approfondimento di questi temi.









La configurazione della IDE di Arduino per ESP01 - ESP8266




Per caricare un programma su di un ESP01 o ESP8266, che usano lo stesso processore, è necessario eseguire una piccola configurazione della IDE di Arduino, identica per entrambi i microcontroller. Per prima cosa, aprire la IDE stessa, selezionare "file" e poi "preferences" ( se la IDE è in inglese) o file/preferenze in italiano.

Nota: l'immagine riguarda la IDE nella versione 1.8.19. Nel frattempo è stata rilasciata la versione 2.x.x. Se si desidera vedere le istruzioni per questa versione (comunque molto simile alla precedente versione), si possono reperire le informazioni (in inglese) presso il sito "randomnerdstutorial", al seguente link:
https://randomnerdtutorials.com/installing-esp8266-nodemcu-arduino-ide-2-0/



pref

progr_2



Quando si appre la finestra, Spostarsi su "Additionals Boards manager URLs/URL aggiuntive per il Gestore schede e inserire questo link: http://arduino.esp8266.com/stable/package_esp8266com_index.json , che permette di gestire il chip 8266. e confermare con OK.

Nota: nel caso avessimo già inserito un'altra url, per esempio per l'ESP32, separarle da una virgola.


Aprire Tools/Boards/Boards Manager (Strumenti/Scheda/Gestore schede):

pref3


pref_4



Nel campo di ricerca inserire "esp8266".
Quando appare "esp8266 by ESP8266 Community" e premere su "Install".
Dopo pochi secondi la libreria verrà installata.
Per verificare se tutto è andato a buon fine, aprire la IDE di Arduino, cliccare su Tools/Board/Board Manager e selezionare "Generic ESP8266 Module"/"Strumenti/Scheda/Gestore schede/".


inf5


pref_6



Si vedono le informazioni della scheda. In genere vanno bene i settaggi proposti.
Ricordarsi di selezionare pa porta di comunicazione: Con Linux in genere è "/dev/tty/USB0"; con Windows in genere è "COMx".
A questo punto si può caricare il primo programma che normapmente si usa: il famosissimo "blink": il programma che semplicemente fa lampeggiare il led interno e vedere se funziona.
Per caricarlo sulla IDE di Arduino:
file
    esempi
             01 basics
                         blink

Poi cliccare sul pulsante con la freccia verso destra per caricare il programma sul microcontroller.





blink
Il programma è tutto compreso nel rettangolo...



loading
In caricamento...


Nella immagine di sinistra si vede il processo di caricamento dello sketch, mentre a destra esso è terminato. Eè sufficiente scollegare e ricollegare il microcontroller alla USB per vedere il led lampeggiare. Operazione compiuta!
loaded
... caricamento terminato.



A questo punto, il nostro microcontroller è pronto per caricare e testare tutti i nostri progetti!






La piedinatura di ESP8266 -ESP12E


esp_pin

Ecco lìimmagine (appena ingrandita) di un ESP8266 - ESP12E con la descrizione sintetica dei pin presenti sul microcontroller.
La piedinatura è identica sia per il modello con adattatore seriale CH340C che con CP2101/2.

L'immagine è stata tratta dal sito "Last Minute Engineers", che ringrazio.







Descrizione e uso dei Pin



ESP8266 include:
  • 17 GPIO
  • SPI
  • I2C (implementato via software)
  • I2S (interfaccia con DMA)
  • UART
  • ADC (porta analogica) a 10 bit (0-1023)



I pin migliori pin da usare nei programmi

A differenza di Arduino, in cui tutti i pin analogici e digitali possono essere utilizzati per sviluppare i nostri programmi, con ESP8266 è necessaruio fare una scelta accurata, pena malfunzionamenti o impossibilità di avviare il microcontroller.
Inoltre è importante notare che i codici serigrafati sul chip non corrispondono ai GPIO, per cui è necessaria una tabella di conversione, con alcune indicazioni.




Chip

GPIO
Ingresso
Uscita
Note
...D0...
..GPIO16...
no interrupt
manca il supporto per
il PWM e I2C
High all'avvio. Usato per riavviarlo
dal "deep sleep".
D1
GPIO5
Ok
Ok
Usato per SCL (I2C)
D2
GPIO4
Ok
Ok
Usato per SDA (I2C)
D3
GPIO0
"High" durante il boot
Ok
Connesso al pulsante "Flash". L'avvio
fallisce se settato a "Low".
D4
GPIO2
"High" durante il boot Ok
High all'avvio. Connesso al led interno.
L'avvio fallisce se settato a "Low".
D5
GPIO14
Ok
Ok
SPI (SCLK)
D6
GPIO12
Ok
Ok
SPI (MISO)
D7
GPIO13
Ok
Ok
SPI (MOSI)
D8
GPIO15
"Low" durante il boot
Ok
SPI (CS)
L'avvio fallisce se settato a "High".
RX
GPIO3
Ok
Pin per Rx
High all'avvio
TX
GPIO1
Pin per Tx
Ok
High all'avvio L'avvio fallisce se settato
a "Low". Uscita del debug all'avvio.
A0
ADC0
Input analogico
NO




GPIO connessi al chip "Flash"

GPIO6 e GPIO11 sono connessi al chip di Flash, per cui non è raccomandato usarli nei nostri programmi.





I pin usati durante l'avvio
  • GPIO16:  il pin è High all'avvio
  • GPIO0:    il boot fallisce se settato a Low
  • GPIO2:    il pin è High all'avvio; il boot fallisce se settato a Low
  • GPIO15:  il boot fallisce se settato a High
  • GPIO3:    il pin è High all'avvio
  • GPIO1:    il pin è High all'avvio; il boot fallisce se settato a Low
  • GPIO10:  il pin è High all'avvio
  • GPIO9:    il pin è High all'avvio





I pin settati "High" all'avvio

Ci sono alcuni pin che forniscono una tensione di 3,3 volt all'avvio. Ciò potrebbe creare dei problemi se si collegano relè o altre periferiche all'avvio. Ecco i pin che cono attivi all'avvio:
GPIO16,  GPIO3,  GPIO1,  GPIO10,  GPIO9

Inoltre, gli altri GPIO, eccettuati GPIO4 e GPIO5, possono fornire una leggera tensione durante l'avvio, e questo potrebbe creare dei problemi se si collegano relè o transistor ad essi.

Perciò
GPIO4 e GPIO5 sono i GPIO più sicuri nel caso si utilizzino relè o transistor.





Ingressi analogici

ESP8266 - ESP12E hanno un'unica porta analogica, utilizzabile solo in ingresso. Accetta tensioni tra 0 e 3,3v, con risoluzione a 10 bit (0 - 1023)





Il led integrato

ESP12E possiede un led integrato, connesso al GPIO2. Il led lavora con logica invertita. Si accende quando è settato a Low e si spegne se settato a High.





Il pin di Reset (RST)

Quando il pin RST è settato a Low, resetta il Chip. E' la stessa azione che si ottiene premendo il tasto di reset.





La modalità "bootloader"

Quando il GPIO0 è settato a Low, forza l'ESP8266 nella modalità "bootloader". Si ottiene lo stesso effetto premendo il pulsante Flash/Boot.





"Svegliare" il chip dal "deep sleep"

il GPIO16 può essere utilizzato per svegliare il chip dal deep sleep. Per fare ciò, va connesso al pin RST





Il protocollo I2C

L'ESP8266 non ha dei pin hardware per I2C, ma può essere implementato via hardware. Ecco i pin:
  • GPIO5: SCL
  • GPIO4: SDA





Il protocollo SPI

I pin usati per SPI sono i seguenti:
  • GPIO12:  MISO
  • GPIO13:  MOSI
  • GPIO14:  SCLK
  • GPIO15:  CS





I pin PWM

Il PWM (Pulse Wave Modulation), permette di simulare, per esempio, la variazione di luminosità di un led.
I pin da GPIO0 a GPIO15 permettono l'effetto PWM via software. La risoluzione è a 10 bit (0 - 1023).





I pin di interrupt

L'esp8266 permette l'uso di interrupt su tutti i GPIO, tranne GPIO0.





Ho tradotto le informazioni da questo link: https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
Ringrazio i curatori del sito per la chiarezza e ricchezza delle informazioni.



Per contatti: info@ethicaldiy.org