Wake-on-LAN-Nachrüstung mit ESP8266: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir eine netzwerkbasierte Boot-Signalisierung mittels eines ESP8266 nachgerüstet.
Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir folgende netzwerkbasierte Boot-Signalisierung auf Basis eines ESP8266-Moduls nachgerüstet. Mit dieser lässt sich das Mediacenter z.B. via [[OpenHAB]] zuverlässig hoch- und herunterfahren.


== Idee ==
== Idee ==


* Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt.
* Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt.
* Auf dem ESP läuft ein MQTT-Client, der bei einem entsprechenden Befehl (<code>ON</code>/<code>OFF</code>/<code>TOOGLE</code>) einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird.
* Auf dem ESP läuft ein MQTT-Client, der bei einem entsprechenden Befehl (<code>ON</code>/<code>OFF</code>/<code>TOGGLE</code>) einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird.
* Beim <code>TOOGLE</code>-Befehl wird dies immer ausgeführt, bei den <code>ON</code>/<code>OFF</code>-Befehlen wird vorher geprüft, ob das Mediacenter schon läuft. Als Input hierfür fungiert ein "nicht-standby" 3V3 oder 5V Power Pin auf dem TPM-Header des Mainboards, der nur im laufenden Betrieb mit Strom versorgt wird.
* Beim <code>TOGGLE</code>-Befehl wird dies immer ausgeführt, bei den <code>ON</code>/<code>OFF</code>-Befehlen wird vorher geprüft, ob das Mediacenter schon läuft. Als Input hierfür fungiert ein "nicht-standby" 3V3 oder 5V Power Pin auf dem TPM-Header des Mainboards, der nur im laufenden Betrieb mit Strom versorgt wird.
* Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden.
* Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden.



Latest revision as of 07:03, 29 June 2022

Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir folgende netzwerkbasierte Boot-Signalisierung auf Basis eines ESP8266-Moduls nachgerüstet. Mit dieser lässt sich das Mediacenter z.B. via OpenHAB zuverlässig hoch- und herunterfahren.

Idee

  • Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt.
  • Auf dem ESP läuft ein MQTT-Client, der bei einem entsprechenden Befehl (ON/OFF/TOGGLE) einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird.
  • Beim TOGGLE-Befehl wird dies immer ausgeführt, bei den ON/OFF-Befehlen wird vorher geprüft, ob das Mediacenter schon läuft. Als Input hierfür fungiert ein "nicht-standby" 3V3 oder 5V Power Pin auf dem TPM-Header des Mainboards, der nur im laufenden Betrieb mit Strom versorgt wird.
  • Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden.

Umsetzung

Für den Einbau des ESP-01 haben wir ein kleines Adapter-PCB entworfen (Bilder 1,2).

Leider haben wir festgestellt, dass alle beim ESP-01-Board verfügbaren Pins beim Power-Up mindestens einmal den logischen Zustand wechseln. Das führte dazu, dass das Mediacenter immer automatisch gestartet wurde, sobald der ESP startete. Um dieses Problem zu umgehen, haben wir das ESP-01-Board modifiziert, um anstatt des GPIO2-Pins den GPIO4-Pin herauszuführen. Dieser bleibt während dem Start dauerhaft auf LOW, und ist am ESP8266 zum Löten einfach zugänglich (Bild 4).

Danach haben wir den ESP und das Adapter-PCB grosszügig mit Heissleim isoliert (Bild 5), um ihn sicher im Gehäuse verbauen zu können (Bild 6).

Code

Unter https://git.kabelsalat.ch/ccc-basel/espwol finden sich das KiCad-Projekt für die Adapterplatine sowie ein PlatformIO-Projekt mit dem ESP8266-Code.