ESP8266 Treppenlichtsteuerung mit OTA zum Firmware Upload
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

doku.md 4.0KB

Hardware Timer didnt work https://github.com/khoih-prog/ESP8266TimerInterrupt#why-using-isr-based-hardware-timer-interrupt-is-better

=> Software Timer https://ullisroboterseite.de/esp8266-timing.html#timer

Zum aktivieren von GDBStub:

#include <GDBStub.h>

...

void setup() {
  Serial.begin(460800);
  gdbstub_init();

Achtung !

GDB muss dafür compiled werden GDB-Version aus Arduino Toolchain hat Support

$ ./start_xtensa_gdb_stub.sh

Achtung !

Don`t forget \r

ESP-OTA wird von ufw oder Defender geblockt.

  • Windows -> Python needs to be granted with rights
  • Linux -> open udp port in ufw ->
platform.ini 
upload_flags =
  --host-port <PORT>
...
$ sudo ufw allow tcp/<PORT>
server.streamFile(f, mime::getContentType(SRH::_path), requestMethod);

=====>

const String& p = SRH::_path;
if(p.endsWith(".gzip")) {
    server.sendHeader("Content-Encoding", "gzip");
    server.streamFile(f, mime::getContentType(p.substring(0, p.length()-5)), requestMethod);
}
else
    server.streamFile(f, mime::getContentType(SRH::_path), requestMethod);

HW issues

  • GPIO2 used as input -> must be high during startup
  • PCB Solution: cut trace to GPIO2, solder bridge to GPIO16
  • -> disadvantage: GPIO16 is not interrupt capable

FSM 2 - to do

  • stairway light switches off after timeout
  • switches concurrently on again if sensor is still high
  • desired behavior? Defective Sensor would cause continuos animation
  • edge detection / interrupts as solution ?

LED_sequence_v1:

TODO:

  • disable led stripes after defined time (webserver paramter?)
  • define what to do if people enter stairs from different directions
  • CAUTION: Sensor-Deadtime at LEAST 8 seconds
  • --> switch off with person leaving stairs might not be possible

Webserver on v0.3.0 now working with LittleFS

TODO:

  • check dir for files automatic
  • move handleNotFound to httpserver.h
  • maybe compress files ?

LED Flickering issue

https://github.com/NachtRaveVL/PCA9685-Arduino/issues/15 PlatformIO Library veraltet !!

TIMER in OTA unterbrechen !!!!!

further improvments

with streamFile gzip encoded Files can be sent this reduces space on fs ! new easier script needed to just convert to .gz maybe measure timings on ESP

=> use serveStatic because way simpler ! => serverStatic(“/”) works wonders

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARHRRHRGH Two implementations of FSM are not that good, linker puts them together ?!? :):):):):):):) => maybe investigate for doc

TODO Treppe

  • dynamic lighting with ldr
  • http control over active pwm … => set_active_pwm() -> is implemntiert, kann mit % oder abs eingestellt werden
  • testing if dimming crashes when two animations -> ldr does not interrupt animation, animation get’s finished and stairs fade out -> FSM works without collisions
  • interrupt to pending from sensors -> rising edge trigger implemented, via pending input
  • settings struct -> implemented with EEPROM -> adapted to only change on ruhezustand
  • script for gdb on windows -> implemented
  • welcome animation ? -> wird hochgedimmt beim einschalten von 0
  • on/off switch http
  • use logging to serial http monitor with httpserver.logt() -> is used for some status updates

  • behavior when someone enters stairway from opposite direction while animation is running? -> currently ignored, second persons walks in darkness -> animation from both sides? -> problem: person 1 leaving stairway might pass the sensor right after person 2 -> person 1 leaving not detected

  • behavior when someone enters stairway from opposite direction after animation finished but person 1 is still on stairway? -> currently stairs fade off from direction 1 -> additional wait-state between “warten hoch/runter” and “abdimmen hoch/runter” after sensor detected person?

  • active brightness can be lower than idle in the moment

  • change idle to precentage of active !!

  • Webpage needs to load settings from eeprom !!