NodeMCU

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
NodeMCU
calculator
NodeMCU DEVKIT 1.0.jpg
CPU ESP8266 [1] (LX106 [2] )
RAM ca standard 128 kBytes
SO ca standard XTOS
Site-ul web www.nodemcu.com/index_en.html
NodeMCU DEVKIT 1.0 mai jos

NodeMCU este o platformă open source dezvoltată special pentru „ IoT ”. [3] [4] Include un firmware care rulează prin modulul Wi-Fi SoC ESP8266 și hardware [5] cu baza modulului ESP-12 și este programabil în Lua .

Istorie

NodeMCU Proiectul a început în octombrie 2014 la scurt timp după lansarea modulului ESP8266 Espressif Systems , când Hong lansează primul fișier al viitorului firmware NodeMCU pe GitHub . [6] Două luni mai târziu, proiectul a fost extins pentru a include o platformă hardware gratuită dezvoltată de Huang R lansată extensia Gerber numită „DEVKIT v0.9”. [7]

În aceeași lună, Tuan PM aduce biblioteca client MQTT de pe platforma Contiki ESP8266 SoC și a adaptat-o ​​la proiectul NodeMCU. Procedând astfel, NodeMCU a reușit să accepte protocolul MQTT IoT , folosind Lua pentru a accesa brokerul MQTT . [8]

Un alt avans important a fost făcut în ianuarie 2015, când Arnim Lauger a adus biblioteca „ u8glib ” pe NodeMCU, permițând plăcii să gestioneze afișajul LCD , OLED și chiar afișarea VGA . [9]

În vara anului 2015, creatorii au abandonat dezvoltarea firmware-ului, dar un grup de creatori independenți continuă să continue proiectul. În 2016, NodeMCU a inclus peste 40 de module diferite. Cu toate acestea, utilizatorii, din cauza eșecului resurselor cardului, sunt obligați să construiască firmware personalizat care utilizează doar modulele necesare pentru proiectul lor.

Exemple de cod

O serie de exemple pot fi găsite pe site-ul oficial NodeMCU. Pe lângă acestea, documentația NodeMCU oferă mici exemple de caracteristici și module.

Conexiune la un punct de acces

 print (wifi. este. getip ())
--nil, nodemcu nu este conectat la niciun punct de acces
Wifi. setmode (wifi. STATION)
Wifi. Este . config ( "", "parolă" SSID)
- wifi.sta.connect () nu mai este necesar deoarece wifi.sta.config conectează automat nodemcu la ap.
tmr. create (): alarm (1000, 1, funcție (cb_timer)
dacă wifi. Este . getip () == zero atunci
print ( „Conectarea ...”)
altceva
cb_timer: unregister ()
print ( "Conectat, IP este:" wifi ... este. getip ())
Sfârșit
Sfârșit)

Controlul unui port GPIO

 ledPin = 1
swPin = 2
gpio. mod (ledPin, gpio. OUTPUT)
gpio. scrie (ledPin, gpio. HIGH)
gpio. mod (swPin, gpio. INPUT)
print (gpio. read (swPin))

Cerere HTTP

 conn = net. CreateConnection (net. TCP, 0)
Conn: activat ( „primi”, funcție (sck, sarcină utilă) tipărire (sarcină utilă) sfârșit)
Conn: pornit ( "conexiune", funcție (sck)
sck: send ( "GET / HTTP / 1.1 \ r \ n Gazdă: nodemcu.com \ r \ n"
.. "Conexiune: Keep-Alive \ r \ n Accept: * / * \ r \ n \ r \ n")
Sfârșit)
conn: connect (80, "nodemcu.com")

Puteți face același lucru folosind modulul HTTP :

 http . get ( "http://nodemcu.com", zero, funcție (cod, date)
if (cod <0) atunci
print ( „Cererea HTTP a eșuat”)
altceva
print (cod, date)
Sfârșit
Sfârșit)

Conectarea la un client MQTT

 - init client mqtt cu timer keepalive 120sec
m = MQTT. Client ( „clientid” 120, „utilizator”, „parolă”)

- Configurarea testamentului și testamentului final (opțional)
- Brokerul va publica un mesaj cu qos = 0, retine = 0, data = "offline"
- la subiectul "/ lwt" dacă clientul nu trimite pachetul keepalive
m: LWT ( "/ LWT", "offline", 0, 0)

m: pornit ( „conectare”, funcție (cu) imprimare ( „conectat”) capăt)
m: pornit ( „offline”, funcție (cu) tipărire ( „offline”) sfârșit)

- la publicarea mesajului primiți evenimentul
m: on ( "mesaj", funcție (conn, topic, data)
print (topic .. ":")
data if ~ = zero atunci
print (data)
Sfârșit
Sfârșit)

- pentru securitate: m: connect ("192.168.11.118", 1880, 1)
m: conectare ( „192.168.11.118”, 1880, 0, funcție (conn) tipărire ( „conectat”) capăt)

- abonați subiectul cu qos = 0
m: subscribe ( "/ topic", 0, function (conn) print ( "subscribe success") final)
- sau abonați mai multe subiecte (topic / 0, qos = 0; topic / 1, qos = 1; topic2, qos = 2)
- m: subscribe ({["topic / 0"] = 0, ["topic / 1"] = 1, topic2 = 2}, funcția (conn) print ("subscribe success") sfârșit)
- publicați un mesaj cu date = hello, QoS = 0, keep = 0
m: publish ( "/ topic", "hello", 0, 0, function (conn) print ( "trimis") end)

m: close ();
- puteți apela m: conectați din nou

Client și server UDP

 - un server udp
s = net. createServer (net. UDP)
s: pornit ( „primi”, funcție (s, c) tipărire (c) sfârșit)
s: asculta (5683)

- un client udp
cu = net. CreateConnection (net. UDP)
cu: on ( "primi", funcție (cu, c) print (c) end)
cu: connect (5683, "192.168.18.101")
cu: send ( „salut”)

Notă

  1. ^ Kumar, Abhijeet și Apoorva Sharma. „Internetul vieții (IOL)”. (2015). ISBN 978-93-5156-328-0
  2. ^ (EN) Brian Benchoff, un SDK pentru cipul ESP8266 Wi-Fi , pe Hackaday. Adus pe 2 aprilie 2015 .
  3. ^ (EN) nodemcu / nodemcu-firmware , pe GitHub.
  4. ^ (EN) Firmware NodeMCU LUA • Stack • Hackaday.io , pe hackaday.io. Adus la 10 aprilie 2017 .
  5. ^ (RO) Un forum pentru interpretul ESP Lua , pe Hackaday. Adus la 10 aprilie 2017 .
  6. ^ (RO) Prima comitere a firmware-ului NodeMCU , pe GitHub. Adus la 25 august 2017 .
  7. ^ (EN) Proiectarea inițială a devkit-ului NodeMCU pe GitHub. Adus la 25 august 2017 .
  8. ^ Tuan PM, esp_mqtt: biblioteca MQTT pentru clientul ESP8266 , 23 august 2017. Adus 25 august 2017.
  9. ^ (RO) Arnim Lauger, adăugați butoane de modul U8G · devsaurus / firmware @ nodemcu-3360146 , pe GitHub. Adus la 25 august 2017 .

Elemente conexe

Alte proiecte

linkuri externe