-
Notifications
You must be signed in to change notification settings - Fork 19
Firmware einspielen
Language: EN
vorherige Seite | nächste Seite |
---|---|
Bezugsquellen Einzelteile | Zusammenbau der Komponenten (Schaltung) |
Das Betriebssystem des Rechners, welches zum Übertragen ("flashen") des Sensors-Programms ("Firmware") auf den NodeMCU verwendet wird, benötigt einen Treiber / ein Modul um mit dem NodeMCU kommunizieren zu können. Der Rechner kommuniziert mit dem USB2Serial Chip, welcher auf der NodeMCU verbaut ist. Je nach Version des NodeMCU muss ein entsprechender Treiber installiert sein. Bei Linux Betriebssystemen ist in der Regel bereits ein passender Treiber vorhanden.
Wenn man die Version der vorliegenden NodeMCU nicht kennt, kann man sie umdrehen und nachschauen, ob da CP2102
oder CH340G
steht. Der Schriftzug ist alternativ auch (mit einer Lupe) auf einem der Chips auf dem NodeMCU zu finden.
CP210x-USB-to-UART-Bridge-Treiber
CH340G-Bridge-Treiber
- Treiberseite des Herstellers (chinesisch)
- Treiber für Mac oder für Sierrra siehe diese erfolgreich getesteten Instruktionen
- Treiber für Windows
- Treiber für Raspberry Pi
Nach der Installation der Treiber Rechner neu starten.
Bemerkung für MacOS 10.9 oder neuer: Wenn ein nicht-signierter Treiber installiert wird, muss dies in MacOS explizit erlaubt werden. Eine gute Beschreibung gibt es bei tzapu.com
Achtung: Für das Flashen (Aufspielen des Sensor-Programms) der NodeMCU ein USB-Kabel mit nicht mehr als 1m Länge benutzen.
Es werden im Folgenden drei Varianten beschrieben, mit denen sich dir Firmware auf den NodeMCU übertragen lassen. Aktuell wird die Variante 1 empfohlen, weil mit dieser Methode Tests und Auslieferungen durchgeführt werden.
Die Kommunikation zwischen Rechner und NodeMCU erfolgt über einen Anschluss ("Port"), welcher vom Betriebssystem unter einem bestimmten Namen angesprochen wird. Den Namen des Ports muss man wissen um die Software übertragen zu können.
Den passenden Port erfährt man zum Beispiel, indem man die NodeMCU am gewünschten Port anschließt und danach die Arduino IDE startet. Unter Werkzeuge → Port sind die verfügbaren Port zu sehen, meist ist recht einfach der Port mit der NodeMCU erkennbar. Einen Port auswählen und dann Werkzeuge → Boardinformationen holen ausführen. Ist der richtige Port gewählt, erscheinen Codes in der Statusleiste der IDE bei VID
und PID
. Die IDE danach wieder schließen, da sonst dieser Port blockiert ist.
- MAC: Beim
CP2102
wäre das auf der/dev/cu.SLAB_USBTOUART
, für denCH340G
ist es der Port/dev/cu.wchusbserialXXXXXXXX
. - Windows: Windows
COM3
. Wenn dies nicht der richtige ist, dann einfach den nächsten in der Liste auswählen. - Linux:
/dev/ttyUSB0
Die folgende Fehlermeldung kann bedeuten, dass der Arduino IDE bzw. dem ESP-Tool die Berechtigung für den Zugriff auf den USB-Port fehlt:
An error occurred while uploading the sketch
error: cannot access /dev/ttyUSB0
error: espcomm_open failed
error: espcomm_upload_mem failed
Für den Fall, dass die Zugriffsrechte fehlen, kann es helfen den Benutzer zur entsprechenden Benutzergruppe hinzuzufügen. Je nach Distribution den folgenden Befehl ausführen und anschließend den den Benutzer erneut anmelden.
- Debian, Ubuntu, Linux Mint, CentOS, OpenSuse und RedHat:
sudo usermod -a -G dialout $USER
- Manjaro, Arch und Gentoo:
sudo usermod -a -G uucp $USER
PlatformIO bietet eine einfache Möglichkeit alle Abhängigkeiten in der korrekten Version herunterzuladen. In dem folgenden Beispiel werden die Schritte für die freie IDE Visual Studio Code beschrieben. PlattformIO bietet auch Erweiterungen für andere IDEs an und kann auch per CLI ausgeführt werden. Das Vorgehen sollte dabei immer ähnlich sein.
- Visual Studio Code installieren.
- PlatformIO Core installieren.
- Die PlatformIO VSCode Erweiterung installieren.
- Das Sensor Software Repository clonen.
- In VSCode unter File → Open Folder... den Ordner airrohr-firmware von dem geklonten Repository öffnen.
- In den PlatformIO Einstellungen unter Device den Port des NodeMCU auswählen.
- Auf der linken Seite die PlatformIO Erweiterung auswählen, den
PROJECT TASKS
Tab öffnen und bei der gewünschten Environment (je nach Sprache) Upload auswählen. Anschließend sollte die Firmware kompiliert werden und auf den NodeMCU geschrieben werden.
In dieser Anleitung werden die Schritte gezeigt, um mit der Arduino IDE die Firmware selber zu kompilieren zu übertragen.
- Arduino IDE downloaden und installieren.
- Erweiterung für ESP8266 gemäß Anleitung zur Installation mit Boards Manager installieren.
- Arduino IDE beenden.
- Arduino IDE starten (die IDE soll nach der Installation der Erweiterungen neu gestartet werden).
- Alle [in der Contributing.md aufgelisteten Bibliotheken](Contributing.md installieren. Dabei auf die angegebenen Versionen achten.
- In der IDE unter Werkzeuge → Board: ... auswählen:
- NodeMCU 0.9 (ESP-12 Module) für NodeMCU v1
- NodeMCU 1.0 (ESP-12E Module) für NodeMCU v2 und v3
- Spätestens jetzt NodeMCU per USB-Kabel anschließen und den Port auswählen: Werkzeuge → Port.
- Quelltext in ein Verzeichnis auf dem Rechner kopieren. Den Quelltext bekommt man am einfachsten, in dem man das Repository klont oder das Repository als Archiv herunterlädt und entpackt. Alternativ können alle Dateien aus dem Quelltext-Verzeichnis einzeln in ein lokales Verzeichnis kopiert werden. Tipp: um den Code von einzelnen Dateien über das GitHub Webinterface besser zu kopieren jeweils auf RAW Button klicken
- Als nächstes das sogenannte Sketch (
INO
) Datei in der Arduino IDE öffnen. - Die Datei
ext_def.h
an die eigenen Anforderungen anpassen (WLAN-Einstellungen, Sensoren, wohin mit den Daten, ...) - NodeMCU flashen: Im Menü Sketch → Hochladen klicken.
In dieser Variante wird die Firmware per Kommandozeile hochgeladen. Die Arduino IDE muss trotzdem installiert sein.
- Arduino IDE downloaden und installieren.
- Erweiterung für ESP8266 gemäß Anleitung zur Installation mit Boards Manager installieren.
- Arduino IDE beenden.
- Download der fertig übersetzten Firmware
- Unter Windows die Kommandozeile, unter Linux/MacOS ein Terminal öffnen
- Bitte im folgenden Schritt beachten: Je nach Version der Arduino-IDE kann sich die Version des ESPTools unterscheiden. In unserem Beispiel war Version 0.4.12 aktuell. Gegebenenfalls muss dann im Pfad die Versionsnummer angepasst werden:
- Windows:
"%USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.13\esptool.exe" -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp COM11 -cf "_Pfad_zur_heruntergeladenen_Firmwaredatei_"
(der Port hinter-cp
muss gegebenenfalls angepasst werden, die Anführungszeichen sollten mit eingegeben werden) - Linux/MacOS:
$PFAD_ZU_ESPTOOL -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp $USBPORT -cf $BINARY
Wobei:-
$PFAD_ZU_ESPTOOL
der Pfad zum ESP Tool ist (z.B.~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.13/esptool
oder~/.arduino15/packages/esp8266/tools/esptool/0.4.13/esptool
) -
$USBPORT
der Pfad zum USB-Port ist (z.B./dev/cu.wchusbserial1410
oder/dev/ttyUSB0
) -
$BINARY
der Pfad zum Kompilat ist (z.B.latest.bin
odersensors-software/airrohr-firmware/airrohr-firmware.ino.nodemcu.bin
) - Eventuell muss man dies als root ausführen. Dann muss im Pfad
~
durch das Home-Verzeichnis (z.B./home/MaxMustermann
) ersetzt werden. - Der zusammengesetzte Aufruf kann dann so aussehen:
-
~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.13/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/cu.wchusbserial1410 -cf latest.bin
oder ~/.arduino15/packages/esp8266/tools/esptool/0.4.12/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/ttyUSB0 -cf airrohr-firmware.ino.nodemcu.bin
-
-
- Windows:
Beschreibung der Parameter:
-vv zeigt Informationen während des Flashens (vereinfacht die Fehlersuche)
-cd nodemcu welche Reset-Methode soll genutzt werden
-cb 57600 Baudrate, mit der geflash wird
-ca 0x00000 Startadresse, ab der geflash wird
-cp <pfad> Pfad zum Port, an dem die NodeMCU angeschlossen ist
-cf <pfad> Pfad zur heruntergeladenen Firmwaredatei
Für Linux (MacOs ungetestet, evtl. mit Pfadanpassung) gibt es hier ein Skript, das auch die Konfiguration löschen kann (s.u.).
Über die Arduino IDE lässt sich die gespeicherte Konfiguration mit dem Plugin ESP8266 Sketch data upload löschen. Das Plugin nach Anleitung installieren. Beim Ausführen des Plugins kommt eine Meldung, dass das Daten-Verzeichnis leer ist, und ob man ein leeres SPIFFS Image hochladen möchte. Diese Meldung mit "Ja" beantworten. Der Upload der 3 MB kann dann etwas dauern. Wenn der Upload fertig ist, kann die NodeMCU neu gestartet werden.
Das Vorgehen entspricht Variante 3 des Firmware Einspielens. Als "Firmware"-Datei diese Datei herunterladen. Der Aufruf des esptool muss dann geändert werden bei -ca 0x00000
auf -ca 0x100000
und der Pfad zur "Firmware"-Datei auf den eben erfolgten Download. Implementiert in einem Skript hier zu finden.
In der Arduino IDE Werkzeuge → Serieller Monitor aktivieren, damit man über USB Schnittstelle die aktuellen Daten lokal anschauen kann. Hierzu im Monitor die Baudrate auf 9600 stellen.
Nun kann überprüfen, ob es an einer Stelle zu Fehlern führt, z.B. NodeMCU kann sich nicht ins W-LAN einloggen, kann die Daten nicht hochladen, …
- Wiki home, EN
- Bezugsquellen Einzelteile, EN
- Firmware einspielen, EN
- Zusammenbau der Komponenten (Schaltung), EN
- Zusammenbau der Komponenten (Montage Einzelteile), EN
- Sensor-Konfiguration, EN
- Eintrag in der Datenbank, EN
- Links (Grafiken, Sensor-Infos), EN
- Translations
- Data format
- APIs, EN
- Anschluss weitere Sensoren und Hardware
- Senden an Sensor.Community (z.B. mit Raspberry Pi)
- NodeMCU Pinouts v2, v3
- Datenblätter, Spezifikationen
- Unterstützte Sensoren
- Studien
- ähnliche Projekte
- Korrektur Luftfeuchte, EN
- EN: How to use the SDS011 as a mobile sensor
- FR: Comment utiliser SDS011 comme capteur PM mobile
- 2020-04-0 Stadtbücherei - Weihnachtsferien
- 2020-04-0 Shackspace
- 2020-03-24 Stadtbücherei - Weihnachtsferien
- 2020-03-10 Shackspace
- 2020-02-23 Stadtbücherei
- 2020-02-09 Shackspace
- 2020-01-0 Stadtbücherei
- 2020-01-0 Shackspace
- 2019-12-24 Stadtbücherei - Weihnachtsferien
- 2019-12-10 Shackspace
- 2019-11-26 Stadtbücherei
- 2019-11-12 Shackspace
- 2019-10-22 Stadtbücherei
- 2019-10-08 Shackspace
- 2019-09-24 Stadtbücherei
- 2019-09-10 Shackspace
- 2019-09-24 Stadtbücherei
- 2019-09-10 Shackspace
- 2019-08-27 Stadtbücherei
- 2019-08-13 Shackspace - Sommerferien
- 2019-07-23 Stadtbücherei
- 2019-07-09 Shackspace
- 2019-06-25 Stadtbücherei
- 2019-06-11 Shackspace - Pfingstferien
- 2019-05-28 Stadtbücherei
- 2019-05-14 Shackspace
- 2019-04-23 Stadtbücherei - Osterferien
- 2019-04-09 Shackspace
- 2019-03-26 Stadtbücherei
- 2019-03-12 Shackspace
- 2019-02-26 Stadtbücherei
- 2019-02-12 Shackspace
- 2019-01-22 Stadtbücherei
- 2019-01-08 Shackspace
- 2018-12-18 Stadtbücherei - Weihnachtsferien
- 2018-12-11 Shackspace
- 2018-11-27 Stadtbücherei
- 2018-11-13 Shackspace
- 2018-10-23 Stadtbücherei
- 2018-10-09 Shackspace
- 2018-09-25 Stadtbücherei
- 2018-09-11 Shackspace
- 2018-08-28 Stadtbücherei
- 2018-08-14 Shackspace - Sommerpause
- 2018-07-24 Stadtbücherei
- 2018-07-10 Shackspace
- 2018-06-26 Stadtbücherei
- 2018-06-12 Shackspace
- 2018-05-22 Stadtbücherei
- 2018-05-08 Shackspace
- 2018-04-24 Stadtbücherei
- 2018-04-10 Shackspace
- 2018-03-27 Stadtbücherei
- 2018-03-13 Shackspace
- 2018-03-03 Open Data Day 2018
- 2018-02-27 Stadtbücherei
- 2018-02-13 Shackspace
- 2018-01-23 Stadtbücherei
- 2018-01-09 Shackspace
- 2017-12-26 Stadtbücherei
- 2017-12-12 Shackspace
- 2017-11-28 Stadtbücherei
- 2017-11-14 Shackspace
- 2017-10-24 Stadtbücherei
- 2017-10-10 Shackspace
- 2017-09-26 Stadtbücherei
- 2017-09-12 Shackspace
- 2017-08-22 Stadtbücherei
- 2017-08-08 Shackspace
- 2017-07-25 Stadtbücherei
- 2017-07-11 Shackspace
- 2017-06-27 Stadtbücherei
- 2017-06-13 Shackspace
- 2017-05-23 Stadtbücherei
- 2017-05-09 Shackspace
- 2017-04-25 Stadtbücherei
- 2017-04-11 Shackspace
- 2017-03-28 Stadtbücherei
- 2017-03-14 Shackspace
- 2017-03-04 Open Data Day 2017
- 2017-02-28 Stadtbücherei
- 2017-02-14 Shackspace
- 2017-01-24 Stadtbücherei
- 2017-01-10 Shackspace
- 2016-12-20 Stadtbücherei
- 2016-12-13 Shackspace
- 2016-11-22 Stadtbücherei
- 2016-11-08 Shackspace
- 2016-10-25 Stadtbücherei
- 2016-10-11 Shackspace
- 2016-09-27 Stadtbücherei
- 2016-09-13 Shackspace
- 2016-08-23 Stadtbücherei
- 2016-08-09 Shackspace
- 2016-07-26 Stadtbücherei
- 2016-07-12 Shackspace
for more, see Protokolle