Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
project:nodemcu_windev [2016/11/20 01:57] licho |
project:nodemcu_windev [2016/11/20 19:26] licho [Nahrání NodeMCU firmware] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== NodeMCU - Vývojářské prostředí pro Windows ===== | ===== NodeMCU - Vývojářské prostředí pro Windows ===== | ||
Cílem tohoto návodu je vytvořit vývojařské prostředí pro práci a vývoj NodeMCU řešení na operačním systému Windows 10. | Cílem tohoto návodu je vytvořit vývojařské prostředí pro práci a vývoj NodeMCU řešení na operačním systému Windows 10. | ||
+ | |||
+ | Většina snippetů byla vyzkoušena v PowerShellu verze 5. PowerShell verze 5 je součástí balíčku The Windows Management Framework (WMF) 5.0 RTM. Balíček pro Windows 2008 R2 SP1/2012 R2/2012 a Windows 7 SP1/8.1 můžete stáhnout na stránce [[https://www.microsoft.com/en-us/download/details.aspx?id=50395|Microsoft Download Center]]. | ||
+ | <code> | ||
+ | PS C:\> $PSVersionTable.PSVersion | ||
+ | |||
+ | Major Minor Build Revision | ||
+ | ----- ----- ----- -------- | ||
+ | 5 1 14393 206 | ||
+ | </code> | ||
+ | |||
=== Obsah === | === Obsah === | ||
Line 19: | Line 29: | ||
V návodu [[nodemcu_lbe|Linux Firmware Build Environment]] jsme si ukázali jak NodeMCU firmware zkompilovat. Firmware je nyní potřeba do ESP8266 nahrát. K tomuto účelu jsou na internetu dostupné programy a skripty. Předvedeme si nástroj pro Windows napsaný v Delphi [[https://github.com/nodemcu/nodemcu-flasher|NodeMCU-Flasher]]. | V návodu [[nodemcu_lbe|Linux Firmware Build Environment]] jsme si ukázali jak NodeMCU firmware zkompilovat. Firmware je nyní potřeba do ESP8266 nahrát. K tomuto účelu jsou na internetu dostupné programy a skripty. Předvedeme si nástroj pro Windows napsaný v Delphi [[https://github.com/nodemcu/nodemcu-flasher|NodeMCU-Flasher]]. | ||
- | Před nahráním zompilovaného 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í|Důležité upozornění]] | + | 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í]] |
Line 45: | Line 55: | ||
* Připojit se na správný seriový port | * Připojit se na správný seriový port | ||
{{ wiki_nodemcu_esp8266flasher_com.png?300 }} | {{ wiki_nodemcu_esp8266flasher_com.png?300 }} | ||
- | == 2.) Změnit nastavení komunikace pro ESP8266Flasher == | + | * Změnit nastavení komunikace pro ESP8266 Flasher |
{{ wiki_nodemcu_esp8266flasher_config.png?300 }} | {{ wiki_nodemcu_esp8266flasher_config.png?300 }} | ||
- | == 3.1) Pomocí ESP8266Flasher.exe jsem nahrál vzniklý monolitický //flash.bin// do adresy //0x00000// == | + | * Pomocí ESP8266Flasher.exe jsem nahrál vzniklý monolitický //flash.bin// do adresy //0x00000// |
{{ wiki_nodemcu_esp8266flasher_mono.png?300 }} | {{ wiki_nodemcu_esp8266flasher_mono.png?300 }} | ||
- | == 3.2) Nebo pomocí ESP8266Flasher.exe jsem nahrál vzniklý bootloader //bin/0x00000.bin// do adresy //0x00000// a firmware //bin/0x10000.bin// na adresu //0x10000// == | + | * 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 }} | {{ wiki_nodemcu_esp8266flasher_dual.png?300 }} | ||
- | == 4.) Předchozí kroky potvrdíme náhráním firmware na NodeMCU == | + | * Předchozí kroky potvrdíme náhráním firmware na NodeMCU |
{{ wiki_nodemcu_esp8266flasher_flashing.png?300 }} | {{ wiki_nodemcu_esp8266flasher_flashing.png?300 }} | ||
- | == 5.) Nakonec se dočkáme uspěchu == | + | * Nakonec se dočkáme uspěchu |
{{ wiki_nodemcu_esp8266flasher_success.png?300 }} | {{ wiki_nodemcu_esp8266flasher_success.png?300 }} | ||
==== Nahrání LUA skriptů na ESP8266 ==== | ==== 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ů pro nahravání existuje víc než dost a jsou zdokumentovány [[https://nodemcu.readthedocs.io/en/master/en/upload/|zde]]. | ||
+ | |||
==== Nástroj ESPlorer ==== | ==== Nástroj ESPlorer ==== | ||
Line 144: | Line 156: | ||
==== Testování MQTT s MQTTLens ==== | ==== Testování MQTT s MQTTLens ==== | ||
- | Testování MQTT používám rozšíření pro prohlížeč Chrome MQTTLens | + | |
+ | Testování MQTT používám rozšíření pro prohlížeč Chrome MQTTLens. | ||
{{wiki_nodemcu_mqttlens.png?750}} | {{wiki_nodemcu_mqttlens.png?750}} | ||
- | | + | |
==== Instalace MongoDB Serveru ==== | ==== Instalace MongoDB Serveru ==== | ||
Pro ukládání dat jsme si vybrali MondoDB. MongoDB je multiplatformní dokumentová databáze. Řadí se mezi NoSQL databáze a místo tradičních relačních databází využívajících tabulky používá dokumenty podobné formátu JSON a dynamické databázové schéma, které umožňuje vytváření a integraci dat s Node.js. | Pro ukládání dat jsme si vybrali MondoDB. MongoDB je multiplatformní dokumentová databáze. Řadí se mezi NoSQL databáze a místo tradičních relačních databází využívajících tabulky používá dokumenty podobné formátu JSON a dynamické databázové schéma, které umožňuje vytváření a integraci dat s Node.js. | ||
Line 155: | Line 168: | ||
* Prvně si stáhněte instalační balíček [[https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi|mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi]] | * Prvně si stáhněte instalační balíček [[https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi|mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi]] | ||
- | * Nainstalujte balíček mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi | + | * Nainstalujte balíček ''mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi'' |
- | * Přidejte cestu k instalaci MongoDB do systémové proměné PATH | + | * Přidejte cestu k instalaci MongoDB do systémové proměné ''PATH'' |
<code> | <code> | ||
PS C:\> $env:path += ";" + "C:\Program Files\mongodb\Server\3.2\bin" | PS C:\> $env:path += ";" + "C:\Program Files\mongodb\Server\3.2\bin" | ||
Line 186: | Line 199: | ||
dbPath: C:\Data\db | dbPath: C:\Data\db | ||
</code> | </code> | ||
- | * Vytvoření MongoDB služby | + | * Vytvoření s spuštění MongoDB služby |
<code> | <code> | ||
PS C:\> Invoke-Expression "& `"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe`" --config `"C:\Program Files\MongoDB\Server\3.2\bin\mongod.cfg`" --install" | PS C:\> Invoke-Expression "& `"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe`" --config `"C:\Program Files\MongoDB\Server\3.2\bin\mongod.cfg`" --install" | ||
+ | PS C:\> Set-Service MongoDB -Status Running | ||
+ | PS C:\> Get-Service MongoDB | ||
+ | |||
+ | Status Name DisplayName | ||
+ | ------ ---- ----------- | ||
+ | Running MongoDB MongoDB | ||
</code> | </code> | ||
Pro automatickou instalaci jsem napsal v PowerShellu 5 [[https://github.com/lichnak/nodemcu-labka/blob/master/doc/wiki/cs/InstallMongoDB.ps1|MongDB Instalační PowerShell Skript]] | Pro automatickou instalaci jsem napsal v PowerShellu 5 [[https://github.com/lichnak/nodemcu-labka/blob/master/doc/wiki/cs/InstallMongoDB.ps1|MongDB Instalační PowerShell Skript]] | ||
- | + | ||
==== Instalace Node.js ==== | ==== Instalace Node.js ==== | ||
- | http://nodejs.org/download/ , | + | [[http://nodejs.org/|Node.js]] je vysoce výkonné, událostmi řízené prostředí pro Javascript. Základem Node.js je javascriptový interpret V8 z Google Chrome. Nad ním je tenká vrstva kódu v C++ poskytující minimální nutné zázemí (event-loop vyhodnocující příchozí události, obsluha I/O bufferů a jiné). |
- | https://nodejs.org/download/release/latest/docs/api/ | + | Stránka dokumentace projektu [[https://nodejs.org/download/release/latest/docs/api/|Node.js API]] |
- | * Download the 64 bits version (32 is for hipsters) [[https://nodejs.org/download/release/latest/node-v7.1.0-win-x64.7z|node-v7.1.0-win-x64.7z]] | + | |
- | * Install it anywhere you want, by default: C:\Program Files\nodejs | + | |
- | * Control Panel -> System -> Advanced system settings -> Environment Variables | + | |
- | * Select PATH and choose to edit it. | + | |
- | * If the PATH variable is empty, change it to this: C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs | + | |
- | * If the PATH variable already contains C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm, append the following right after: ;C:\Program Files\nodejs | + | Pokud používáté Node v7.1.0 reinstalujte Node.js na verzi v7.0.0. Node.js v7.1.0 má známou chybu pro platformu Windows, chyba znemožňuje správné spouštění Node aplikací při použítí Powershell nebo CMD. |
+ | |||
+ | * Stáhněte si 64 bitovou verzi Node.js (32 bitová je pro hipstery) [[https://nodejs.org/download/release/v7.0.0/node-v7.0.0-x64.msi|node-v7.0.0-x64.msi]] | ||
+ | * Nainstalujte balíček ''node-v7.0.0-x64.msi'', výchozí instalační cesta je ''C:\Program Files\nodejs'' | ||
+ | * Pokud jste si během instalace nevybrali možnost ''Add PATH'', pak přidejte cestu k instalaci Node.js a cestu do systémové proměné ''PATH'' nyní | ||
+ | <code> | ||
+ | PS C:\> $NPMPATH = $Env:USERPROFILE + "\AppData\Roaming\npm" | ||
+ | PS C:\> New-Item -ItemType "directory" -Path $NPMPATH | ||
+ | PS C:\> $Env:PATH += ";" + $NPMPATH + ";C:\Program Files\nodejs" | ||
+ | PS C:\> [Environment]::SetEnvironmentVariable("PATH", $Env:PATH, "Machine") | ||
+ | </code> | ||
- | * If the PATH variable contains information, but nothing regarding npm, append this to the end of the PATH: ;C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs | ||
- | * Now that the PATH variable is set correctly, you will still encounter errors. Manually go into the AppData directory and you will find that there is no npm directory inside Roaming. Manually create this directory. | + | ==== Instalace Pythonu ==== |
- | ==== Instalace Node.js balíčků ==== | + | Pro další práci budeme potřeboavat Python verze 2.7. Node.js balíček node-gyf nepodporuje Pyhthon v3.x.x |
- | Instalace Node.js balíčků mqtt, mongodb, pm2, pm2-windows-startup | + | * Stáhněte 64 bitovou verzi [[https://www.python.org/downloads/windows/download|Python v2.7]] |
+ | * Nainstalujte balíček ''python-2.7.12.amd64.msi'' | ||
+ | * Můžete použít výchozí nastavení instalace a následně přidat Python do systémový proměných ''PATH'' a ''PYTHON'' | ||
<code> | <code> | ||
- | npm install -g mqtt | + | PS C:\> $Env:PATH += ";C:\Program Files\Python27" |
- | npm install -g mongodb | + | PS C:\> [Environment]::SetEnvironmentVariable("PATH", $Env:PATH, "Machine") |
- | npm install -g pm2 | + | PS C:\> [Environment]::SetEnvironmentVariable("PYTHON", "C:\Program Files\Python27", "Machine") |
- | npm install -g pm2-windows-startup | + | |
</code> | </code> | ||
+ | * Nastavíme Node.js verzi Pythonu do konfigurace | ||
+ | <code> | ||
+ | PS C:\> cd "C:\Program Files\nodejs\" | ||
+ | PS C:\Program Files\nodejs> cmd | ||
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | C:\Program Files\nodejs>npm config set python "C:\Program Files\Python27\python.exe" | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
+ | </code> | ||
- | Konfigurace pm2-windows-startup | + | |
+ | ==== Instalace Node-Red ==== | ||
+ | |||
+ | |||
+ | Instalace Node.js balíčků potřebných pro následnou instalaci Node-Red. Prvně nainstalujte potřebné nástroje od Microsoftu ''windows-build-tools'' pro kompilaci Node.js balíčků, abychom předešli problémům s řešením závislostí balíčků. | ||
<code> | <code> | ||
- | pm2-startup install | + | PS C:\> cd "C:\Program Files\nodejs\" |
- | pm2 save | + | PS C:\Program Files\nodejs> cmd |
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | |||
+ | C:\Program Files\nodejs>npm install -g --production windows-build-tools | ||
+ | C:\Program Files\nodejs>npm install -g node-gyp | ||
+ | C:\Program Files\nodejs>npm install -g bindings | ||
+ | C:\Program Files\nodejs>npm install -g bcrypt | ||
+ | C:\Program Files\nodejs>npm install -g bson | ||
+ | C:\Program Files\nodejs>npm install -g bufferutil | ||
+ | C:\Program Files\nodejs>npm install -g kerberos | ||
+ | C:\Program Files\nodejs>npm install -g mqtt | ||
+ | C:\Program Files\nodejs>npm install -g mongodb | ||
+ | C:\Program Files\nodejs>npm install -g nan | ||
+ | C:\Program Files\nodejs>npm install -g node-sass | ||
+ | C:\Program Files\nodejs>npm install -g options | ||
+ | C:\Program Files\nodejs>npm install -g phantomjs | ||
+ | C:\Program Files\nodejs>npm install -g pm2 | ||
+ | C:\Program Files\nodejs>npm install -g pm2-windows-startup | ||
+ | C:\Program Files\nodejs>npm install -g sqlite3 | ||
+ | C:\Program Files\nodejs>npm install -g ultron | ||
+ | C:\Program Files\nodejs>npm install -g utf-8-validate | ||
+ | C:\Program Files\nodejs>npm install -g ws | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
</code> | </code> | ||
- | ==== Instalace Node-Red ==== | + | |
- | Instalace Node-Red | + | Konfigurace pm2-windows-startup |
<code> | <code> | ||
- | npm install -g node-red | + | PS C:\> cd "C:\Program Files\nodejs\" |
+ | PS C:\Program Files\nodejs> cmd | ||
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | |||
+ | C:\Program Files\nodejs>pm2-startup install | ||
+ | C:\Program Files\nodejs>pm2 save | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
</code> | </code> | ||
- | Instalace vlastní sestavy Node-Red | + | |
- | https://github.com/node-red/node-red/releases/latest | + | Instalace Node-Red |
<code> | <code> | ||
- | npm install --production | + | PS C:\> cd "C:\Program Files\nodejs\" |
+ | PS C:\Program Files\nodejs> cmd | ||
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | |||
+ | C:\Program Files\nodejs>npm install -g node-red | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
</code> | </code> | ||
Spustění Node-Red | Spustění Node-Red | ||
<code> | <code> | ||
- | node node_modules/node-red/red.js | + | PS C:\> cd "C:\Program Files\nodejs\" |
+ | PS C:\Program Files\nodejs> cmd | ||
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | |||
+ | C:\Program Files\nodejs>node node_modules/node-red/red.js | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
</code> | </code> | ||
Konfigurace automatického spuštění Node-Red | Konfigurace automatického spuštění Node-Red | ||
<code> | <code> | ||
- | pm2 start C:\Users\<USER-NAME>\AppData\Roaming\npm\node_modules\node-red\red.js --save | + | PS C:\> cd "C:\Program Files\nodejs\" |
+ | PS C:\Program Files\nodejs> cmd | ||
+ | Microsoft Windows [Version 10.0.14393] | ||
+ | (c) 2016 Microsoft Corporation. Všechna práva vyhrazena. | ||
+ | |||
+ | C:\Program Files\nodejs>pm2 start C:\Users\<USER-NAME>\AppData\Roaming\npm\node_modules\node-red\red.js --save | ||
+ | C:\Program Files\nodejs>exit | ||
+ | PS C:\Program Files\nodejs> | ||
</code> | </code> | ||
Nyní můžeme spustit Node-RED editor na [[http://localhost:1880|http://localhost:1880]] | Nyní můžeme spustit Node-RED editor na [[http://localhost:1880|http://localhost:1880]] | ||
- | | ||
- | Vytvoření Node-Red Služby pomocí NSSM | ||
- | [[https://nssm.cc/download|Non-Sucking Service Manager]] | ||
- | Následně spustíme nssm příkazy ze složky, kde jsem nssm naisntalovali: | + | |
- | <code> | + | |
- | mkdir c:\temp | + | |
- | nssm install Node-RED "c:\Users\\"%USERNAME%"\AppData\Roaming\npm\node-red.cmd" | + | |
- | nssm set Node-RED AppDirectory "c:\Users\\"%USERNAME%"\.node-red" | + | |
- | nssm set Node-RED AppParameters "-u c:\Users\\"%USERNAME%"\.node-red > c:\temp\node-red.log" | + | |
- | nssm set Node-RED Description "A wiring tool for the Internet of Things" | + | |
- | </code> | + | |