Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
project:nodemcu [2016/10/29 21:56] 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 při instalaci a nastavení prostředí na Ubuntu Serveru, a následné kompilace firmware pomocí nástroje ''make''. | + | Prvně uveďme předběžnou predstavu o zpracování dat ze senzorů a ovládání vzdálených zařízení. Hlavní komunikační a ovládací komponenty jsou postavené na technlogiích MQTT a 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}} | ||
- |