28 lines
1.5 KiB
Markdown
28 lines
1.5 KiB
Markdown
# Tasmota remote pulse timer trigger
|
|
Das Programm für einen ESP8266 soll den PulseTimer einer Tasmota Steckdose triggern.
|
|
Die Hardware hat einen Rotary Encoder sowie ein OLED Display.
|
|
Mit dem Rotary Encoder (RT) stellt man eine Zeit im Bereich von 2s bis 10s mit einer Auflösung von 100ms.
|
|
Über den RT soll der Wert pro Tick um 100ms angepasst werden können.
|
|
Mit Druck auf den Taster des RT soll zunächst der PulseTimer eingestellt und dann getriggert werden.
|
|
Die Einstellungen für die SSID und das Passwort sollen aus einer separaten config.h Datei ausgelesen werden.
|
|
Dort soll auch die IP Adresse der Tasmota Steckdose eingestellt werden. Zudem dort noch den Initialwert für den Timer hinterlegen.
|
|
Der Project soll mittels PlatformIO und Arduino Framework umgesetzt werden. Das SSD1309 OLED wird mit der Arduino-Library U8g2 angesteuert.
|
|
|
|
## Umsetzung
|
|
Die Tasmota Steckdose wird per HTTP angesprochen. Beim Druck auf den Taster sendet das Programm:
|
|
1. `PulseTime1 <wert>` mit `<wert>` in 100ms-Schritten. Der erlaubte Bereich 2s bis 10s entspricht damit `20` bis `100`.
|
|
2. `Power1 ON`, um den zuvor gesetzten PulseTimer auszulösen.
|
|
|
|
Die Datei `include/config.h` enthält:
|
|
- `WIFI_SSID`
|
|
- `WIFI_PASSWORD`
|
|
- `TASMOTA_HOST`
|
|
- `INITIAL_TIMER_MS`
|
|
|
|
Als Vorlage liegt `include/config.example.h` bei.
|
|
|
|
## Hardware
|
|
Board D1 Mini mit ESP8266.
|
|
OLED über I2C an den GPIOs 4 und 5. Rotary Encoder mit A und B an GPIO 14 und 16 und der Taster an 12.
|
|
OLED hat einen SSD1309 Controller mit 128x64 Pixel.
|