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

From CCC Basel Wiki
Jump to navigation Jump to search
Content deleted Content added
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.