L’argomento NodeMCU mi ha ispirato e troverai in questo articolo: NodeMCU Lua Wifi alcuni esempi di esperimenti che ho eseguito in questi giorni.
Innanzitutto acquista una scheda NodeMCU ver. 1.0 se vuoi seguire i miei esperimenti, è la medesima versione che ho utilizzato io in questo articolo ed utilizzerò anche in altri articoli dedicati al NodeMCU Lua Wifi.
NodeMCU Lua Wifi
ho dato questo titolo all’articolo per chiarire i 3 argomenti di cui leggerai:
- NodeMCU: la scheda basata su ESP8266-12 con i GPIO su piedinatura standard ( 2,54mm )
- Lua: il linguaggio di programmazione che utilizzerò per gli esperimenti di questo articolo
- Wifi: l’obiettivo di questo ed altri articoli, sperimentare la connessione WiFi del modulo
per rendere tutto più amichevole ho deciso di stampare con la mia Delta 3D printer un case adatto ad ospitare il modulo NodeMCU.
Il disegno del case l’ho trovato su Thingverse, gentilmente condiviso da Toniet e già delle dimensioni corrette per il modulo e versione in mio possesso:
dopo averlo stampato ho inserito il NodeMCU nel case e constatato che la precisione con cui è stato disegnato il modello è tale da permettere al modulo di alloggiarsi perfettamente nel case:
tutti i pin del NodeMCU ver 1.0 combaciano e così come Toniet l’ha disegnato puoi anche usare del cavo, tipo doppino telefonico, per realizzare direttamente i collegamenti dei sensori, led, ecc..
Collega il NodeMCU Lua WiFI
inizia collegando il tuo modulo NodeMCU Lua WiFi al computer mediante un cavo USB ed apri un terminale di comunicazione seriale ( su suggerimento di Alberto, vedi articolo precedente; ho usato ZTerm per Mac.
All’avvio del modulo ti compare la seguente schermata:
in cui puoi trovare alcune delle informazioni che riguardano il firmware ed i moduli caricati, il mio modulo è già stato modificato caricandoci un firmware custom e con i moduli:
modules: node,file,gpio,wifi,net,tmr,uart,ws2812
subito prima del prompt nota il testo:
lua: cannot open init.lua
tratterò in un futuro articolo il suo significato e che possibilità ti offre.
Al prompt “>” puoi iniziare a scrivere direttamente comandi LUA che il NodeMCU Lua WiFi eseguirà a runtime.
I comandi supportati NodeMCU
la prima domanda che mi sono posto arrivato a questo punto è stata: “che comandi posso eseguire ?” ho quindi provveduto a cercare sui siti ufficiali quali comandi fossero supportati trovando questo link: NodeMCU Doc in cui sono indicati i comandi Lua supportati e presenti anche alcuni esempi.
NodeMCU Lua WiFi
Per connettiti al tuo WiFi casalingo con il NodeMCU Lua WiFi puoi utilizzare la sequenza di comandi seguenti:
wifi.setmode(wifi.STATION) function listap(t) for k,v in pairs(t) do print(k.." : "..v) end end wifi.sta.getap(listap)
in cui linea 1: imposti la modalità in cui deve funzionare il modulo ESP8266, in questo esperimento come STATION ossia in grado di collegarsi ad una rete WiFi esistente;
linee 2-6: definisci una funzione denominata “listap” che scriverà a video l’elenco dei SSID intercettati dallo scan WiFi;
linea 7: usi il comando wifi.sta.getap(listap) per richiamare la funzione listap passandole come argomento il risultato dello scan wifi eseguito dal modulo.
Il risultato a video dell’interrogazione dovrebbe essere simile alla seguente:
Almanet 2.4G : 3,-80,--:--:--:--:--:--,4 Almanet : 3,-50,--:--:--:--:--:--,1 ALEMMA : 4,-93,--:--:--:--:--:--,1
in cui il primo campo è l’SSID e gli alti campi individuano caratteristiche di ricezione del segnale, Mac ecc..
Per connetterti ad una delle reti elencate puoi usare le seguenti linee:
> wifi.sta.config("Almanet","****************************") > print( wifi.sta.getip()) 192.168.1.9 255.255.255.0 192.168.1.1
in cui la linea 1: è la linea in cui esegui la connessione all’SSID scelto ( la password della mia rete WiFi l’ho sostituita con *** ma nel tuo caso dovrai metterci la password corretta );
linea 2: chiedi a NodeMCU Lua WiFi di scriverti a video l’IP,Mac Address e Gateway
linea 3: è il risultato del comando eseguito alla linea 3.
La schermata in cui esegui tutto questo dovrebbe essere simile alla seguente:
49 commenti
1 ping
Vai al modulo dei commenti
Salve!
Mi puo’ far sapere se la scheda nodmcu lua puo’ pilotare da sola con alimentazione separata 4/8 rele’
Grazie in anticipo
Autore
Ciao Salvatore,
mi sono posto la medesima domanda questa mattina perché sto realizzando un giochino per mio figlio con questa scheda.
Non ho ancora indagato, di certo l’alimentazione dovrà essere separata.
Se trovo qualcosa di utile scrivo un articolo in merito, consulta il blog nei prossimi mesi.
Alimentazione separata perchè, io mi sono fatto un progetto di IoT che comanda 8 relè e usa o un alimentatore 5v 2A o un caricatore usb semore 5v 2A per alimentare sia la scheda NodeMCU sia i relè.
Usa Mqtt.
Autore
Grazie Piero
Ciao Mauro,
ti chiedo se il modulo NodeMCU Lua ha possibilità di collegarsi in modalità M2M Go oppure se può lavorare anche come Bluetooth.
La mia necessità è di trasmettere dati numerici di un sensore 9DOF almeno a 100 campioni al secondo per l’analisi del movimento in real time, senza pause come ho sperimentato con altro WiFi (Fishino) in modalità STATION.
Grazie, saluti.
Autore
Ciao Riccardo,
il modulo mostrato NodeMCU che ho testato io non ha connessioni Bluetooth, solo WiFi
Ciao Mauro,
Posso programmare questa board da IDE di Arduino?
Grazie Saluti
Autore
Ciao Luca,
Si, ho letto dei tutorial sul web in cui spiegano come installando delle estensioni sull’IDE per gestire questa scheda.
In generale io preferisco usare LUA che è integrato nativamente nel firmware della scheda.
Ciao Mauro,
questa nodeMCU wifi non è altro che un ESP8266 con “un po’ di robetta in piu'”, giusto? 🙂
Mi par di capire che, ricevendo l’alimentazione da una microUSB abbia già uno stepper 5v->3v3 quindi posso alimentarla direttamente con i 5v, corretto?
Ultima domanda, i pin (da impostare su HIGH o LOW) escono anche a 5v oppure solo a 3v3? Te lo chiedo perchè mia intenzione era di comandare un relay 5v (e 3v3 non basterebbero).
Grazie mille e complimenti!
Autore
Ciao Pierluigi,
premesso la non condivisione del tuo gergo “robetta” sia una definizione riduttiva e inappropriata.
Anche la sola definizione di ESP8266 è troppo generica per darti risposta, esistono diversi modelli, come puoi leggere nel blog, e questa è un modello specifico.
Lo stepper è tutt’altra cosa, in questo caso parliamo di shift level da 5v a 3,3v per i livelli di segnale e di step-down per l’alimentazione.
La ESP8266 funziona a 3,3v tuttavia, come saprai, un relay opportunamente optoisolato, può funzionare a 3,3v se la resistenza dell’optoisolatore lo consente.
Mi preoccuperei di più della corrente di output.
Sul sito del produttore NodeMCU trovi tutti i dettagli.
Ciao e grazie per la risposta così rapida.
Premetto che voleva essere solo una battuta il termine “robetta”, non volevo certo indignare nessuno! 🙂
Il modello cui facevo riferimento era, naturalmente, quello dell’articolo in questione. Non sono stato preciso, come giustamente hai evidenziato, sull’uso. Il relay, in realta’, deve solo ponticellare due pin di un termostato (ciò permette di forzare la modalità manuale) e l’esp in oggetto ha la funzione di accettare comandi da un’app android per farlo da remoto. Quindi non ho problemi di corrente di output.
Mi chiedevo, quindi, se, avendo gia’ un regolatore di tensione interno, i pin fossero 3v3 o 5. Mi par di capire la prima ipotesi.
Grazie mille per il suggerimento di un optoisolatore, non ci avevo pensato e vado subito a documentarmi.
E non te la prendere per le battute, dai 🙂
Autore
Ciao Pierluigi, non avevo compreso la battuta.
L’optoisolatore ti evita di avere problemi anche in caso di correnti spurie da parte dei relay e ti permette di ovviare ai problemi di tensione e corrente che un relay richiede per funzionare.
Grazie mille per questo suggerimento. Credo proprio che opterò per l’optoisolatore.
Salve,
vorrei acquistare una scheda NodeMcu è programmarla con Arduino Ide.
Sono un pò cofuso su quale versione sia meglio acquistare
– V2 o V3? (ho letto di diverse persone che hanno avuto problemi con la connessione USB al PC sulla V3)
– Ho trovato diversi produttori di NodeMcu: [[ pubblicità rimossa ]]. Quale secondo voi è quella che funzione senza troppi problemi?
– Quale sito è più affidabile fra [[ link rimosso ]] ?
Autore
Ciao Calogero,
controlla la differenza tra la V2 e la V3 sul sito ufficiale NodeMCU e verifica quale chip Usb utilizza l’una e l’altra per comprendere quale sia quello più adatto al tuo progetto ed alla connessione con il tuo Pc.
Attenzione al rispetto delle regole .. i link sono vietati.
Buongiorno
sto svilluppando su ESP12E con NodeMCU. Ho la necessità di attivare una connessione WiFi Direct ma, nonostante sembri essere supportata, non trovo nessun riferimento.
Qualche suggerimento?
grazie
Autore
Ciao Alessio,
perdona la risposta con una domanda, stai usando:
– un ESP12E su cui hai caricato un firmware NodeMCU
– un NodeMCU
– un ESP12E senza firmware
Te lo chiedo perché è differente l’uso con il fw nodeMCU e senza.
Ciao Mauro, perdona la poca chiarezza…cercherò di rimediare.
sto sviluppando delle funzionalità di logging e gateway I2C utilizzando un
– ESP12E.
le nuove funzionalità (parte in C e parte in LUA) sono integrate nell’ambiente
– NodeMCU Firmware v. 0.95.
la programmazione con
– MCU FIRMWARE PROGRAMMER
ed il caricamento dei file LUA (nonché debug utilizzandolo come terminal seriale) con
– ESPlorer V0.2.0.
Un requisito è che la connettività sia contemporanea in ST MODE e in WiFi Direct (per compatibilità con APP Android già esistente).
Stupidamente mi sono “fidato” del datasheet del componente che riporta la fully compliance con WiFi Direct senza verificare (e qui ammetto l’ignoranza) la presenza dello stack nel codice sorgente.
spero di essermi spiegato meglio e spero vivamente in una tua “illuminazione”.
grazie
Alessio
Autore
Ciao Alessio,
spero di aver compreso.
Non comprendo perché Android ti chieda la contemporaneità tra ST MODE ( leggo client WiFi ) e WiFi Direct ( leggo server WiFi ) il chip può fare entrambe ma non in contemporanea, come ho scritto in questo articolo.. potresti continuamente eseguire uno switch da una all’altra modalità ma mi sembra complessa come implementazione sw.
Ciao,
grazie della bella guida in ITALIANO!
Uso ubuntu e vorrei seguire le istruzioni del paragrafo “Collega il NodeMCU Lua WiFI” ma non mi è chiaro quale terminale di comunicazione seriale utilizzare
Ho provato con miniterm.py (mini-terminale inserito nel pacchetto Python-serial) ma scrive caratteri incomprensibili …
Puoi aiutarmi?
Claudio 🙂
Autore
Ciao Claudio,
devi impostare i baudrate di miniterm identica a quella che io imposto nel paragrafo “Collega il NodeMCU Lua WiFI” ossia 9600 altrimenti avrai l’effetto che descrivi.
Ciao, avrei bisogno di inviare a un server web i dati inviati al NodeMCU da Arduino attraverso la connessione seriale, ma ho trovato solo guide per inviare i valori letti dai GPIO , che comandi in LUA debbo usare per inviare i dati man mano che arrivano attraverso RX ? Non sono esperto di programmazione, con Arduino me la cavo ma questo per me è un nuovo mondo.
Grazie e complimenti per il tuo blog che seguo molto spesso!
Autore
Ciao Fabrizio,
non sono eppure io un esperto Lua, tuttavia proverei a trattare i dati in RX come dato a se stante indipendentemente che provenga da GPIO o da Rx ed usare lo stesso metodo che hai visto negli esempi di cui scrivi per trasferirli al server web.
Ciao Mauro! Grazie per la tua guida! Ho una domanda per te:
Ho sempre lavorato con il NodeMCU collegato alla rete domestica, con ssid e pass noti. Vorrei ora collegare il nodeMCU alla rete universitaria in cui la ssid e la pass sono note ma é necessario loggarsi ad una pagina web NOTA (con indirizzo noto) compilando i die campi nome utente e password dell’università. Dopo di che sono connesso. É possibile in qualche modo accedere dal nodeMCU alla pagina web di accesso e fornire da questo i dati nei punti precisi della pagina web? (come ho detto la pagina web di login é nota).
Ti ringrazio infinitamente!
Ciao!
Autore
Ciao Massimo,
quella che desideri è l’autenticazione con user e password ad un server radius,ldap o simili che io sappia non è supportata dal firmware anche se ti consiglio di verificare se sul sito ufficiale abbiano rilasciato qualche aggiornamento in merito.
Ciao Mauro
prima di tutto complimenti per i tuoi articoli su tale componente.
Alcune info, se è possibile:
Vorrei comandare da un raspberry l’esp collegato al wifi, e collegato fisicamente ad una scheda relè.
Poichè tutte le logiche di controllo sullo stato dei GPIO sono implementate con script python sul rasp (al quale attualmente è collegata la scheda relè), volevo trovare una soluzione per fare richieste secche all’ESP sullo stato dei suoi GPIO, senza però effettuare richieste http, che inevitabilmente mi comporterebbe scrivere response sull’esp.
Pensavo appunto a comandi AT da lanciare da remoto verso l’esp, ed avere le informazioni sui GPIO, e settarli a LOW o HIGH.
Spero di avere spiegato al meglio la mia problematica, e ricevere un tuo consiglio.
Grazie in anticipo
Autore
Ciao Diego,
per evitare troppe complicazioni, a meno che non ti piacciano, io userei direttamente una Raspberry Pi con connessione WiFi, ad esempio la RPi 3.
Se vuoi usare la 1 o la 2 perchè già in tuo possesso puoi acquistare un dongle usb da pochi euro.
Ciao Mauro,
ho da poco comprato il modo tinxi nodeMCU che monta un ESP 12. Ho notato che il modulo ESP è piuttosto caldo ma non presenta anomalie. E’ normale?
Grazie in anticipo!
Autore
Ciao Andrea,
non conosco questo modulo specifico il mio è un NodeMCU v.1.0 acquistato a suo tempo dal produttore ufficiale e non mi sono mai accorto di temperature elevate sul modulo.
Chiedi al produttore se quello che rilevi è corretto e a cosa sia dovuto.
Ciao Mauro,
ho acquistato il modulo ESP8266 NodeMCU DevKit (il formato è identico a quello delle tue foto, quindi spero anche le porte) e vorrei usarlo per collegare una scheda Arduino Mega ad internet, per effettuare chiamate (in GET o POST) ad un server web.
Malgrado Google sia pieno di risultati, non sono riuscito a districarmi, la maggior parte dei tutorial spiega come usare l’ESP8266 indipendentemente (e gli sketch caricati direttamente nella scheda ESP8266 girano senza problemi).
Quando provo a comandarla da Arduino non risponde, se provo a collegare via USB la scheda ESP8266, dal monitor seriale vedo che sta ancora girando l’ultimo sketch caricato, quindi immagino di non aver impostato correttamente i pin, è corretto?
Come dovrei collegare Arduino Mega alla scheda ‘ESP8266 per poterla comandare? (collegarsi con ssid e pwd al wifi, chiamare periodicamente un URL passando dei dati e riportare ad Arduino la risposta (in JSON?))
Grazie mille
Autore
Ciao Daniele,
mi sembra che tu ti stia complicando parecchio la vita.
A cosa serve avere una NodeMCU connessa ad un arduino Mega ? Perché non utilizzi direttamente i sui pin?
In merito ad essere uguale o meno, il consiglio migliore è leggere il datasheet del produttore.
voglio utilizzare Arduino Mega perché prevedo di collegare diversi sensori e motori e ho fatto i conti dei pin disponibili.
L’idea è quella di usare Arduino come centrale di tutti i segnali, collegata ad un RTS e ad un modulo wi-fi per la comunicazione col server.
Quando ho cercato un modulo wi-fi da collegare ad Arduino non so perché ma ho trovato il nodemcu come perfetto compagno. A questo punto devo capire come fare oppure comprare un altro modulo (wi-fi shield?)
Autore
Ciao Daniele,
penso che la sua wifi shiled originale sia la soluzione migliore in quanto trovi già tutte le librerie scritte per questa scheda.
Se vuoi utilizzare la NodeMCU, perché già l’hai acquistata, ti consiglio di scrivere due firmware uno sulla NodeMCU e l’altro su Arduino e di farli comunicare via seriale o IIC.
Trovi molti miei tutorial sulla comunicazione IIC o I2C che possono esserti di aiuto.
Ciao,
ho acquistato una Az-Delivery NodeMCU V2 Amica su amazon.
Appena presa l’ho collegata con l’USB al pc e usato TeraTerm per il terminale seriale.
Non c’è stato verso, qualunque boud rate utilizzassi sulla console si leggevano sempre caratteri strani. Tranne con 74480 con cui vedevo qualcosa contenete stringhe tipo
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
ma non riuscivo a scrivere null’altro…
Utilizzando l’IDE di arduino e utilizzando gli esempi della ESP8266 ho finalmente visto la scheda funzionare.
Per intenderci gl iesempi che hanno in testa:
#ifdef ESP8266
extern “C” {
#include “user_interface.h”
}
#endif
e utilizzano funzioni tipo wifi_station_get_hostname, wifi_softap_set_config, wifi_set_event_handler_cb…ecc.
Ma non riesco proprio a utilizzare LUA come scrivi tu in questi articoli. Cosa mi manca?
Grazie
Autore
Ciao Paolo,
per il supporto LUA deve essere presente sulla NodeMCU il firmware adatto con il supporto delle librerie WiFi.
Quando utilizzi l’IDE arduino per trasferire uno sketch esegui l’upload sia del firmware sia dello sketch ma non supporta LUA
vorrei comprare una scheda gia’ programmata ( wifi jammer esp8266, dopo tanti tentativi mi sono arreso, non sono tanto pratico, avevo comprato una tinxi nodemcu lua wifi, dopo tanti giorni e tentativi, sempre errori. chi puo’ aiutarmi a comprarla gia’ programmata ? grazie
Autore
Ciao Mimmo,
lascio il tuo commento on-line così che altri appassionati possano aiutarti
Nodemcu può aiutarmi a crackare la mia password wifi ?
Autore
Ciao Roberto, dubito, io non l’ho mai usata in questo modo.
Ciao Roberto mi é appena stata consegnata la NodeMCU devkit board V2
Desideravo riprodurre il case, non ho una stp 3d ma conosco un negozio per fare la stampa.
Dal link non capisco se posso fare la stampa e quale file devo portare.
Grazie
Alessandro
Autore
Ciao Alessandro,
non so se ti riferissi a me, Mauro, o a qualche utente nei commenti.
Lascio il tuo commento on-line perché Roberto ti possa rispondere.
Ciao Mauro, con il node Mcu è possibile rilevare la temperatura di casa e l’umidità ed inviarla via Wi-Fi ad una pagina web ? Tu per caso hai già realizzato una cosa del genere ? Potresti spiegarmi nel caso tu l’avessi già fatto come posso procedere ? Grazie mille
Autore
Ciao Luca,
si è possibile con dei sensori esterni.
Puoi trovare nel blog molti articoli dedicati all’ESP8266 che è il core del nodeMCU da usare come esempio per il tuo progetto.
Ciao Mauro, ho installato NodeMCU su pc Windows ma non riesco a fare altrettanto su Mac High Sierra pur avendo scaricato e installato la patch CH34 non ottengo una porta seriale utile al collegamento.
Grazie
Autore
Ciao Giovanni,
non ho provato con High Sierra, verifica che il driver per CH340 sia adatto a questo sistema operativo e consulta nei log del Mac cosa accade quando colleghi il NodeMCU
Buongiorno,
una domanda circa l’utilizzo del sonoff affiancato all’impianto esistente,
ho un punto luce comandato da un relè 220v , vorrei integrarlo con il sonoff riprogrammato tasmota , in modo da comandarlo sia tramite i pulsanti esistenti sia tramite web interface .
come posso fare per far coesistere i due tipi di relè senza che vi siano problemi elettrici?
grazie
Autore
Ciao Roberto,
perdonami ma non ho compreso il collegamento tra questo tuo commento e l’articolo?
Inoltre mi sembra di non aver mai trattato l’argomento “tasmota” forse ti confondi con un sito differente.
In ogni caso il mio consiglio è sempre di rivolgersi ad un elettricista professionista se non sai bene come operare in sicurezza su un impianto di rete elettrica.
Buongiorno,
Ho una scheda v0.9 nodemcu. Ho flashato il firmware tramite cloud. Lato terminale però non vedo alcuna scritta comprensibile solo simboli strani. Come mai? Premetto che sto usando elementary os. Quindi non riesco a configurare il wifi
Autore
Ciao Samuele,
purtroppo non ho mai provato questa procedura ( flash dal cloud ) hai provato a inviare un semplice blink alla scheda per vedere se risponde ?
[…] l’articolo in cui hai imparato a connettere il node mcu al wifi con lua è il momento di iniziare a sfruttare […]