WLAN Keypad: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
367 Bytes hinzugefügt ,  19:14, 4. Jul. 2021
K
keine Bearbeitungszusammenfassung
>Mogwai
>Mogwai
KKeine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
|Why=Senden von Tasteneingaben an einen MQTT Server
|Why=Senden von Tasteneingaben an einen MQTT Server
|What=hardware, software
|What=hardware, software
|Who=User:Mogwai
|Who=Mogwai
|Status=running
|Status=running
|Tags=Keypad, ESP8266
|Tags=Keypad, ESP8266
Zeile 11: Zeile 11:
== Hardware ==
== Hardware ==


* Variante 1: Minimal Version (nur Tastenabfrage) ESP8266 (ESP-201 Modul, welches ich noch in meinem Bestand hatte)
* Variante 1: Minimal Version (nur Tastenabfrage) ESP8266 (Hier ESP-201 Modul, welches ich noch in meinem Bestand hatte)
* Variante 2: WeMos D1 Mini Board und MCP23017 PortExpander (I2C) , OLED SSD1306 Display (I2C)
* Variante 2: WeMos D1 Mini Board und MCP23017 PortExpander (I2C) , OLED SSD1306 Display (I2C)
* Alte Kassensystem Keypads aus dem Maschinendeck (Type FM015700C)
* Alte Kassensystem Keypads aus dem Maschinendeck (Type FM015700C)
Zeile 50: Zeile 50:
|}
|}


=== Variante 2 (zusätzliches I2C Display) ===
=== Variante 2 ===
 
'''ACHTUNG: Die Pins für die Matrix haben auf Board Seite eine andere Anordnung, welches das Anlöten und die Programmierung des MCP23017 vereinfacht! Hier kann die Verdrehung der Pins im Flachband-Anschlußkabel vorgenommen werden.'''


{| class="wikitable"
{| class="wikitable"
Zeile 56: Zeile 58:
! Funktion
! Funktion
! Tasten
! Tasten
! Connector PIN
! ESP8266 PIN
! ESP8266 PIN
! ESP8266 Bemerkungen
! ESP8266 Bemerkungen
! MCP23017 Pin
|-
|-
| 0 || Gehäuse Schließkontakt Kette || Alle Schließkontakte (3x) || GND || -
| 0 || Gehäuse Schließkontakt Kette || Alle Schließkontakte (3x) || 0 || GND || - || -
|-
|-
| 1 || Zeile 1 || 1, 2, 3, Cancel || IO 0 || INPUT, Externer Pull-Up, da PIN HIGH sein muss zum Starten des ESP, LOW (extra Taster) für Programmierung
| 1 || Zeile 1 || 1, 2, 3, Cancel || 3 || - || - || GPA1, INPUT, Pull-Up intern
|-
|-
| 2 || Zeile 2 || 4, 5, 6, Clear || IO 2 || INPUT, Pull-Up intern
| 2 || Zeile 2 || 4, 5, 6, Clear || 4 || - || - || GPA2, INPUT, Pull-Up intern
|-
|-
| 3 || Gehäuse Schließkontakt Kette || Alle Schließkontakte (3x) || T_OUT / ADC || Pull-Up Extern (Spannungsteiler: GND - 100K - T_OUT - 220K - Kontakt - 10K - VCC)
| 3 || Gehäuse Schließkontakt Kette || Alle Schließkontakte (3x) || 1 || T_OUT / ADC || Pull-Up Extern 10K (weiterer Spannungsteiler auf WeMos Board) || -
|-
|-
| 4 || Zeile 3 || 7, 8, 9, Enter || IO 4 || INPUT, Pull-Up intern
| 4 || Zeile 3 || 7, 8, 9, Enter || 5 || - || - || GPA3, INPUT, Pull-Up intern
|-
|-
| 5 || Zeile 0 || PfeilHoch, Select, PfeilRunter, 0 || IO 3 || RX als IO-PIN konfigurieren, INPUT, Pull-Up intern
| 5 || Zeile 0 || PfeilHoch, Select, PfeilRunter, 0 || 2 || - || - || GPA0, INPUT, Pull-Up intern
|-
|-
| 6 || Spalte 0 || PfeilHoch, 1, 4, 7 || IO 14 || OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
| 6 || Spalte 0 || PfeilHoch, 1, 4, 7 || 6 || - || - || GPA4, OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
|-
|-
| 7 || Spalte 1 || 2, 5, 8, 0 || IO 12 || OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
| 7 || Spalte 1 || 2, 5, 8, 0 || 7 || - || - || GPA5, OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
|-
|-
| 8 || Spalte 2 || Select, 3, 6, 9 || IO 13 || OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
| 8 || Spalte 2 || Select, 3, 6, 9 || 8 || - || - || GPA6, OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
|-
|-
| 9 || Spalte 3 || PfeilRunter, Cancel, Clear, Enter || IO 5 || OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
| 9 || Spalte 3 || PfeilRunter, Cancel, Clear, Enter || 9 || - || - || GPA7, OUTPUT (LOW zum Ansteuern der Zeile, sonst INPUT und Pull-Up)
|}
|}


Zeile 129: Zeile 133:


== Erweiterungen ==
== Erweiterungen ==
* Denkbar wäre eine Erweiterung um ein 8-stelliges 7-Seg Display, das die Eingaben anzeigt. Hier ist zu bedenken, dass die Displays auf Basis eines MAX7221 eine Spannung von 5V benötigen. Um die für die Ansteuerung nötigen Pins (SPI) freizubekommen, wären folgende Möglichkeiten denkbar:
* Denkbar wäre eine Erweiterung um ein 8-stelliges 7-Seg Display, das die Eingaben anzeigt. Hier ist zu bedenken, dass die Displays auf Basis eines MAX7221 eine Spannung von 5V benötigen. Um die für die Ansteuerung nötigen Pins (SPI) freizubekommen, wäre das Vorschalten eines 74595 Schieberegisters und eines Demultiplexers (4067, oder 4051), um die Pins für die Tastenabfrage zu reduzieren, denkbar / Alternativ: Verwenden eines Portexpanders z.b. MCP23017
** Vorschalten eines 74595 Schieberegisters und eines Demultiplexers (4067, oder 4051), um die Pins für die Tastenabfrage zu reduzieren
** Benutzung des noch freien GPIO 16 Pins als SPI-CS Pin und Ansteuerung der SPI-CLK und SPI-MOSI Leituing durch zwei der Output Pins der Keypad Abfrage. Hier dürfen Display und Tastenmetrix nicht gleichzeitig angesteuert werden.


== Konfiguration ==
== Konfiguration ==


Die Konfiguration erfolgt per JSON String in der Datei config.txt im SPIFFS des ESP8266.<br>
Die Konfiguration erfolgt per JSON String in der Datei config.txt im SPIFFS des ESP8266. Oder alternativ über die Web Config Seite des Keypad (Pin 0 beim Start auf LOW, Oder drücken der Konfigurieten Tastencodes)<br>


{| class="wikitable"
{| class="wikitable"
Zeile 169: Zeile 171:
|-
|-
| keypadMultikeyMask|| Maske der Tastencodes, für die eine zusammenhängende Tasteneingabe durchgeführt wird (siehe Tastencodes) || Numerisch 16-bit
| keypadMultikeyMask|| Maske der Tastencodes, für die eine zusammenhängende Tasteneingabe durchgeführt wird (siehe Tastencodes) || Numerisch 16-bit
|-
| keypadAPKeyMask|| Maske der Tastencodes, bei der die WebConfig Seite angezeigt wird (siehe Tastencodes) || Numerisch 16-bit
|-
| keypadAPKeyTime|| Timeout für WebConfig Seite in Sekunden || Numerisch 16-bit
|}
|}


Zeile 197: Zeile 203:


== Arduino Programm ==
== Arduino Programm ==
* Upload erfolgt, wenn das Programm debugt ist
 
[https://github.com/rekna/WLAN_Keypad_v1]
Anonymer Benutzer

Navigationsmenü