Ich wollte die Umsetzung nicht „zu nah“ an der genannten Box haben, daher habe ich das niemals umgesetzt. Aber funktionieren sollte es.
Eine Sache nur (weil ich weiß, dass du die mini verwendest): Wenn der Power-Button die 115 ist, dann heißt das, dass der Port-Expander die Ansteuerung des Mosfets vornimmt. Ich habe den i2c-Konnektor auf dem mini-Board jedoch so vorgesehen, dass dessen 3.3 V ebenfalls ausgeschaltet wird, wenn der ESP32 im Deepsleep ist. Hängt man hier nun ein i2c-Device dran, dann wird dessen Versorgungsspannung entsprechend abgeschaltet. Der Port-Expander hängt ja auch an i2c und das führt jetzt dazu, dass man den ESPuino nicht aufwecken kann, da das externe i2c-Device den i2c-Bus „runterzieht“. D.h. dann funktioniert der Port-Expander beim Start nicht richtig, was aber für den Einschaltvorgang essentiell ist (wenn 115).
Das ist mir erst kürzlich aufgefallen und ich werde das in einer künftigen Revision fixen. Fixen im Sinne von: Es gibt eine Lötbrücke, mit der man konfigurieren kann, ob die 3.3V vom Konnektor des externen i2c-Devices im Deepsleep geschaltet werden oder nicht. Hoffe es wird klar, was ich meine.
Fixes:
a) Die 3.3 V für das externe i2c-Device holst du dir ersatzweise vom doppelreihigen Pinheader.
b) Du verwendest als Power nicht 115 sondern 32. Da muss man hinten die Lötbrücke JP5 entsprechend auf 1+2 konfigurieren. Kostet halt einen GPIO mehr, aber ist vermutlich egal, da die wenigsten Leute den für was Anderes brauchen werden.
Von der Umsetzung würde ich erstmal mit einem ganz kleinen Aufbau starten (ohne ESPuino) und dort bisschen testen, welche Werte man so erhält. Dann kannst du das in die ESPuino-Software integrieren und halt Aktionen auslösen: ESPuino/Cmd.cpp at fff303c953a715b9fc45c12d40f352dc9e56d9ec · biologist79/ESPuino · GitHub bzw. ESPuino/values.h at fff303c953a715b9fc45c12d40f352dc9e56d9ec · biologist79/ESPuino · GitHub.