Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. NodeMCU - Teknopedia
NodeMCU - Teknopedia
Abbozzo elettronica
Questa voce sugli argomenti hardware e elettronica è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Teknopedia. Segui i suggerimenti del progetto di riferimento.
NodeMCU
computer
CPUESP8266[1](LX106[2])
RAM di serie128 kBytes
SO di serieXTOS
Sito webwww.nodemcu.com/index_en.html
Modifica dati su Wikidata · Manuale
NodeMCU DEVKIT 1.0 sotto

NodeMCU è una piattaforma open source sviluppata specificatamente per l'IoT.[3][4] Essa include un firmware che funziona tramite il modulo Wi-Fi SoC ESP8266 e hardware[5] con la base del modulo ESP-12 ed è programmabile in Lua.

Storia

[modifica | modifica wikitesto]

Il progetto NodeMCU inizia nell'ottobre 2014 poco dopo l'uscita del modulo ESP8266 della Espressif Systems, quando Hong rilascia i primi file del futuro firmware di NodeMCU su GitHub.[6] Due mesi dopo, il progetto si espanse includendo una piattaforma hardware libera sviluppata da Huang R rilasciata con estensione Gerber denominata "Devkit v0.9".[7]

Nello stesso mese, Tuan PM porta la libreria client MQTT da Contiki alla piattaforma ESP8266 SoC e lo adattò al progetto NodeMCU. Così facendo NodeMCU fu in grado di supportare il protocollo MQTT IoT, usando Lua per accedere al broker MQTT.[8]

Un altro avanzamento importante fu effettuato nel gennaio 2015, quando Arnim Läuger portò la libreria "u8glib" su NodeMCU, dando la possibilità alla scheda di gestire display LCD, OLED, e anche display VGA.[9]

Nell'estate 2015 i creatori hanno abbandonato lo sviluppo del firmware ma un gruppo di creatori indipendenti continua a portare avanti il progetto. Nel 2016 NodeMCU includeva più di 40 moduli diversi. Tuttavia gli utenti, a causa di insufficienza di risorse della scheda, sono costretti a costruire firmware personalizzati che utilizzino solo i moduli necessari per il loro progetto.

Esempi di codice

[modifica | modifica wikitesto]

È possibile trovare sul sito ufficiale di NodeMCU una serie di esempi. Oltre questi la Documentazione di NodeMCU offre piccoli esempi delle funzionalità e dei moduli.

Connessione ad un Access Point

[modifica | modifica wikitesto]
print(wifi.sta.getip())
--nil, il nodemcu non è collegato a nessun access point
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
-- wifi.sta.connect() non è più necessario in quanto wifi.sta.config autoconnette il nodemcu all'ap.
tmr.create():alarm(1000, 1, function(cb_timer)
  if wifi.sta.getip() == nil then
    print("Connessione...")
  else
    cb_timer:unregister()
    print("Connesso, l'IP è :  "..wifi.sta.getip())
  end
end)

Controllo di una porta GPIO

[modifica | modifica wikitesto]
ledPin = 1
swPin = 2
gpio.mode(ledPin,gpio.OUTPUT)
gpio.write(ledPin,gpio.HIGH)
gpio.mode(swPin,gpio.INPUT)
print(gpio.read(swPin))

Richiesta HTTP

[modifica | modifica wikitesto]
conn = net.createConnection(net.TCP, 0)
conn:on("receive", function(sck, payload) print(payload) end)
conn:on("connection", function(sck)
  sck:send("GET / HTTP/1.1\r\nHost: nodemcu.com\r\n"
          .. "Connection: keep-alive\r\nAccept: */*\r\n\r\n")
end)
conn:connect(80, "nodemcu.com")

Si può fare lo stesso usando il modulo HTTP :

http.get("http://nodemcu.com", nil, function(code, data)
    if (code < 0) then
      print("Richiesta HTTP fallita")
    else
      print(code, data)
    end
  end)

Connessione a un client MQTT

[modifica | modifica wikitesto]
-- init mqtt client with keepalive timer 120sec
m = mqtt.Client("clientid", 120, "user", "password")

-- setup Last Will and Testament (optional)
-- Broker will publish a message with qos = 0, retain = 0, data = "offline"
-- to topic "/lwt" if client don't send keepalive packet
m:lwt("/lwt", "offline", 0, 0)

m:on("connect", function(con) print ("connected") end)
m:on("offline", function(con) print ("offline") end)

-- on publish message receive event
m:on("message", function(conn, topic, data)
  print(topic .. ":" )
  if data ~= nil then
    print(data)
  end
end)

-- for secure: m:connect("192.168.11.118", 1880, 1)
m:connect("192.168.11.118", 1880, 0, function(conn) print("connected") end)

-- subscribe topic with qos = 0
m:subscribe("/topic",0, function(conn) print("subscribe success") end)
-- or subscribe multiple topic (topic/0, qos = 0; topic/1, qos = 1; topic2 , qos = 2)
-- m:subscribe({["topic/0"]=0,["topic/1"]=1,topic2=2}, function(conn) print("subscribe success") end)
-- publish a message with data = hello, QoS = 0, retain = 0
m:publish("/topic","hello",0,0, function(conn) print("sent") end)

m:close();
-- you can call m:connect again

UDP client e server

[modifica | modifica wikitesto]
-- un server udp
s=net.createServer(net.UDP)
s:on("receive",function(s,c) print(c) end)
s:listen(5683)

-- un client udp
cu=net.createConnection(net.UDP)
cu:on("receive",function(cu,c) print(c) end)
cu:connect(5683,"192.168.18.101")
cu:send("hello")

Note

[modifica | modifica wikitesto]
  1. ↑ Kumar, Abhijeet, and Apoorva Sharma. "Internet of Life (IOL)." (2015). ISBN 978-93-5156-328-0
  2. ↑ (EN) Brian Benchoff, An SDK for the ESP8266 Wi-Fi chip, su Hackaday. URL consultato il 2 aprile 2015.
  3. ↑ (EN) nodemcu/nodemcu-firmware, su GitHub.
  4. ↑ (EN) NodeMCU LUA Firmware • Stack • Hackaday.io, su hackaday.io. URL consultato il 10 aprile 2017.
  5. ↑ (EN) A Dev Board For The ESP Lua Interpreter, su Hackaday. URL consultato il 10 aprile 2017.
  6. ↑ (EN) First commit of NodeMCU Firmware, su GitHub. URL consultato il 25 agosto 2017.
  7. ↑ (EN) Initial design of NodeMCU devkit, su GitHub. URL consultato il 25 agosto 2017.
  8. ↑ Tuan PM, esp_mqtt: MQTT client library for ESP8266, 23 agosto 2017. URL consultato il 25 agosto 2017.
  9. ↑ (EN) Arnim Läuger, add u8g module stubs · devsaurus/nodemcu-firmware@3360146, su GitHub. URL consultato il 25 agosto 2017.

Voci correlate

[modifica | modifica wikitesto]
  • ESP8266
  • ESP32
  • ESP Easy
  • Internet of things
  • MCU (Micro Controller Unit)

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su NodeMCU

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su nodemcu.com. Modifica su Wikidata
  Portale Informatica
  Portale Software libero
Estratto da "https://it.wikipedia.org/w/index.php?title=NodeMCU&oldid=140323143"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022