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
Last revision Both sides next revision
project:nodemcu [2016/10/29 21:56]
licho [Nahrání firmware na ESP8266]
project:nodemcu [2017/03/12 14:48]
licho
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 even-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.txt
  • Last modified: 2018/05/27 08:40
  • by cyberian