WLAN Keypad
| WLAN Keypad | |
|---|---|
| Weshalb | Senden von Tasteneingaben an einen MQTT Server |
| Was | hardware, software |
| Wer | User:Mogwai |
| Status | läuft |
Ziel ist das Senden von Tasten Eingaben per WLAN an einen MQTT Server zur Weiterverarbeitung (z.B. Steuerung von Raumfunktionen oder Lichteffekten)
Hardware
- ESP8266
- Alte Kassensystem Keypads aus dem Maschinendeck (Type FM015700C)
Pinbelegung Keypad
| Pin | Funktion | Tasten |
|---|---|---|
| 0 | Gehäuse Schließkontakt Kette | Alle Schließkontakte (3x) |
| 1 | Zeile 1 | 1, 2, 3, Cancel |
| 2 | Zeile 2 | 4, 5, 6, Clear |
| 3 | Gehäuse Schließkontakt Kette | Alle Schließkontakte (3x) |
| 4 | Zeile 3 | 7, 8, 9, Enter |
| 5 | Zeile 0 | PfeilHoch, Select, PfeilRunter, 0 |
| 6 | Spalte 0 | PfeilHoch, 1, 4, 7 |
| 7 | Spalte 1 | 2, 5, 8, 0 |
| 8 | Spalte 2 | Select, 3, 6, 9 |
| 9 | Spalte 3 | PfeilRunter, Cancel, Clear, Enter |
Tastencodes Keypad
| Tastencode | Taste | Zeichenzuordnung |
|---|---|---|
| 0x0000 | PfeilHoch | u |
| 0x0001 | 0 | 0 |
| 0x0002 | Select | s |
| 0x0004 | PfeilRunter | d |
| 0x0008 | 1 | 1 |
| 0x0010 | 2 | 2 |
| 0x0020 | 3 | 3 |
| 0x0040 | Cancel | x |
| 0x0080 | 4 | 4 |
| 0x0100 | 5 | 5 |
| 0x0200 | 6 | 6 |
| 0x0400 | Clear | c |
| 0x0800 | 7 | 7 |
| 0x1000 | 8 | 8 |
| 0x2000 | 9 | 9 |
| 0x4000 | Enter | e |
Geplante Funktionen
- Senden der gedrückten Taste per MQTT
- Zusammenfassen mehrerer Zeichen als Zeichenkette und senden dieser Kette nach Drücken der "Enter" Taste
- Konfiguration per JSON String im SPIFFS des ESP
- Konfigurierbare Tastenwiederholung
Konfiguration
Die Konfiguration erfolgt per JSON String in der Deit config.txt im SPIFFS des ESP8266.
| Parameter (case sensitiv) | Funktion | Wertebereich |
|---|---|---|
| mqttServer | IP Addresse des MQTT Servers | IPv4 als String |
| mqttPort | Portnummer des MQTT Servers | 0-65535 |
| mqttUser | MQTT Username | String |
| mqttPassword | MQTT Passwort | String |
| mqttPubTopic | MQTT Topic an das die Tastendaten geschickt wird | String |
| keypadDebounceTime | Debounce Zeit für Tastenerkennung | Numerisch in Millisekunden |
| keypadRepeatDelay | Wartezeit für erste Tastenwiederholung | Numerisch in Millisekunden |
| keypadRepeatInterval | Wiederholungsintervall bei Tastenwiederholung | Numerisch in Millisekunden |
| keypadRepeatMask | Maske der Tastencodes, für die eine Tastenwiederholung durchgeführt wird (siehe Tastencodes) | Numerisch 16-bit |