Puntate Precedenti
2 L’hardware, tipi e differenze
4 I Comandi AT nel firmware di fabbrica
NodeMCU
NodeMCU è un firmware open-source che permette programmare la nostra ESP8266 con il linguaggio Lua.
Lua è un linguaggio discretamente moderno, dinamico e veloce. Per certi versi simile a Python, semplificando al massimo direi che è meno completo per quanto riguarda librerie, calcolo matematico e scientifico, ma più leggero, richiede meno memoria e dalla sintassi più stringata.
A differenza dei linguaggi più diffusi, come C, Java, Python, PHP e altri, non è un linguaggio orientato agli oggetti (Lua, in fondo, è nato come linguaggio ausiliario o meglio.. satellite, visto che “Lua” in portoghese significa “Luna”). Ha però altri punti forti: vediamo quali:
- Ha dimensioni molto ridotte: cosa da non sottovalutare in un microcontrollore.
- E’ Open Source
- Ha sintassi semplice: vi sono una ventina di parole chiave e più o meno altrettanti operatori, è quindi facile da imparare anche per chi non è un professionista
- E’ molto veloce: batte tutti i linguaggi interpretati e la versione Just-In-Time è paragonabile ai linguaggi compilati.
- E’ flessibile: ha tipizzazione dinamica, può caricare librerie esterne, che non mancano, essendo ben diffuso anche perchè presente da diversi anni, (per avere un’idea visitiamo il sito http://luaforge.net).
- E’ infatti stabile e maturo e ha alcune chicche come l’implementazione delle funzioni e delle chiusure’, che lo rendono simile a un linguaggio funzionale.
Flashare il Firmware
Scrivere il firmware NodeMCU sull’ESP permette di sfruttare più facilmente, rispetto al firmware di serie, tutte le caratteristiche del microcontrollore: SPI, UART, PWM, I2C, GPIO.. (se avete un modulo “NodeMCU” o simili, avrà già preinstallato questo firmware).
E’ possibile creare una versione personalizzata del firmware online, e poi scaricarla, escludendo i moduli che non sono necessari alle nostre esigenze, riparmiando risorse, tramite il sito NodeMCU custom build.
In alternativa si può scaricare il firmware completo ufficiale da qui, comunque sia, questo firmware è intergato nel software NodeMCU Flasher, citato nella puntata 3 di queste guide su ESP8266.
Esempi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
wifi.setmode(wifi.STATION) wifi.sta.config("SSID", "password") gpio.mode(1, gpio.OUTPUT) srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = "" local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP") if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP") end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.."<h1> Hello, NodeMcu.</h1><form src=\"/\">Turn PIN1 <select name=\"pin\" onchange=\"form.submit()\">" local _on,_off = "","" if(_GET.pin == "ON")then _on = " selected=true" gpio.write(1, gpio.HIGH) elseif(_GET.pin == "OFF")then _off = " selected=\"true\"" gpio.write(1, gpio.LOW) end buf = buf.."<option".._on..">ON</opton><option".._off..">OFF</option></select></form>" client:send(buf) end) conn:on("sent", function (c) c:close() end) end) |
Documentazione Ufficiale
Lo copo di questi articoli non è altro che dare una panoramica dei linguaggi utilizzabili con ESP8266, non di fare un corso di programmazione. Per approfondire, consulta la documentazione ufficiale Lua NodeMCU
Se vuoi restare aggiornato seguici sui nostri social: Facebook , Twitter, YouTube, Google+, Telegram