|**Project owner:**| [[user:lichnak|lichnak]], [[user:peterbay,|PeterBay]] | |**Interested:** | | |**Related:**| | |**Reference:**| https://Espressif.com | | **License:** | [[http://creativecommons.org/licenses/by-sa/4.0/|Uveďte původ-Zachovejte licenci; CC BY-SA]] | ===== 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. 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]]. PS C:\> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 14393 206 === Obsah === * [[#Nahrání NodeMCU firmware|Nahrání NodeMCU firmware]] * [[#Nástoj ESP8266 Flasher|Nástoj ESP8266 Flasher]] * [[#Nahrání LUA skriptů na ESP8266|Nahrání LUA skriptů na ESP8266]] * [[#Nástroj ESPlorer|Nástroj ESPlorer]] * [[#Instalace MongoDB Serveru|Instalace MongoDB Serveru]] * [[#Instalace Node.js|Instalace Node.js]] * [[#Instalace Pythonu|Instalace Pythonu]] * [[#Instalace Node-Red|Instalace Node-Red]] * [[#Instalace Mosquitto MQTT Broker|Instalace Mosquitto MQTT Broker]] * [[#Testování MQTT s MQTTLens|Testování MQTT s MQTTLens]] ==== Nahrání NodeMCU firmware ==== 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 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í]] ==== 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. %PATHNODEMCUFLASHER%\Win64\Release\ESP8266Flasher.exe Ověřit ve Správci zařízení seriový port pro kominikaci s NodeMCU. %SYSTEMROOT%\System32\devmgmt.msc {{project:wiki_nodemcu_comport_win.png}} === Postup pro nahrání firmwaru === * Připojit se na správný seriový port {{ project:wiki_nodemcu_esp8266flasher_com.png?300 }} * Změnit nastavení komunikace pro ESP8266 Flasher {{ project:wiki_nodemcu_esp8266flasher_config.png?300 }} * Pomocí ESP8266Flasher.exe jsem nahrál vzniklý monolitický //flash.bin// do adresy //0x00000// {{ project:wiki_nodemcu_esp8266flasher_mono.png?300 }} * Nebo pomocí ESP8266Flasher.exe jsem nahrál vzniklý bootloader //bin/0x00000.bin// do adresy //0x00000// a firmware //bin/0x10000.bin// na adresu //0x10000// {{ project:wiki_nodemcu_esp8266flasher_dual.png?300 }} * Předchozí kroky potvrdíme náhráním firmware na NodeMCU {{ project:wiki_nodemcu_esp8266flasher_flashing.png?300 }} * Nakonec se dočkáme uspěchu {{ project: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 ESPlorer ==== 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šší. Stránka projektu na GitHubu: [[https://github.com/4refr0nt/ESPlorer|ESPlorer]] ESPlorer můžete stáhnout [[http://esp8266.ru/esplorer/#download|zde]]. 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) {{ project:wiki_nodemcu_esplorer.png }} Výstup ze konzole ESPloreru > =node.heap() 45264 > ==== 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. Původní návod si mužete přečíst [[https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/|zde]]. * 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'' * Přidejte cestu k instalaci MongoDB do systémové proměné ''PATH'' PS C:\> $env:path += ";" + "C:\Program Files\mongodb\Server\3.2\bin" PS C:\> [Environment]::SetEnvironmentVariable("PATH", $env:path, "Machine") * Vytvoření složky pro databáze PS C:\> New-Item -ItemType "directory" -Path c:\data -Force PS C:\> New-Item -ItemType "directory" -Path c:\data\db -Force * Vytvoření složky pro logy PS C:\> New-Item -ItemType "directory" -Path "c:\data\log" -Force * Vytvoření logu PS C:\> New-Item -ItemType "file" -Path "c:\data\log\mongo.log" -Force * Vytvoření konfigurace pro MongoDB PS C:\> New-Item -ItemType "file" -Path "C:\Program Files\MongoDB\Server\3.2\bin\mongod.cfg" -Force PS C:\> $MONGODBCONF = "systemLog:`n destination: file`n path: c:\data\log\mongo.log`nstorage:`n dbPath: c:\data\db" PS C:\> $MONGODBCONF | Out-File -FilePath "C:\Program Files\MongoDB\Server\3.2\bin\mongod.cfg" -Append PS C:\> more "C:\Program Files\MongoDB\Server\3.2\bin\mongod.cfg" systemLog: destination: file path: C:\Data\log\mongod.log storage: dbPath: C:\Data\db * Vytvoření s spuštění MongoDB služby 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 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 ==== [[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é). Stránka dokumentace projektu [[https://nodejs.org/download/release/latest/docs/api/|Node.js API]] 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í 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") ==== Instalace Pythonu ==== Pro další práci budeme potřeboavat Python verze 2.7. Node.js balíček node-gyf nepodporuje Pyhthon v3.x.x * 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'' PS C:\> $Env:PATH += ";C:\Program Files\Python27" PS C:\> [Environment]::SetEnvironmentVariable("PATH", $Env:PATH, "Machine") PS C:\> [Environment]::SetEnvironmentVariable("PYTHON", "C:\Program Files\Python27", "Machine") * Nastavíme Node.js verzi Pythonu do konfigurace 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> ==== 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ů. 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 --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> Konfigurace pm2-windows-startup 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> Instalace 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>npm install -g node-red C:\Program Files\nodejs>npm install -g node-red-dashboard C:\Program Files\nodejs>exit PS C:\Program Files\nodejs> Spustění 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>node "%USERPROFILE%\AppData\Roaming\npm\node_modules\node-red\red.js" C:\Program Files\nodejs>exit PS C:\Program Files\nodejs> Konfigurace automatického spuštění 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 start "%USERPROFILE%\AppData\Roaming\npm\node_modules\node-red\red.js" C:\Program Files\nodejs>pm2 save C:\Program Files\nodejs>exit PS C:\Program Files\nodejs> Nyní můžeme spustit Node-RED editor na [[http://localhost:1880|http://localhost:1880]] {{project:wiki_nodemcu_windev_nodered.png}} ==== Instalace Mosquitto MQTT Broker ==== Pro roli MQTT Brokera jsme si vybrali implementaci Mosquitto. * Prvně si stáhněte potřebné instalační soubory pro [[https://slproweb.com/download/Win32OpenSSL_Light-1_0_2j.exe|OpenSSL]], [[http://mirror.ibcp.fr/pub/eclipse//mosquitto/binary/win32/mosquitto-1.4.10-install-win32.exe|Mosquitto]] a knihovnu [[ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/dll/x86/pthreadVC2.dll|pThreads]] * Nainstalujte OpenSSL balíček ''Win32OpenSSL_Light-1_0_2j.exe'' * Nainstalujte Mosquitto balíček ''mosquitto-1.4.10-install-win32.exe'' * Zkopírujte staženou knihovnu ''pthreadVC2.dll'' do instalační složky Mosquitto PS C:\> dir "C:\Program Files (x86)\mosquitto\pthreadVC2.dll" Directory: C:\Program Files (x86)\mosquitto Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 27.5.2012 1:00 55808 pthreadVC2.dll * Zkopírujte OpenSSL knihovny ''libeay32.dll'' a ''ssleay32.dll'' do instalační složky Mosquitto PS C:\> dir "C:\Program Files (x86)\OpenSSL-Win32-102j\*eay32.dll" Directory: C:\Program Files (x86)\OpenSSL-Win32-102j Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 26.9.2016 10:00 1265664 libeay32.dll -a---- 26.9.2016 10:00 274432 ssleay32.dll PS C:\> copy "C:\Program Files (x86)\OpenSSL-Win32-102j\*eay32.dll" "C:\Program Files (x86)\mosquitto\" PS C:\> dir "C:\Program Files (x86)\mosquitto\*eay32.dll" Directory: C:\Program Files (x86)\mosquitto Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 26.9.2016 10:00 1265664 libeay32.dll -a---- 26.9.2016 10:00 274432 ssleay32.dll * Pokud potřebujete upravte si nastavení Mosquitto konfigurace PS C:\> notepad "C:\Program Files (x86)\mosquitto\mosquitto.conf" * Spusťte Mosquitto službu PS C:\> Set-Service Mosquitto -Status Running PS C:\> Get-Service Mosquitto Status Name DisplayName ------ ---- ----------- Running mosquitto Mosquitto Broker ==== Testování MQTT s MQTTLens ==== Testování MQTT používám rozšíření pro prohlížeč Chrome MQTTLens. {{project:wiki_nodemcu_mqttlens.png?750}}