In
questa pagina sono stati inseriti alcuni programmi di
carattere vario, utili anche per testare la scheda e le sue
potenzialità. Ecco i programmi presenti in questa pagina:
|
Test degli switch e dei led integrati nella basetta sperimentale |
![]() |
Abbiamo
pensato di inserire nella basetta sperimentale anche un paio
di touch-switch (BT1/BT2) e tre led di colori diversi (LED1,
LED2, LED3). Gli switch sulla basetta sono utili per esempio quando si deve attivare un attuatore, come un motore o un relè sia in locale che sulla rete Wi-Fi; i tre led sono sia degli indicatori luminosi a sè, ma sono in grado si simulare perfettamente l'accensione di un attuatore, come ad esempio un relè. Per aumentare la loro flessibilità, non sono collegati direttamente alle porte di ESP8266, ma confluiscono su uno zoccolo a cinque pin "AUX" (due per gli switch e tre per i led), che possono essere collegati con dei brevi connettori maschio-maschio a qualsiasi porta della nostra scheda. |
![]() Il rendering della basetta sperimentale in scala 1:1 Gli switch e i led sono siulla parte sinistra in basso della basetta, mentre i connettori (presenti sullo zoccolo "AUX") si trova sulla parte destra, proprio sopra al connettore "DATA" con cui possono interfacciarsi. |
In
questo programma di test, i led si interfacciano con ESP8266
usando le seguenti porte: LED1 --> GPIO4 LED2 --> GPIO5 LED3 --> GPIO14 BT1 --> GPIO13 BT2 --> GPIO12 Come si può vedere dall'immagine si è semplicemente ponticellato il connettore corrispondente del led o dello switch inserite su "AUX" con una delle potre di ESP8266 presenti sul connettore "universale" DATA. |
![]() |
Il
programma è assolutamente banale, ma permette di verificare
se tutto funziona regolarmente dopo l'assemblaggio dei
componenti sulla basetta. Appena si alimenta l'ESP8266 presente sulla basetta, il led "Led4" dovrebbe accendersi: è semplicemente quello che segnala che c'è tensione sul circuito, ed esso rimarrà sempre acceso fino a quando si alimenta il microcontroller. Dopo aver inserito i ponticelli tra "AUX" e "DATA", anche "Led2" dovrebbe essere acceso. Se si preme "BT1", si accenderanno contemporaneamente "Led1" e "Led3" e si spegneranno appena si allontanerà il dito dalla superficie sensibile dello switch. Viceversa, se si avvicina il dito a "BT2", "Led2" si spegnerà e si riaccenderà quando si allontanerà il dito. Naturalmente si può scrivere qualcosa di più creativo... Clicca qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
|
Creare un web server |
La
creazione di un webserver è il primo passo per scambiare
informazioni da e per la nostra scheda ESP8266 e la propria
rete WiFi o Internet. Questo programma semplicemente crea un server web, a cui il nostro router attribuisce un indirizzo IP del tipo 192.168.1.xxx. Quando il server sarà stato caricato, si potrà collegarsi ad esso aprendo un qualsiasi browser da pc, smartphone o tablet e leggere le informazioni o inviare dei comandi, in base a come sarà stato impostato il programma. Nel primo caso, scriverà semplicemente un breve messaggio sulla pagina web; nel secondo un pulsante presente sulla pagina web accende/spegne un led presente sulla basetta sperimentale. Questi sketch forniscono delle basi su cui poi creare un progetto personalizzato. Anche in queste pagine si trovano vari programmi che usano un web server. |
Il
primo esempio: "hello world" |
Questo
breve programma avvia un server web, verifica la correttezza
del collegamento e mostra una breve frase sul nostro
browser. E' necessario inserire SSID e password. |
![]() |
Aprendo il monitor seriale, si visualizza l'indirizzo che il router attribuisce alla nostra scheda. Ed ecco la scritta che appare sul nostro browser: |
![]() |
Clicca qui
per visualizzare il programma. Clicca qui per scaricare il programma in foirmato ".zip". I programmi sono stati presi e leggermente modificati dal sito: https://tttapa.github.io/ESP8266/Chap10%20-%20Simple%20Web%20Server.html ringraziamo i curatori per gli utili esempi. |
|
Il secondo esempio: accendi e
spegni un led! |
Come
per il primo programma, è necessario inserire la SSID (= il
nome esatto della propria rete) e la password di connessione
alla rete WiFi. Avviato il programma, aprire il monitor
seriale, verificare se il web server si è connesso e
prendere nota dell'indirizzo IP che è stato assegnato alla
nostra periferica. Abitualmente il DHCP attribuisce sempre
lo stesso indirizzo a una determinata periferica. In questo programma, il pulsante "Toggle LED" accende/spegne alternativamente il leda bordo della ESP8266. |
![]() La videata del programma per la gestione di un led |
Ma al di là di questa semplice configurazione, abbiamo pensato di andare un po' oltre... La porta che gestisce il led intenno di ESP8266 è GPIO2. Ma a questa porta è connesso anche uno zoccolo, DG2, che possiamo usare per gestire una qualche periferica: in questo caso abbiamo collegato un relè KY-019 e per esagerare, uno dei led presenti sulla nostra basetta: LED3 è stato connesso attraverso un ponticello tra "AUX" e DATA, anch'esso alla porta GPIO2. | ![]() Un
relè KY-019
|
![]() |
Lo
schema elettrico relativo al progetto per il web server. Sia il relè che il led (attraverso una resistenza da 220 ohm) sono collegati al piedino GPIO2 del nostro ESP8266. |
![]() Il rendering della basetta sperimentale in formato reale. Il relè è connesso sullo zoccolo DG2. Il led "LED3" è connesso alla porta GPIO2 (tra "AUX" e "DATA". |
Il
led onboard su ESP8266 funziona con logica inversa: si
accende quando laporta GPIO2 è a livello logico "LOW"
e si spegne quando viene portata a "HIGH".
Mentre iil relè KY-019 e il led "LED3" si accendono quando
la porta è in stato logico "HIGH" e si spengono quando
è "LOW". Perciò quando si preme il tasto "Toggle LED" si spegne il led onboard e si accendono il relè e LED; premendo ancora una volta il pulsante la situazione si inverte, e così via... Clicca qui per visualizzare il programma. Clicca qui per scaricare il programma in foirmato ".zip". Nota: se si intende collegare il relè per comandare una periferica connessa alla rete elettrica, verificare di avere le conoscenze adatte oppure di rivolgersi a un professionista qualificato. I programmi sono stati presi e leggermente modificati dal sito: https://tttapa.github.io/ESP8266/Chap10%20-%20Simple%20Web%20Server.html ringraziamo i curatori per gli utili esempi. |
|
Terzo esempio: Inserire una
pagina con richiesta di utente e password in un
web server |
In
questo terzo e ultimo programma sulla creazione di un web
server, con la creazione di una pagina web che richiede
utente e password per poter accedere al suo contenuto. |
Come
nei due programmi precedenti, è necessario inserire la SSID
della propria rete WiFi e la password. Lanciato il programma, verificare sul monitor seriale l'indirizzo IP della scheda. Aprire il browser e inserire l'indirizzo IP. Apparirà una schermata simile a quella che appare nel riquadro di destra. Come suggerito, il login e la password di default sono rispettivamente "John Doe" e "password123", che va modificata, intervenendo nello sketch, in base alle proprie preferenze. Nel caso di errore, apparirà il messaggio opportuno; altrimenti si entrera nella pagina attuale, piuttosto vuota... |
![]() |
Clicca qui
per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" Le istruzioni dettagliate, anche per questo progetto, possono essere reperite a questo link esterno: https://tttapa.github.io/ESP8266/Chap10%20-%20Simple%20Web%20Server.html ringraziamo i curatori per gli utili esempi. |
|
Ricevere la data e l'ora esatta |
L'ora esatta sembra un problema banale, ma a volte è necessario ottenerla in modo molto preciso, per esempio per sincronizzare due eventi, o alcuni apparecchi che devono lavorare in sincronia. |
![]() Come appare l'orario sul display OLED |
Ci sono due modi
per ottenere l'ora con ESP8266 (che al suo interno non
possiede un modulo orologio): 1 - collegarlo con un modulo RTC, quale un DS-1307, che lavorando con protocollo I2C è compatibile con il nostro ESP8266. Tuttavia in questo caso è necessario un ulteriore modulo, il quale però può nel tempo non essere del tutto preciso, oppure potrebbe scaricarsoi la batteria di tampone che mantiene il calcolo anche quando ESP8266 è spento; 2 - collegarsi a un server NPT, che fornisce l'ora esatta a tutta una serie di apparati che si collegano alla rete, quali server, cellulari, ecc. In questo caso, non avremo bisogno di ulteriori moduli, ma dovremo essere collegati a Internet a mezzo WiFi, cosa alquanto semplice, poichè ESP8266 ha questa funzione nativa. |
![]() DS-1307 |
I progetti con un server NTCIn questa pagina, vorremmo preentare due progetti, con la stessa base:nel primo, il nostro ESP01 si collega a un server NTP, e la data, l'ora e il giorno della settimana verrà visualizzato sul monitor seriale. In questo modo, lo sketch può essere integrato in uno più complesso, in cui per esempio è necessario sapere l'ora esatta in cui succede un determinato evento; nel secondo, l'ora, ecc. viene visualizzata su di un display OLED, trasformando il nostro ESP01 in un perfetto orologio digitale. |
Il primo progetto:
visualizzazione di data e ora sul monitor seriale |
Per
prima cosa, sarà necessario installare le librerie
necessarie, nel caso non fossero ancora presenti nella
cartella di Arduino. Esse sono: ESP8266WiFi.h NTPClient.h WiFiUdp.h Se non fosseroro già presenti nell'archivio delle librerie, la prima opzione sarà di tentare di scaricarle per mezzo della IDE di Arduino (Sketch/Include library/Manage libraries). N.b.: provare sempre a scaricare le librerie dalla IDE di Arduino, in quanto avrai sempre accesso alle ultime versioni e solo in caso negativo utilizzare quelle inserite in questa pagina. Clicca qui per visualizzare il programma Clicca qui
per scaricare scaricare il file
Dopo il caricamento e l'attesa di qualche secondo
necessario affinchè ESP8266 si agganci alla rete Wi-Fi,
sul monitor seriale apparirà qualcosa di simile alla
videata che appare sul lato destro Nota: ricordati di inserire nello sketch il nome e la password della tua rete WiFi. |
![]() Ecco
come appaiono i dati sul serial monitor.
![]() |
|
Il secondo
progetto: visualizzazione di data e ora su di un
dispaly Oled |
![]() Come appare l'orario sul display OLED |
Il
secondo programma presentato in questa pagina ricalca
fedelmente il precedente; solamente sono state inserite
alcune righe del programma per potersi interfacciare con un
display OLED SSD1306 128x64 dot, che mostra la data, il
giorno della settimana e l'ora esatta, e si aggiorna ogni
secondo. In questo modo si può creare un orologio digitale molto preciso in uno spazio veramente esiguo. Oltre alle librerie necessarie per il primo programma, sono necessarie anche le seguenti, per poter gestire il display OLED: Wire.h; Adafruit_SSD1306; Adafruit_GFX; Inoltre si è utilizzato un diverso font di caratteri, che troverete nella libreria Adafruit_GFX modificata per l'occasione. Se invece si usa la libreria scaricata dalla IDE di Arduino, sarà necessario integrare, inserendo manualmente il font di caratteri nella cartella "Fonts" della libreria "Adafruit_GFX, naturalmente dopo averlo scompattato: FreeSerif9pt7b.h Se si usa la basetta sperimentale, illustrata nella pagina relativa, il dislay OLED andrà inserto nel connettore I2C3, rispettando la polarità. |
![]() |
Lo
schema elettrico per il collegamento deldispaly Oled
alla scheda ESP8266 |
![]() La basetta sperimentale con il display Oled in formato reale. Attenzione a inserire il displayrispettando la corretta piedinatura. |
Clicca
qui per visualizzare il programma Clicca qui per scaricare scaricare il file in formato ".zip". Se si desiderano informazioni più dettagliate sui programmi presentati in questa pagina, aprire questo link (esterno al nostro sito): https://randomnerdtutorials.com/esp8266-nodemcu-date-time-ntp-client-server-arduino/ Ai curatori di "Randomnerdtutorials" va tutta la mia gratitudine per la quantità, varietà e sopratutto per la qualità dei progetti offerti. Il primo programma di questa pagina è stato integralmente copiato da quello presentato sul loro sito e poi leggermente modificato per adattarlo alla nostra lingua; l'integrazione del display oled nel progetto invece é (quasi del tutto) originale. :-D |