NodeMCU on avatud lähtekoodiga Lua-põhine püsivara Espressifi ESP8266 WiFi SOCi-le ning kasutab moodulil põhinevat flash-põhist SPIFFS-failisüsteemi.[1] NodeMCU rakendatakse C-programmeerimiskeelt ja on kihiline Espressif NON-OS SDK-s.

NodeMCU
NodeMCU DevKit V3
Tüüp monoplaat mikrokontroller
Operatsioonisüsteem XTOS
Toide USB
Protsessor ESP8266 (LX106)
Salvestusmaht 4 MB
Mälu 128 kB
Veebileht www.nodemcu.com

Algul arendati püsivara nii, et see oli kaasprojekt populaarsetele ESP8266-põhistele NodeMCU arendusmoodulitele, kuid projekt on nüüd toetatud kogukonna toetuseks ning nüüd saab püsivara käivitada mis tahes ESP moodulil.

Ajalugu muuda

NodeMCU loodi varsti pärast ESP8266 avalikustamist. 30. detsembril 2013 alustas Espressif Systems ESP8266 tootmist. ESP8266 on Wi-Fi SoC, mis on integreeritud Tensilica Xtensa LX106 südamikuga, laialdaselt kasutusel IoT rakendustes. NodeMCU projekt algas 13. oktoobril 2014, kui Hong laadis üles esimese NodeMCU püsivara faili GitHubile.[2] Kaks kuud hiljem projekti laiendati avatud riistvara platvormiga, kui arendaja Huang R. laadis üles ESP8266 plaadi gerber-faili nimega devkit v0.9.[3] Samal kuul kandis Tuan PM Contiki MQTT teeki ESP8266 SoC platvormile ja laadis üle NodeMCU projektile, seejärel suutis NodeMCU toetada MQTT IoT protokolli, kasutades Lua MQTT broker serverit juurde pääsemiseks.[4] Teine oluline uuendus tehti 30. jaanuaril 2015, kui Devsaurus kandis u8glib[5] projekti NodeMCU projektile[6], võimaldades NodeMCU-l kasutada LCD, OLED ja isegi VGA ekraanid.

2015. aasta suvel loobusid loojad NodeMCU püsivara projektist ja sõltumatute arendajate grupp võttis üle. 2016. aasta suveks oli NodeMCU-s rohkem kui 40 erinevat moodulit. Ressursikoormuste tõttu peavad kasutajad valima oma projekti jaoks olulised moodulid ja looma nende vajadustele kohandatud püsivara.

Programmeerimise mudel muuda

NodeMCU programmeerimise mudel on sarnane Node.js-i mudeliga, ainult kasutab Lua skripti keelt. See on asünkroonne ja sündmuskohane. Paljudel funktsioonidel on seega tagasihelistamise funktsioonide parameetrid.

Lua Flash Store (LFS) muuda

2018. aasta septembris võeti kasutusele Lua Flash Store'i (LFS).[7] LFS võimaldab Lua koodi ja sellega seotud konstantseid andmeid teostada otse välkmälust; just nagu püsivaru ise. See võimaldab nüüd NodeMCU arendajatel luua Lua rakendusi kuni 256 kB Lua koodiga ja kirjutuskaitstud konstante täidetakse otse välkmälust. Kõik RAM on saadaval lugemiseks ja kirjutamiseks!

Seotud projektid muuda

ESP8266 Arduino Core muuda

Kuna Arduino.cc hakkas välja töötama uusi MCU plaate, mis põhinevad mitte-AVR-protsessoritel nagu ARM / SAM MCU ja mis kasutati Arduino Due, nad pidid Arduino IDE-d muutma, et IDE-d oleks suhteliselt lihtne muuta alternatiivsete tööriistade toetamiseks, võimaldada kompileerida Arduino C / C ++ nende uute protsessorite jaoks. Nad tegid seda Board Manager ja SAM Core sisseviimisega. "Core" on tarkvarakomponentide kogum, mida juhatus ja Arduino IDE vajavad Arduino C / C + + allikafaili koostamiseks MCU masina keele sihtkeele jaoks. Mõned ESP8266 entusiastid töötasid välja Arduino Core ESP8266 WiFi SoC jaoks, mida sageli nimetatakse ka ESP8266 Core for Arduino IDE-ks.[8] Sellest on saanud juhtiv tarkvaraarenduse platvorm erinevatele ESP8266-põhistele moodulitele ja arendusplaadile, sealhulgas NodeMCU-dele.

NodeMCU GPIO muuda

NodeMCU arenduskomplekt varustab juurdepääsu ESP8266 GPIO-dele. Ainus asi, mida tuleb hoolitseda, on see, et NodeMCU Dev Kiti viigid on nummerdatud erinevalt ESP8266 sisemistest GPIO, nagu on näidatud allpool tabelis. Näiteks NodeMCU viik D0 on seotud 16 ESP8266 viigiga.[9]

NodeMCU GPIO
NodeMCU viigi indeks ESP8266 viik
D0 GPIO16
D1 GPIO5
D2 GPIO4
D3 GPIO0
D4 GPIO2
D5 GPIO14
D6 GPIO12
D7 GPIO13
D8 GPIO15
D9/RX GPIO3
D10/TX GPIO1
D11/SD2 GPIO9
D12/SD3 GPIO10

Arendusplaatide versioonid muuda

Esimese ja teise põlvkonna arendusplaate on lihtne eristada, kuna nende suurus on üsna erinev. Mõlemad põlvkonnad kasutavad ESP-12 kiipe 4 MB püsimäluga, kuid teine põlvkond kasutab uuemat ja täiustatud ESP-12E.

NodeMCU v0.9 (aegunud) muuda

Esimene, kuid nüüd vananenud arendusplaati müüakse tavaliselt kollase värvi plaadiga. Kaasas ESP-12 moodul ja 4 MB välkmälu. Plaat on üsna lai (47 mm x 31 mm) ja katab kõik 10 viiku maketeerimislaual, mis muudab selle kasutamise väga ebamugavaks. Selle versiooni tootja on peamiselt Amica.[10]

NodeMCU v1.0 V2 muuda

Teine versioon parandab esialgse plaadi puudused. Uus versioon sisaldab uut ESP-12E moodulit, millel on 4 MB välkmälu ja lisati paar väljaviike. Võrreldes V0.9 variandiga on V1.0 kitsam ja jätab ühe rida tappe mõlemal küljel tavalisel maketeerimislaual, mis sobib ideaalselt prototüüpimiseks. Veel üks tähtis uuendus on see, et nüüd ei pea kasutaja vajutama Reset/Flash-nuppu iga kord, kui soovib koodi uuesti.[11]

Viited muuda

  1. "Lua based interactive firmware for ESP8266, ESP8285 and ESP32". github.com/ (inglise). 29.04.2019.
  2. "Hong esimene commit". github.com/ (inglise). 29.04.2019.
  3. "Huang R. Algne NodeMCU disain". github.com/ (inglise). 29.04.2019.
  4. "MQTT teegi portimine". github.com/ (inglise). 29.04.2019.
  5. "Arduino Monochrom Graphics Library for LCDs and OLEDs". github.com/ (inglise). 29.04.2019.
  6. "U8glib for esp8266". github.com/ (inglise). 29.04.2019.
  7. "Lua Flash Store (LFS) - NodeMCU Dokumentatsioon". nodemcu.readthedocs.io (inglise). 29.04.2019.
  8. "ESP8266 core for Arduino". github.com/ (inglise). 29.04.2019.
  9. "NodeMCU GPIO with Arduino IDE". www.electronicwings.com (inglise). 29.04.2019.
  10. Marcel Stör (01.05.2019). "Comparison of ESP8266 NodeMCU development boards". frightanic.com/ (inglise).
  11. squix78 (01.05.2019). "ESP8266 module comparison". blog.squix.org/ (inglise).