Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
project:nodemcu [2016/10/29 22:03]
licho
project:nodemcu [2018/05/27 08:40] (current)
cyberian
Line 1: Line 1:
 +|**Project owner:**| [[user:​lichnak|lichnak]],​ [[user:​peterbay,​|PeterBay]] |
 +|**Interested:​** |  |
 +|**Related:​**| |
 +|**Reference:​**| https://​Espressif.com |
 +| **License:​** | [[https://​creativecommons.org/​licenses/​by-sa/​3.0/​|Uveďte původ-Zachovejte licenci; CC BY-SA]] ​ |
 ====== NodeMCU ====== ====== NodeMCU ======
 {{nodemcu-style5-150px.png_150x150.png}} {{nodemcu-style5-150px.png_150x150.png}}
Line 9: Line 14:
  
 Developer Kit v1.0 [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0|NodeMCU DevKit 1.0 Github]] Developer Kit v1.0 [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0|NodeMCU DevKit 1.0 Github]]
- 
-Dokumentace k NodeMCU firmware a modulům je dostupná na adrese [[https://​github.com/​nodemcu/​nodemcu-firmware|NodeMCU Documentation]] 
- 
-Dokumentace k NodeMCU firmware skriptovacího prostředí na adrese [[https://​nodemcu.readthedocs.io/​en/​master/​|NodeMCU LUA Scripting Documentation]] 
  
 ===== Hardware ===== ===== Hardware =====
  
-NodeMCU hardware je vybaven převodníkem [[https://​labka.cz/​wiki/​doku.php?​id=project:​esp8266|ESP8266]] se zabudovaným WiFi vysílačem,​ dále čipem pro komunikaci přes seriový port 'USB to URT' [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​CP2102-9.pdf|CP2102-9]],​ lineárním DC stabilizátorem [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​SPX3819M5-L-3-3.pdf|SPX3819]], ​ A/D převodníkem [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​ss14.pdf|SS12]] a dvěmi tlačítky pro RST a FLASH [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​PTS820_4mar13-248116.pdf|PTS820]]+NodeMCU hardware je vybaven převodníkem [[https://​labka.cz/​wiki/​doku.php?​id=project:​esp8266|ESP8266]] se zabudovaným WiFi vysílačem,​ dále čipem pro komunikaci přes seriový port 'USB to UART' [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​CP2102-9.pdf|CP2102-9]],​ lineárním DC stabilizátorem [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​SPX3819M5-L-3-3.pdf|SPX3819]], ​ A/D převodníkem [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​ss14.pdf|SS12]] a dvěmi tlačítky pro RST a FLASH [[https://​github.com/​nodemcu/​nodemcu-devkit-v1.0/​blob/​master/​Documents/​PTS820_4mar13-248116.pdf|PTS820]]
  
-Technické parametry:+=== Technické parametry ​===
  
   * CPU: 80/160 MHz Tensilica Xtensa LX106   * CPU: 80/160 MHz Tensilica Xtensa LX106
Line 41: Line 42:
   * Pokud chcete použít ''​SLEEP''​ mód, pak propojte piny ''​GPIO16''​ a ''​RST'',​ a ''​GPIO16''​ bude nastaven po každém probuzení na hodnotu ''​LOW''​.   * Pokud chcete použít ''​SLEEP''​ mód, pak propojte piny ''​GPIO16''​ a ''​RST'',​ a ''​GPIO16''​ bude nastaven po každém probuzení na hodnotu ''​LOW''​.
  
-===== Software ​=====+===== Firmware ​=====
  
-Programování NodeMCU vyžaduje programovací model velice podobny [[|Node.js]] a namísto JavaScript používáte LUA. Programovací model je asynchroní a even-driven model, který se vyplatí používat.+Programování NodeMCU vyžaduje programovací model velice podobny [[|Node.js]] a namísto JavaScript používáte LUA. Programovací model je asynchroní a event-driven model, který se vyplatí používat.
  
-==== Firmware ====+Dokumentace k NodeMCU firmware a modulům je dostupná na adrese [[https://​github.com/​nodemcu/​nodemcu-firmware|NodeMCU Documentation]].
  
 Firmware může obsahovat různé moduly, které jsou rozšířením funkcí pro jazyk eLua použitý v NodeMCU. Firmware může obsahovat různé moduly, které jsou rozšířením funkcí pro jazyk eLua použitý v NodeMCU.
Line 55: Line 56:
   - stažením již existujícího firmwaru s vybranými moduly od třetích stran   - stažením již existujícího firmwaru s vybranými moduly od třetích stran
  
-==== Kompilace firmware ​====+   
 +===== IoT Infrastruktura =====
  
-Linux Build Environment - Návod jak postupovat ​i instalaci ​nastavení prostředí na Ubuntu Serveru, ​následné kompilace firmware pomocí nástroje ''​make''​.+Prvně uveďme ​edběžnou predstavu o zpracování dat ze senzorů ​ovládání vzdálených zařízení. Hlavní komunikační a ovládací komponenty jsou postavené ​na technlogiích MQTT REST API.
  
-Originální návod je dostupný na [[http://​www.esp8266.com/​wiki/​doku.php?id=toolchain#​how_to_setup_a_vm_to_host_your_toolchain|ESP8266 Wiki]]+{{wiki_nodemcu_mqtt_infra.png?750}}   
 +   
 +===== Vývojářské nástroje a systémy =====
  
-Prostředí ​pro kompilaci firmware pro NodeMCU je postaveno na serveru Ubuntu.+Následující návody kopírují požadavky IoT Infrastruktury pro instalaci vývojového a testovacího prostředí ​a zároveň přinášejí komfort do vývoje 
  
-Pro instalaci nám stačí mini verze. +  * [[:project:nodemcu_lbe|NodeMCU Linux Firmware Build Environment]] 
-[[http://​archive.ubuntu.com/​ubuntu/​dists/​precise-updates/​main/​installer-amd64/​current/​images/​netboot/​mini.iso|64-bit Ubuntu (mini.iso)]]  +  ​[[:project:nodemcu_ubudev|NodeMCU ​Vývojářské prostředí pro Ubuntu]] 
- +  ​[[:project:nodemcu_windev|NodeMCU ​Vývojářské ​prostředí pro Windows]] 
-V instalátoru Ubuntu vybereme pouze **"​Basic Ubuntu Server"​** a **"​openSSH Server"​** +  ​* ​[[:project:nodemcu_le|NodeMCU ​LUA Skriptovací ​prostředí]]
- +
-Po restaru je potřeba doinstalovat následující aplikace +
-<​code>​ +
-$ sudo apt-get install build-essential zip gdb vim make unrar autoconf automake bison texinfo libtool mc gcc g++ gperf libc-dbg ncurses-dev expat lua5.1 lua5.1-doc luarocks gperf bison flex texinfo git help2man gawk python python-pip unzip screen python2.7 python-serial +
- +
-$ for m in lua-bitlib luafilesystem md5 luaposix luasocket; do sudo luarocks install $m; done +
- +
-$ sudo pip install mkdocs +
-</​code>​ +
- +
-Stáhnout z githubu **ESP Open SDK** a spustit **make** +
-<​code>​ +
-$ git clone --recursive https://​github.com/​pfalcon/​esp-open-sdk +
- +
-$ cd esp-open-sdk +
- +
-$ make STANDALONE=y ​|& tee make0.log +
-</​code>​ +
- +
-Pokud se při spuštění **make STANDALONE=y |& tee make0.log** vyskytne chyba (chybějící aplikace a pod.), tak je třeba ji doinstalovat a spustit **make STANDALONE=y |& tee make0.log** znovu +
- +
-Editovat soubor ''​~/​.bashrc''​ a přidat na jeho konec +
-<​code>​ +
-export PATH="​$HOME/​esp-open-sdk/​xtensa-lx106-elf/​bin/:​$PATH"​ +
-alias xgcc="​xtensa-lx106-elf-gcc"​ +
-</​code>​ +
- +
-Na stránce s [[https://​github.com/​nodemcu/​nodemcu-firmware/​releases|firmware]] zjistit odkaz na poslední verzi +
- +
-Stáhnout zdrojové soubory a rozbalit je +
-<​code>​ +
-$ cd ~ +
-$ wget https://​github.com/​nodemcu/​nodemcu-firmware/​archive/​1.5.4.1-master_20161001.zip +
-$ unzip 1.5.4.1-master_20161001.zip -d nodemcu-firmware +
-</​code>​ +
- +
-Otevřít adresář +
-<​code>​ +
-$ cd ~/​nodemcu-firmware/​nodemcu-firmware-1.5.4.1-master_20161001 +
-</​code>​ +
- +
-V souboru ''​user_modules.h''​ je možné zapínat a vypínat moduly, které budou zahrnuty do firmware +
-<​code>​ +
-$ mcedit app/​include/​user_modules.h +
-</​code>​ +
- +
-Spuštění kompilace firmware se provede příkazem +
-<​code>​ +
-$ make +
-</​code>​ +
- +
-Výsledný firmware je uložen ve složce bin, např. +
-<​code>​ +
--rw-rw-r-- ​ 1 node node  27872 Oct 26 11:21 0x00000.bin +
--rw-rw-r-- ​ 1 node node 357683 Oct 26 11:21 0x10000.bin +
-</​code>​ +
- +
-==== Nahrání firmware ==== +
- +
-Firmware je potřeba do ESP8266 nahrát. K tomuto účelu jsou na internetu dostupné programy a skripty. Předvedeme si dva nástroje jeden pro Linux napsaný v Pythonu ​[[https://​github.com/​themadinventor/​esptool|Esptool.py]] a druhý pro Windows napsaný v Deplhi [[https://​github.com/​nodemcu/​nodemcu-flasher|NodeMCU-Flasher]]. +
- +
-Před nahráním NodeMCU firmware se ujistěte, že jej se máte zkompilovaný. Také před nahráním firmwaru je třeba na NodeMCU zapnout FLASH mód a budťo zmáčknutím tlačítka FLASH na NodeMCU nebo před rebootem nastavte na pin ''​GPIO0''​ na hodnotu ''​LOW''​. [[nodemcu#​Důležité upozornění|Viz. upozornění]] +
- +
-Výsledný zkopilovaný bootloader a firmware je uložen ve složce ''​../​nodemcu-firmware/​bin''​. +
-Bootloader nese název 0x00000.bin a firmware 0x10000.bin. +
- +
-<​code>​ +
--rw-rw-r-- ​ 1 node node  27872 Oct 26 11:21 0x00000.bin +
--rw-rw-r-- ​ 1 node node 357683 Oct 26 11:21 0x10000.bin +
-</​code>​ +
- +
-=== Nástoj Esptool.py === +
-Esptool vyžaduje Python 2. K instalaci ''​esptool''​ použijeme správce balíčků ''​pip''​.Pokud používáte verzi Pythonu 2 >=2.7.9 nebo Python 3 >=3.4 ''​pip''​ je již součástí vaší instalace.  +
- +
-Instalace pip: +
-<​code>​ +
-$ python get-pip.py +
-</​code>​ +
-Instalace esptool pomocí pip: +
-<​code>​ +
-$ sudo pip install –upgrade esptool +
-</​code>​ +
- +
-Pokud máte výchozí verzi Python 3, pak příkaz bude následující:​ +
-<​code>​ +
-$ sudo pip2 install esptool +
-</​code>​ +
- +
-Zkombinování bin souborů do monolitní binárky: +
-<​code>​ +
-$ esptool.py make_image -f bin/​0x00000.bin -a 0x00000 -f bin/​0x10000.bin -a 0x10000 bin/​flash.bin +
-</​code>​ +
- +
-Předtím než budeme nahrávat firmware ujistěte se, že jste členy ''​dialout''​ skupiny, která vám dá práva a můžete komunikovat přes sériový port např. ''/​dev/​ttyUSB0''​. +
-Přidání aktuálního uživatele do ''​dialout''​ skupiny: +
-<​code>​ +
-$ sudo adduser $USER dialout +
-</​code>​ +
- +
-Nahrání výsledných binárek po kompilaci:​ +
-<​code>​ +
-$ esptool.py --port /​dev/​ttyUSB0 write_flash -fm dio -fs 32m 0x00000 bin/​0x00000.bin 0x10000 bin/​0x10000.bin +
-</​code>​ +
- +
-Nahrání monolitické binárky: +
-<​code>​ +
-$ esptool.py --port /​dev/​ttyUSB0 write_flash -fm dio -fs 32m 0x00000 bin/​flash.bin +
-</​code>​ +
- +
-=== Nástoj ESP8266 Flasher === +
- +
-Stránka projektu na GitHubu: ​[[https://​github.com/​nodemcu/​nodemcu-flasher|NodeMCU Flasher]] +
- +
-Stáhněte ​ z GitHubu [[https://​github.com/​nodemcu/​nodemcu-flasher|NodeMCU ​Flasher]]. +
- +
-Osobně používám pro práci s GIT prostředím na Windows ​10 [[https://​github.com/​git/​git-scm.com|GIT scm]]. +
- +
-ESP8266Flasher najdete ve ložce kam jste si stáhli soubory z GitHubu. +
-<​code>​ +
-%PATHNODEMCUFLASHER%\Win64\Release\ESP8266Flasher.exe +
-</​code>​ +
- +
-Ověřit ve Správci zařízení seriový port pro kominikaci s NodeMCU. +
-<​code>​ +
-%SYSTEMROOT%\System32\devmgmt.msc +
-</​code>​ +
- +
-{{wiki_nodemcu_comport_win.png}} +
- +
-^ Postup pro FLASH firmwaru | +
-| 1. Připojit se na správný seriový port: {{ wiki_nodemcu_esp8266flasher_com.png?​300}} | +
-| 2. Změnit nastavení komunikace pro ESP8266Flasher:​ {{ wiki_nodemcu_esp8266flasher_config.png?​300}}| +
-| 3. Pomocí ESP8266Flasher.exe jsem nahrál vzniklý monolitický //​flash.bin//​ do adresy //​0x00000//:​ {{ wiki_nodemcu_esp8266flasher_mono.png?​300}}| +
-| 3. Nebo pomocí ESP8266Flasher.exe jsem nahrál vzniklý bootloader //​bin/​0x00000.bin//​ do adresy //0x00000// a firmware //​bin/​0x10000.bin//​ na adresu //​0x10000//:​ {{ wiki_nodemcu_esp8266flasher_dual.png?​300}}| +
-| 4. Předchozí kroky potvrdíme náhráním firmware na NodeMCU: {{ wiki_nodemcu_esp8266flasher_flashing.png?​300}}| +
-| 5. Nakonec se dočkáme uspěchu: {{ wiki_nodemcu_esp8266flasher_success.png?​300}}| +
- +
-==== Nahrání LUA skriptů na ESP8266 ==== +
-Nástrojů pro nahravání existuje víc než dost a jsou zdokumentovány ​[[https://​nodemcu.readthedocs.io/​en/​master/​en/​upload/​|zde]]. +
- +
-=== Nástroj Luatool === +
- +
-Stránka projektu na GitHubu: [[https://​github.com/​4refr0nt/​luatool|LUA Tool]] +
- +
-Stáhněte si ''​luatool'':​ +
-<​code>​ +
-$ mkdir -p ~/.opt && cd ~/.opt +
-$ git clone https://​github.com/​4refr0nt/​luatool.git +
-</​code>​ +
- +
-Nahrání //​init.lua//​ soboru: +
-<​code>​ +
-$ cd ~/​.opt/​luatool/​luatool +
-$ python luatool.py --port /​dev/​ttyUSB0 --src init.lua --dest init.lua --verbose +
-</​code>​ +
- +
-=== Nástroj ESPlorer === +
- +
-Stránka projektu na GitHubu: [[https://​github.com/​4refr0nt/​ESPlorer|ESPlorer]] +
- +
-ESPlorer můžete stáhnout [[http://​esp8266.ru/​esplorer/#​download|zde]]. +
- +
-ESPlorer je integrované vývojařské prosředí pro ESP8266, primarně podporující LUA pro NodeMCU, MicroPython a vybrané AT príkazy. Vyžaduje instalované JAVA prostředí ​Standard Edition - SE ver 7 a vyšší. +
- +
-Podporované platformy:​ +
- +
-  * Windows(x86,​ x86-64) +
-  * Linux(x86, x86-64, ARM soft & hard float) +
-  * Solaris(x86,​ x86-64) +
-  * Mac OS X(x86, x86-64, PPC, PPC64) +
-   +
-    {{ wiki_nodemcu_esplorer.png }}+
  
-Výstup ze konzole ESPloreru 
-<​code>​ 
-> =node.heap() 
-45264 
- 
-</​code>​ 
  
-==== Skriptovací prostředí ​==== +===== Prototypy =====
  
 +Prototypizované sestavy zařízení a technologií pro následné začlenění do IoT Infrastruktury
  
 +  * [[:​project:​nodemcu_httpd|NodeMCU HTTP Server]]
 +  * [[:​project:​nodemcu_mqtt|NodeMCU MQTT Klient]]
 +  * [[:​project:​nodemcu_ps|Perimetr Server]]
 +  * [[:​project:​nodemcu_ccs|Central Control Server]]
 +  * [[:​project:​nodemcu_lsa|Labka Smart API]]
 +  * [[:​project:​nodemcu_sd|Smart Dashboard]]
 +  * [[:​project:​nodemcu_ma|Mobile Applications]]
  
  • project/nodemcu.1477771419.txt.gz
  • Last modified: 2016/10/29 22:03
  • by licho