User Tools

Site Tools


wio:firststeps-de

Deutsche VersionEnglish Version

WIO ESP/Pico Erste Schritte

Einführung

WIO ist die Abkürzung für Wireless I/O.

Eine Anbindung über USB WIOhub ist auch möglich, Hierrüber können aus Arduino UIO angebunden werden


Mit Hilfe der WIO Module ist können fast alle für die Modellbahn Steuerungs- und Rückmeldefälle abgedeckt werden.

  • Ausgänge für LED oder Relais mit Optokopler
  • Eingänge für Rückmeldung
  • Servos
  • Schrittmotoren
  • RFID
  • NeoPixel LED
  • Displays
  • Charlyplexing für Signale (Multiplexing)
  • DCC Signalgenerator
  • Handregler
  • Sound


Für Komplexere Abläufe können Skripte für den Start Crontab, Ausgänge IOScript und NeoPixel LEDScript erstellt werden.

Hardware

Es gibt zwei Platformen für WIO, die Mikrocontroller von Espressif ESP8266, ESP32 und den RP2040(PicoW) der Raspberry Pi Foundation.

Im Forum unterstützt werden die Typen:

  • D1 Mini NodeMcu mit ESP8266-12F
  • ESP32 D1 Mini NodeMCU
  • LOLIN D32 V1.0.0
  • Raspberry Pi Pico W RP2040


Für diese Module gibt es Platinen und Bausätze bei GCA.
Bei den Ein- und Ausgängen gibt es zwei unterschiedliche Typen :

WIO 01 und WIO 02 haben 32 Ein/Ausgänge welche über Portexpander mcp23017 am I2C Bus liegen.
Bei WIO I/O16, ESP 32 D1 Mini sowie Raspbery Pico können 16 Ein/Ausgänge direkt an die Pins des Boards angeschlossen werden.

Übersicht der Optionen der unterschiedlichen Boards.

Funktion WIO-01 WIO-02 WIO-03 WIOpico
16IO Onboard x x
32IO mit MCP23017 x x
4 Servo Onboard x x x nur 12IO x
2x RFID mit RC522 x x x x
2x Display Onboard über I2C
10 Displays mit I2C Multiplexer.
x x x x
Railcom über GCA214 x
NeoPixel 64/192 Onboard
Bei mehreren LED's ist eine externe Stromversorgung notwendig.
x x x x
Stepper über Treiberplatine x x nur 12IO x nur 12IO
I2C conector Onboard
Ggf. mit Signalverstärker.
x x x x
BS1 connector x
4x Charlyplexing Onboard mit 3,3 Volt
5 Volt mit Level Shifter
x kein NeoPixel x kein NeoPixel
Battery Sensor
siehe Schemata den jeweiligen Boards
x x
DCC
Über H-Brücke
x x
RCAN/MBUS Onboard x
Sound Onboard x


Die Pinbelegung der jeweiligen Boards sind hier zu finden:


Documents


Aufspielen der Software ESP

Es gibt je nach Betriebssystem und Fähigkeiten des Benutzers mehrere Möglichkeiten einen ESP mit der WIO-Software zu flashen.
Hier wird der Weg beschrieben welcher für alle Betriebssysteme geeignet ist und die wenigsten Vorkenntnisse erfordert.

Benutzer des Raspberry Pico W können sich erst mal zurücklehnen und kommen dann hier wieder hinzu Einrichten WIOpico.

Der Upload auf den ESP erfolgt in 2 Schritten, zuerst wird ein Sketch für OTA (Over-the-air Programming) auf den ESP übertragen und
im 2.ten erfolgt das eigentliche aufspielen der WIO Software.

Für das Aufspielen des OTA Sketchs benötigen wir die Arduino IDE diese kann hier für das entsprechende Betriebsystem heruntergeladen werden.

Nach der Installation müssen noch die Boardverwalter für die ESP's hinzugefügt werden, hierfür muss unter Datei/Einstellungen,


bei "Zusätzliche Boardverwalter-URLs" folgendes eingetragen werden.

https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json


Jetzt müssen die Boardeigenschaften für den ESP 8266 und ESP 32 hinzugefügt werden, hierfür unter "Werkzeuge" / "Board:" auf "Board-Verwaltung" klicken.


Nun werden zu erst die Daten für die neuen Boards durch die Arduino-IDE heruntergeladen, das kann ein paar Minuten dauern.
Der Fortschritt wird unten rechts angezeigt.

Ist dies abgeschlossen können die ESP8266 und ESP32 den Boards hinzugefügt werden.
In die Suche "8266" eingeben und INSTALLIEREN anklicken.

Dies mit "esp32" wiederholen.

Hiermit ist die Grundeinrichtung der IDE abgeschlossen.

Übertragen des OTA Sketch


Zuerst wird er RROTA Sketch benötigt diesen bekommen wir von hier.
Die Zip Datei "WPS-OTA-Sketch" herunterladen, entpacken und die RROTA.ino mit einem doppelklick öffen.

Die Frage "Die Datei "RROTA.ino" muss sich in einem Sketch-Ordner "RROTA" befinden. Soll der Ordner angelegt, die Datei verschoben und danach fortgefahren werden?" mit Ok bestätigen.

Die Zeilen 1,2 und 3 müssen angepasst werden.

#define WIFI_SSID     "Mein WLAN"  // Accesspoint name
#define WIFI_PWD      "ganzgeheim"  // Password
#define WIFI_HOSTNAME "RROTA"   // ESP hostname
#define WIFI_WPS      false      // true or false for ESP8266 for using WPS

In Zeile 1 Die SSID des eigenen WLANs eintragen.
In Zeile 2 Das dazugehörige Passwort.
In Zeile 3 WPS deaktivieren hierfür das true in false ändern.

Unter Werkzeuge / Board: / esp32* / das verwendete Board auswählen (In diesem Beispiel der ESP32 D1 Mini).
*Für den D1 Mini NodeMcu unter "esp8266" suchen.


Nun den ESP via USB mit dem Rechner verbinden.
In der Arduino IDE muss jetzt der USB Port gewählt werden, unter Linux ist dies meist der "ttyUSB0".
In Windows kann man im Gerätemanager nachsehen.


Nun über den Pfeil Button, oben links, den Sketch hochladen.

Nach dem der Sketch hochgeladen ist, oben rechts den Seriellen Monitor öffnen.
Wenn alles passt erscheint dort folgendes:

WiFi waiting to connect: Mein WLAN...
WiFi connected to Mein WLAN
setup OTA...192.168.0.109


Der ESP ist nun im OTA Modus.

WIO Source über Rocview auf den ESP übertragen


Zuerst wird die zum ESP gehörige BIN benötigt, diese ist unter Daily & Regular Builds unter "RaspberryPi / WIO" zu finden.
In diesem Beispiel verwende ich die "WIO ESP32 D1 Mini32" und speichere diese auf dem Rechner.

Nun Rocrail starten den WIO-Dialog öffnen und zum Punkt Update gehen, mit dem Button Binary WIO file: wird die gerade heruntergeladene BIN geöffnet.
In das Feld IP die IP-Adresse aus dem Monitor der Arduino IDE eintragen und bei Port des jeweiligen Boards, in diesem Fall die 3232.
Jetzt auf Start OTA gehen, die BIN wird nun auf den ESP übertragen, erscheint im Serverfenster "9999 OTA: OK [OK]" dann war die Übertragung erfolgreich.


Nun die Arduino IDE schließen, beziehungsweise zumindest den Seriellen Monitor da dieser die weitere Einrichtung behindert.


Aufspielen der Software Raspberry Pico W


Die ESP Nutzer können hier kurz mitlesen ist aber für diese nicht relevant.

Den Pico an den USB-Eingang des PC's verbinden, hierbei die BOOTSEL Taste drücken.

Der Pico verbindet sich nun als Speichermedium und wird als Laufwerk "RPI-RP2" angezeigt.

Nun unter Daily & Regular Builds die "WIO Pico-W USB" herunterladen und auf dem Pico speichern.
Dieser startet danach neu und ist nun nicht mehr als Laufwerk sichtbar.

Der Pico ist jetzt mit der WIO-Source bespielt und es kann mit der gemeinsamen Einrichtung weiter gehen.


WIO mit Rocrail verbinden

Im WIO Dialog auf den Reiter Wartung gehen.

Über den Button "Geräte suchen" wird der, an den Recher mit Rocview, angeschlossene WIO erkannt.

Wenn auf "Verbinden" gedrückt wird sollte im Fenster des Dialogs folgendes angezeigt werden:

Rocrail - Model Railroad Software
Copyright (c) 2002-2022 Robert Jan Versluis, Rocrail.net
All rights reserved.
WIO 664
.......


Jetzt werden unter WLAN über "Suchen" die vorhandenen WLAN SSID angezeigt.
Hier wählen Sie ihres aus und geben das Passwort ein, über Button "Einstellen" wird die Verbindung hergestellt.

Der WIO sollte sich jetzt mit dem Rocrailserver verbinden und unter dem Reiter Abfrage angezeigt werden, eventuell muss hierfür dort der Button "Abfrage" gedrückt werden.

Sollte dies nicht der Fall sein, kann in der Wartung zusätzlich die Server-IP eingetragen werden, in diesem Fall muss dann auch der Harken bei Automatisch entfernt werden.

Die Ersteinrichtung ist damit abgeschlossen.

Konfiguration des WIO


WIO als Zentrale einrichten


Über Datei / Rocrail Eigenschaften im Reiter Zentrale, WIO hinzufügen.



Danach Rocrail neu starten.

Grundlegenden Einstellungen

Zu Anfang sollten im WIO Dialog unter Abfrage folgende Einstellungen vorgenommen werden.

Als erstes die Kennung ändern, die Default ID für neu eingerichtete WIO ist die 33, wenn diese nicht geändert wird kann kein kein weiterer WIO hinzugefügt werden.

Nun kann noch der Name abgeändert werden dieser dient zur Identifizierung im Netzwerk und in den Dialogen von Rocrail, für die eigentliche Steuerung wird die ID verwendet, die maximale Länge beträgt 8 Zeichen.

Mit dem Button Einstellen werden die Änderungen übernommen.



Einstellen des WIO Typen

Für die ESP muss nun der WIO Typ ausgewählt werden, in den ersten Schritten wird sich auf die Typen LED, Servo und I/O16 beschränkt, weitere Typen bitte dem Wiki entnehmen. WIO - Konfiguration

Beim Raspbery Pico muss nichts eingestellt werden, da dieser nur als Typ I/O16 verfügbat ist, für den ESP 32 D1 mini als I/O 16 muss diese Einstellung noch vorgenommen werden da dieser auch noch als andere Type verwendet werden kann.
Weitere Einstellungen sind nicht notwendig, da der WIO I/O16 den Typ anhand des ersten Befehls nach dem Neustart festlegt.

Bei WIO-01 und WIO-02 muss definiert werden ob über den WIO, Servos oder NeoPixel LED's (WS2812,WS2811) angesteuert werden soll.

Der Type wird über den Button "Einstellen" gespeichert.

Einrichten der Ein/Ausgänge


Im WIO Dialog den zu konfigurierenden WIO aktivieren und auf den Reiter Einstellung wechseln.



Auf der linken Seite befindet sich die Port Configuration:



Hier können die I/O's des WIO eingestellt werden es gibt 4 Typen:

  • "i" Input / Eingang
  • "o" Output / Ausgang
  • "p" Pulse / Ausgang mit Abschaltung z.B. für Magnetartikel
  • "b" Block /Eingang entprellt für Rückmelder wie Kontaktgleise, Lichtschranken, ….
  • Invert (o,p) Invertierung der Ausgänge, Default zustand eines Ausgangs ist Low (minus) durch aktivieren geht dieser bei off auf High (3,3 Volt plus).


Erst sind nur 8 der 16-32 IO's zu sehen. Über die Pfeiltasten im unteren Bereich kann zu den weiteren IO`s gewechselt werden, bitte beachten das vor dem Wechsel gegebenenfalls vorgenommene Änderungen mit dem Button "Set" gespeichert werden müssen.

Konfigurieren eines Ausgangs im Plan

Im folgende Beispiel wird der erste Ausgang des WIO mit der ID 1 eingerichtet.
Im Plan über die rechte Maustaste die Einstellungen öffnen und auf den Reiter "Schnittstelle" wechseln.



Bei der Schnittstellenkennung "WIO" auswählen, in die Knoten-ID die ID des WIO im Beispiel die "1" und in der Adresse die ebenfalls die "1" für den ersten Ausgang eintragen.

Konfigurieren eines Rückmelders

Im Beispiel verwenden wir hierfür den I/O Nummer 3 dieser muss zuerst im WIO-Dialog der IO auf Block eingestellt werden.



Der einfachste Weg ist über den Rückmelder-Monitor diesen öffnen auf "Alles löschen" klicken, nun den Rückmelder auslösen.


Nun den Eintrag via Drag and Drop auf den Rückmelder ziehen, der Rückmelder ist dann wie folgt eingerichtet.

Konfigurieren eines Magnetartikel Flügel-Signals oder einer Weiche

Hier verwenden wir den I/O Nummer 4 und 5 diese müssen zuerst im WIO-Dialog der IO auf Pulse eingestellt werden, dadurch schaltet der Ausgang nach den unter Pulse mit 50x10ms eingestellten 500 ms wieder aus, dies verhindert ein durchbrennen der Spüle



In den Signal Einstellungen unter Schnittstelle die Schnittstellenkennung "WIO" wählen, in die Konten-ID die ID des WIO eintragen, bei Adresse ROT die 4 eintragen und den Haken bei Typ Weiche setzen.
Die zweite Adresse wird nicht eingetragen, für diese der Folge-IO (5) hinterlegt.



Für eine Weiche ist die Vorgehensweise identisch.

Konfigurieren eines Lichtsignals an den I/O

Im Beispiel verwenden wir für ein 3 begriffiges Lichtsignal die IO's 6-8 diese müssen als Output definiert sein.



Unter den Einstellungen für ROT, GRÜN und GELB die Adressen 6, 7 und 8 eintragen.
Bei Signalen mit gemeinsamer Anode muss Invert aktiviert werden.



Um HP2 anzeigen zu können muss unter Steuerung "Begriffs-Nummern aktiviert werden, bei einem Signal mit 2 Begriffen ist dies nicht notwendig.
Zur weiteren Einstellung von HP2 nun auf den Reiter Einzelheiten wechseln, dort die Begriffsnummern eintragen.
ROT = 0, GRÜN = 1 und GELB = 2


Hinter dem Nummernfeld unter Wert auf den Button mit den 3 Punkten klicken.

Bei ROT LED 1 auf On setzen.

Bei Grün LED 2 auf On setzen.

Bei GELB LED 2+3 auf On setzen,

Info:
WIO unterstütz auch Charlieplexing für Viessmann Multiplex Signale.

Einstellen von NeoPixel WS2812/WS2811


Mit WIO können bis zu 64 RGB LED angesteuert werden, diese können neben normalen Beleuchtungen auch Signale mit bis zu 6 Begriffen schalten. Bei WIO 01 und 02 muss dafür der Typ aktiviert werden

Einstellungen im Ausgang


Folgende Einstellungen im Reiter Schnittstelle vornehmen:

  • Schnittstellenkennung WIO eintragen,
  • Bei Knoten ID, die ID des WIO
  • Bei Adresse die Nummer des WS2812/2811 in der Kette (1-64)
  • Unter Wert wird die Helligkeit eingestellt 1-255
  • Bei Optionen Farbe
  • Aus Zubehör den Haken nehmen und LED aktivieren.


Nun zum Reiter Farbe wechseln hier können die Farbwerte für die LED eingetragen werden.
Unter RGB in die Felder rot, grün und blau den gewünschten Farbwert von 0-255 eingetragen.

Bei Type kann der Ausgang für die unterschiedlichen Protokolle von WS 2812 (RGB) und WS 2811 (GRB) angepasst werden.


Weitere Optionen im Reiter Schnittstelle:

  • Unter Parameter Ein können Folge-LED's eingetragen werden, bei Wert 3 geht die erste LED und die 2 Folgenden an.
  • Mit Verzögerung wird ein Ein- und Ausblenden konfiguriert, Wert 0-15.
  • Unter Optionen steht zusätzlich Blinken zur Verfügung.


NeoPixel Signal Einstellungen


Nachfolgend wird die Einrichtung für die WS2811 Platinen erläutert. An diese können bis zu 6 einzelne LED angeschlossen werden.
Wichtig hierbei ist zu beachten das beim WS2811 Protokoll Rot und Grün vertauscht sind.
Also Rot ist Grün, Grün ist Rot und Gelb ist Blau auf dem Chip.


Unter Schnittstelle sehen die Einträge wie folgt aus:

  • Schnittstellenkennung WIO eintragen
  • Bei Knoten ID, die ID des WIO
  • Bei Adresse die Nummer des WS2812/2811 in der Kette (1-64)
  • Helligkeit 1-255
  • Unter Steuerung Begriffs-Nummern aktivieren
  • Type ist LED
  • Optional ist unter Dimmen ein Überblenden einstellbar.



Im Reiter Einzelheiten geht es für ein Signal mit 3 Begriffen wie folgt weiter:

  • Zuerst die Nummern eintragen 0-2


  • Hinter den Nummerfeldern auf das Feld mit den 3 … (Aspect value) klicken.
  • Bei Rot LED 2 auf On setzen, für den roten Ausgang auf der Platine. HP1
  • Bei Grün LED 1 auf On setzen, für den grünen Ausgang auf der Platine. HP0
  • Bei Gelb LED 1 und 3 auf On setzen, für den grünen und blauen Ausgang auf der Platine. HP2

Wird Blink aktiviert blinken die LED, die Frequenz wird über Dimmen in der Schnittstelle eingestellt.



Um die bis zu 3 weiteren LED's anzusteuern mit den LED 4-6 im Aspect value fortfahren.
Als Ausgänge werden dann die von der folgenden WS2811 Platine genommen. Auch wenn nur eine weitere LED (Nr. 4) angeschlossen wird ist eine Nutzung der nicht benutzten LED Ausgänge nicht möglich.

wio/firststeps-de.txt · Last modified: 2023/01/29 13:14 by babbel