Gestire Arduino UNO tramite ESP01(ESP8266) con Blynk : la guida definitiva fatta bene! 4.87/5 (18)

Ti piace questo articolo? Condividilo dove vuoi!

Sarò sincero, non mi piace molto questo metodo di utilizzare i microcontrollori e sinceramente preferirei utilizzare una board all-in-one come per esempio NodeMCU e/o ancora meglio una DevKit ESP32, non volendo spendere tantissimo in questo campo ma avendo allo stesso tempo semplicità d’uso e performance adeguate, considerando queste due board che ho citato pocanzi delle buone compagne per la realizzazione di oggetti connessi.

Io la vedo in questo modo : immaginate di comprare una Fiat 500 d’epoca e una Ferrari, pagaste qualcuno per guidare la 500 e la utilizzaste per trainera la Ferrari e andare a spasso, vi sembra il caso ? 🤣

Se avete necessità di molti pin passate a schede del genere https://amzn.to/36Rjgte (ha più pin di Arduino UNO), vi evita di far comunicare due piattaforme diverse e programmarle entrambi per eseguire banalmente la stessa cosa!

Detto questo e sopratutto dopo aver spinto molti di voi a odiarmi, possiamo iniziare a capire come realizzare una connessione SERIAle per i nostri due microcontrollori per gestire Arduino UNO tramite Blynk senza impazzire con la programmazione.

Il tutto è iniziato dalla mia conoscenza della libreria BlynkESP8266 https://github.com/vshymanskyy/BlynkESP8266, si tratta di una libreria che permette di installare Blynk su Arduino UNO e quindi usarlo come dispositivo principale per la gestione dei propri pin, dando la possibilità di sfruttare ESP01 solo come interfaccia Wi-Fi e in altre parole rendere l’Arduino UNO una vera e propria board Wi-Fi.

Bene, ci sono delle controindicazioni o delle complicazioni nel fare questo? A quanto pare no! Ma andiamo per gradi, poichè avrete bisogno di riportare l’ESP01 allo stato di fabbrica e quindi ripristinare l’AT MODE. Nonostante la nostra Redazione abbia già pubblicato una guida per usare ESP01 e dove spiega come fare questa operazione, mi prenderò la briga di mostrarvi ogni singolo passaggio, compreso il ripristino del firmware di fabbrica, per arrivare all’obbiettivo finale. Vi accorgerete che il tutto è molto più semplice del previsto, calcolate che anche io ne sono rimasto abbastanza meravigliato.

1. Installare AT MODE su ESP01

Questa operazione non dovrebbe essere necessaria se avete un ESP01 nuovo di pacca. Per prima cosa collegate il modulo seguendo lo schema di collegamento qui sotto :

Di conseguenza lo avrete collegato in questo modo :

TX ESP01TX ARDUINO
GND ESP01GND ARDUINO
CHPD(EN) ESP013.3V ARDUINO
GPIO2 ESP01
GPIO0 ESP01(no per ATMODE, si per FLASH MODE)GND ARDUINO(no per ATMODE, si per FLASH MODE)
RST ESP01
3V3 ESP013.3V ARDUINO
RX ESP01RX ARDUINO

Scaricate il file .bin che trovate a questo indirizzo :

https://www.filoconnesso.it/wp-content/uploads/2019/05/AT_MODE_ESP8266.zip

Scaricate il tool NodeMCU Flasher :

https://github.com/nodemcu/nodemcu-flasher

Una volta scaricati i file necessari avviate il Flasher che trovate in :

  • Win32/Release/ESP8266Flasher.exe (per Windows 32bit).
  • Win64/Release/ESP8266Flasher.exe (per Windows 64bit).

Caricate il file .bin, come mostrato nelle schermate qui sotto, mi raccomando di verificare che non ci siano software o tool che possono intercettare in qualche modo la connessione seriale dell’ESP01, compreso l’IDE di Arduino, chiudete tutto mantenedo aperto solo il Flasher e procedete :

Attendete il caricamento del firmware, ci vorrà più di un minuto, quindi prendetevi del tempo per una bella tazza di Tea ☕😜.

Finito!

Ora che il caricamento è completato, dobbiamo testare l’AT MODE in modo da verificarne il corretto funzionamento. Quindi, chiudete il Flasher, scollegate il cavo USB e scollegate il GPIO0 dell’ESP01 dal GND, basta scollegare un solo capo del dupont in questione :

Ricollegate il cavo USB e aprite l’IDE di Arduino, selezionate la porta COM corretta al quale è connesso il vostro Arduino UNO e successivamente andate nel Monitor Seriale, impostate il fine riga NL & CR e il baudrate a 115200 :

Digitate il comando “AT” nella casella di invio comandi seriali e premete invio, se ESP01 risponde con il messaggio “OK” avete fatto tutto correttamente, in caso contrario ripetete ogni singolo passaggio proposto fino ad ora, ma non dovreste avere nessun problema.

2. Installare le librerie necessarie

Ora che abbiamo il nostro ESP01 configurato correttamente staccate il cavo USB, scollegate il RESET di Arduino dal GND, scollegate momentaneamente anche i cavi che collegano ESP01 e Arduino tramite seriale, quindi i cavetti che sono sui pin TX e RX in questa fase non devono essere collegati, ripristineremo la connessione successivamente.

Scaricate e installate la libreria BlynkESP8266 da questo link :

https://github.com/vshymanskyy/BlynkESP8266

Da GitHub dovreste avere la possibilità di scaricare un file .zip che può essere installato come una normale libreria dal menu Sketch->#include libreria->Aggiungi libreria da file .ZIP… .

Accertatevi anche di aver installato la libreria Blynk, potete verificare l’installazione corretta dal menu Sketch->#include libreria->Gestione librerie…, cercando Blynk dalla funzione di ricerca :

In caso contrario installatela, cliccando sulla libreria desiderata e facendo click sul pulsante Installa.

3. Creare un progetto su Blynk

Per far funzionare il tutto dovete creare un progetto su Blynk, selezionando come board Arduino UNO e come tipologia di connessione il Wi-Fi :

Cliccando su Create il servizio vi invierà un codice Token tramite email che dovrete utilizzare nel codice che andremo a caricare nel prossimo passo di questa guida.

4. Analizziamo il codice

Trovate il codice base qui :

https://drive.google.com/file/d/1fketO3tCGBVLnPZZ7h4WzrH2lVbVvi5h/view?usp=sharing

Un mio primo tentativo di realizzare questo progetto prevedeva l’uso della libreria SoftwareSerial, ma ho trovato difficoltà a farla funzionare e sinceramente non ne ho nemmeno approfondito il motivo, di conseguenza ho optato nell’usare un metodo poco ortodosso e ho forzato l’inizializzazione della seriale per ben due volte : la prima per Arduino UNO e la seconda per ESP01.

Successivamente passo la connessione seriale dell’ESP01 a Blynk per poi poterla usare in tutto quello che concerne la gestione del Wi-Fi e devo dire che come prima versione non mi dispiace poi cosi tanto, perchè funziona e non ho dovuto scrivere codice su entrambi i microcontrollori.

Benissimo, prima di caricare il codice sull’Arduino Uno dovete fare attenzione alla seguente riga :

while(!Serial);

presente nel setup che blocca l’esecuzione di Blynk affinchè affinchè non c’è il cavo USB collegato, quindi in fase di sperimentazione potete anche lasciarla, ma se il vostro intento è utilizzare il progetto senza l’uso del computer vi invito a togliere la riga di codice in questione o per lo meno commentatela per eseguire il programma senza impedimenti.

Mi raccomando, riempite le variabili TOKEN, WIFI_SSID e WIFI_PASS con il vostro Token di Blynk, generato e inviato tramite email alla creazione di un progetto sull’app, e i dati della vostra connessione Wi-Fi.

Ricordatevi che in questa fase i cavi RX e TX devono essere scollegati dall’ESP01 e che il RESET di Arduino sia scollegato dal GND.

Collegate il cavo USB e caricate lo Sketch su Arduino :

Bene, ora scollegate di nuovo il cavo USB, ricollegate i cavetti TX e RX, ma in questo caso invertendo la loro posizione : TX->RX, RX->TX (da adesso la nuova configurazione cablata per il seriale è settata in questo modo). Ricollegate il tutto al computer.

Aprite il Monitor Seriale e se tutto è correttamente configurato avrete l’avvio di Blynk, il collegamento al Wi-Fi e ovviamente l’accesso alla piattaforma, come se stessimo usando una board Wi-Fi vera e priopria e il bello sta che il codice da modificare e caricare è solo e soltanto su Arduino UNO, ovviamente stando attenti a scollegare i cavi TX e RX ad ogni caricamento :

5. Test del progetto

Ora proviamo a fare un test veloce di tutto quello che abbiamo fatto fino ad adesso : apriamo il progetto su Blynk (precedentemente creato) e aggiungiamo un pulsante, assegnandolo al pin 13 di Arduino e verifichiamo che la board sia on-line :

Sembra che la board sia online, quindi proviamo a premere il pulsante appena creato e verifichiamo se il led collegato sul pin 13 di Arduino UNO si acceda e si spegna a nostro comando, e sembra proprio di si :

Ho provato anche ad ottenere dei dati da un DHT11 e funziona tutto per bene, vi lascio il link del codice di esempio qui sotto :

https://drive.google.com/file/d/1VO3oJmDwjk0JInju4u-d_TIMKbKmQu1b/view?usp=sharing

6. Consigli sull’alimentazione

Una volta che avete il modulo in modalità AT, vi basta acquistare un adattatore di alimentazione che vi permette di alimetare correttamente l’ESP01, direttamente con i 5V e non avere problemi di comunicazione, vi lascio il link qui di seguito per acquistarlo : https://amzn.to/36Rir3I

Evitate di alimentare tutto dal pin 5V di Arduino, sopratutto se utilizzate sensori e altri accessori, il regolatore di Arduino UNO vi ringrazierà!

7. Conclusioni

Che dire, provando questo metodo è già molto meglio che programmare sia ESP01 che Arduino per far si che entrambi “si parlino”, tuttavia è un po seccante la questione di dover staccare ogni volta i cavi sul TX e RX per poter apportare modifiche al codice di Blynk, ma la semplificazione mostrata nella guida vi permette di non impazziare e consente di recuperare un vecchio Arduino UNO e renderlo un buon compagno per l’iot e la domotica 😁.

Arduino UNO resta comunque un hardware abbastanza poco performante, per ora non ho provato a metterlo sotto stress e utilizzarlo in modo assiduo con Blynk, vi tengo aggiornati in ogni caso!

Qui sotto trovate qualche video che abbiamo pubblicato sul nostro canale YouTube attinenti a ESP01, e tanto che ci siete, iscrivetevi al canale :

Mirko Pacioni per Filo Connesso

Vi è stato utile questo articolo ? Conoscevate già questo metodo ? Utilizzate i commenti per rendere Filo Connesso una Community migliore! ❤️

Valuta questo articolo, è anonimo e non richiede registrazioni!

Avatar photo

Mirko Pacioni

Sono un appassionato di informatica, fotografia e videomaking. Ho iniziato a programmare all'età di 8 anni con il mitico Commodore 64 e successivamente, con il passare del tempo, la passione è diventata un lavoro.


Scansiona il QRCode per leggerlo sul cellulare!

Scansiona il QRCode con la nostra applicazione ufficiale per leggere l'articolo sul tuo smartphone Android! Scarica l'ultima versione


SPONSORIZZATO

Potrebbero interessarti anche...

2 risposte

  1. Dino Vallini ha detto:

    Ciao Mirko, ho visto questa guida e ho provato ad eseguire il progetto, è andato tutto liscio fino al punto 4, dopo aver caricato il codice su arduino, si è caricato correttamente, ma quando vado ad aprire il monitor seriale la board non si connette on line, inoltre sia il pc che lo smartphone vanno off line! ho controllato tutti i passaggi,ma il risultato è sempre lo stesso! sono arrivato atanto cosi’ e non so più cosa provare, hai qualche consiglio da darmi? Grazie infinite

    • Ciao, hai provato a connettere la scheda all’hotspot del cellulare? Se il pc e il cellulare si sconnettono quando Arduino tenta di connettersi, vuol dire che il tuo modem ha problemi a dare gli ip, se ti serve ulteriore aiuto ti consigliamo di passare per il gruppo Telegram “Bar Filo Connesso” per avere aiuto veloce e diretto! Grazie per aver letto la guida e buona sperimentazione!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *