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 21:50]
licho [Nahrání firmware na ESP8266]
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]] 
 +  * [[:​project:​nodemcu_le|NodeMCU LUA Skriptovací prostředí]]
  
-V instalátoru Ubuntu vybereme pouze **"​Basic Ubuntu Server"​** a **"​openSSH Server"​** 
  
-Po restaru je potřeba doinstalovat následující aplikace +===== Prototypy =====
-<​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+Prototypizované sestavy zařízení a technologií pro následné začlenění ​do IoT Infrastruktury
  
-$ sudo pip install mkdocs +  * [[:​project:​nodemcu_httpd|NodeMCU HTTP Server]] 
-</​code>​+  * [[:​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]]
  
-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 na ESP8266 ==== 
- 
-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>​ 
-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 
-$ cd ~/​.opt/​luatool/​luatool 
-</​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}} 
-  
  • project/nodemcu.1477770649.txt.gz
  • Last modified: 2016/10/29 21:50
  • by licho