PCF8574,  Uncategorized

PCF8574 Eingang Taster Benutzereingabe mit ESP-OS konfigurieren

PCF8574 Input Trigger Signal
PCF8574 Eingangssignale

Die Eingangssignale eines PCF8574 sind bis auf den eigentlichen Akteur, z.B. ein Taster schaltet und sendet ein Signal gänzlich unterschiedlich zu einem typischen GPIO Eingang.

Das Offensichtlichste, ein typischer GPIO Eingang, als auch sein aktueller Status sind in der ESP-OS Benutzeroberfläche nicht ersichtlich. Ganz anders ist das bei PCF8574 Eingängen, sowohl die Eingänge als auch der aktuelle Status werden im ESP-OS Statusbereich angezeigt.

Ein sehr massgeblicher Unterschied findet sich in der Konfiguration, typische GPIO Eingänge können unterschiedlich konfiguriert werden, Schalter, Taster, invertiert,…

An dieser Stelle sei erwähnt, ein PCF8574 Eingang sollte stets mit einem Taster (nicht Schalter) betrieben werden, Hintergründe dazu finden sich hier.

Im Eigentlichen ist die Konfiguration der Eingangssignale mit der Basiskonfiguration, bzw. der PCF8574 Konfiguration abgeschlossen. Sobald der jeweilige Kanal des PCF8574 als Eingang konfiguriert wurde, triggert der PCF8574 die Änderung eines Levels und teilt den aktuellen Status über I2C dem ESP8266 mit.

Was jedoch fehlt ist die Interaktion zwischen Signal und auszuführende Funktion, Wenn Taster 1 aktiv dann????

PCF8574 Input Signals

Besides the typical hardware / function a button send a HIGH or LOW Signal, a PCF8574 Input are  absolutely different compared to typical GPIO Input. First of all a typical GPIO Inputs nor its actual status are not visible thru Webinterface. PCF8574 Inputs also actual status are visible in ESP-OS Webinterface.

Typical GPIO Inputs could be set as Switch, Button, inverted, …

PCF8574 Inputs should be driven over buttons (not switches), informations you could find here.

In Detail the PCF8574 Input configuration is finished with the Module Basic and PCF8574 configuration. Soon as the PCF8574 channel is configured as Input, the PCF8574 triggers each Level changing and notify the ESP8266 thru I2C.

But the Interaction between Signal and Function are missing, If switch 1 is active ?????

ESP8266 ESP-OS Input Button Setup Step by Step
PCF8574 Taster Konfiguration

Typischerweise unterliegen Anweisungen stets gewissen Regeln. sobald …. tue ….

Mit einfachen Worten

  • Sobald Eingang 1 aktiv tue Relais 1 umschalten
  • Sobald Eingang 2 aktiv tue Relais 2 umschalten

umgangssprachlich es müssen entsprechende Regeln hinterlegt werden!

Hierfür werden entsprechende

  1. Wächter / Event Listener aktiviert die das Auftreten eines Ereignisses überwachen
  2. das Ereignis mit entsprechenden Routinen kombiniert

oder in einem Satz

Wachhund sobald Geräusch tue bellen

Im Grunde bildet das auch die Grundlage der digitalen Welt,

  • 0 = Ruhe, kein Geräusch
  • 1 = Geräusch

Berücksichtigt man dabei dass es mehrere Wachhunde geben kann aber für alle die gleiche Regel gilt sobald Geräusch tue bellen oder etwas anderes.

Das ganze einmal übersetzt auf den ESP8266 und den PCF8574 Eingang, wichtig der PCF8574 wird invertiert betrieben also

  • 1 ist inaktiv
  • 0 ist aktiv

ganz einfach daran zu erkennen,

  • ist der Taster geöffnet ist der Status 1 –> es herrscht Ruhe
  • ist der Taster gedrückt ist der Status 0 –> Geräusch

Im nebenstehenden Beispiel, dem 4 Kanal PRO Relais haben wir 4 Eingänge also 4 Wachhunde für alle gilt die Regel SOBALD GERÄUSCH / ALSO 0 dann tue …

PCF8574 Button Configuration

Routines and Instructions are always based on If…. Then…

In simple words

  • on Input 1 active do toogle Relays 1
  • on Input 2 active  do toogle Relays 2

Routines and Instruction requires Rules!

Rules are based on

  1. Watchdog / Event Listener to recognize actual status of Event
  2. Routine / Function in combination on Event occurs

in view words

Watchdog on noise do bark

Basically we are talking about the digital world

  • 0 = quiet, no noise
  • 1 = noise

In consideration of more then one watchdog the basic rule is the same on noise do bark or what ever …

Back to interaction between ESP8266 and Input Signals of the PCF8574, IMPORTANT the PCF8574 its inverted so

  • 1 not active
  • 0 active

in practice

  • Button is open / not pressed status 1 –> it is quiet
  • Button is closed / pressed status 0 –> Noise

Based on the left side image, the 4 Channel PRO Relays we got 4 Inputs / 4 watchdogs with the same Rule ON NOISE / ON 0 DO ….

ESP8266 ESP-OS Input Switch Setup Step by Step
Regel Rule Konfiguration

Gleichermassen werden  auch für den ESP8266 und die Interaktion mit dem PCF8574 entsprechende Regeln hinterlegt.

Dies geschieht allerdings nicht mittels einer grafischen Benutzeroberfläche sondern mittels einer Konsole / Texteingabe. Hört sich schlimmer an als es ist, mit der Grundlage von Regeln im Hinterkopf sehr einfach

  1. welche Regel die 1 2 3 4 5 …?
  2. und welche Regel gilt <– man will ja nicht dass die Hunde am Tag etwaige Kunden verbellen

Dann noch der Wächter SOBALD und die Routine TUE:

  • der Wächter sobald / ON
  • die Routine tue / DO

Das war im Grunde auch schon die gesamte Syntax, bzw.

Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON

einfach mal auf Deutsch

Regel Nummer 1 SOBALD PCF8574 Eingang Nummer D4 = 0 TUE Relais1 UMSCHALTEN ENDESOBALD

Mittels dieser Regel1 wird also, sobald sich der Level vom PCF8574 Eingang Nummer D4 auf den Wert 0 ändert das Relais 1 umgeschaltet.

Basierend auf dem Beispiel des 4 Kanal PRO Relais haben wir

  • 4 Eingangssignale / Taster –> INP#D4, INP#D5, INP#D6, INP#D7
  • 4 Relais / Power1 Power2 Power3 Power4

gilt folgende Regel für alle Wachhunde sobald 0 dann Routinen ausführen, lautet die gesamte Regel 1

Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON ON PCF8574-1_INP#D5=0 DO Power2 TOGGLE ENDON ON PCF8574-1_INP#D6=0 DO Power3 TOGGLE ENDON ON PCF8574-1_INP#D7=0 DO Power4 TOGGLE ENDON

Diese Regel muss nun mittels Konsole gesetzt und aktiviert werden, hierzu in der ESP-OS Benutzeroberfläche

  1. auf Konsole klicken
  2. in die Kommandozeile die Regel1 einfügen also (oder kopieren und einfügen)
    Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON ON PCF8574-1_INP#D5=0 DO Power2 TOGGLE ENDON ON PCF8574-1_INP#D6=0 DO Power3 TOGGLE ENDON ON PCF8574-1_INP#D7=0 DO Power4 TOGGLE ENDON
  3. die Taste ENTER drücken um das Kommando auszuführen, die Konsole bestätigt die Übernahme der Regel
  4. muss die Regel 1 aktiviert werden durch Eingabe von
    Rule1 1
    und
  5. und erneut durch drücken der Taste ENTER das Kommando ausführen, die Eingabe wird erneut innerhalb der Konsole bestätigt

drückt man nun einen Taster wird gemäß der festgelegten Regel die jeweilige Routine ausgeführt, in Anlehnung an obiges Beispiel

  • sobald Taster 1 gedrückt wird schaltet das Relais 1 um
  • sobald Taster 2 gedrückt wird schaltet das Relais 2 um
  • sobald Taster 3 gedrückt wird schaltet das Relais 3 um
  • sobald Taster 4 gedrückt wird schaltet das Relais 4 um

Möchten man die Regel deaktivieren muss lediglich Rule1 0 in die Kommandozeile eigegeben und durch Drücken der Taster Enter übertragen werden.

Rule Configuration

On same way we implement some Rules for the ESP8266 to interact with the PCF8574 Signals.

Rules Setup requires a terminal / console for rule input, sound complicated but its very easy, just keep basic of rules in mind

  1. which rule 1 2 3 4 5 … ?
  2. and which rule its active

and of course each rule requires the

  • Watchdog / ON
  • Routine / DO
Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON

simple translation

Rule No. 1 ON PCF8574 Input Number D4 = 0 DO Relays1 TOGGLE END ON

The Rule 1 is very simple, soon as the PCF8574 Input D4 Level = 0 TOGGLE RELAY 1.

Based on our example, the 4 Channel PRO Relays Module, we got

  • 4 Inputs / Buttons –> INP#D4, INP#D5, INP#D6, INP#D7
  • 4 Relays / Power1 Power2 Power3 Power4

and for all Inputs / Watchdogs we got the same Rule ON = 0 so

Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON ON PCF8574-1_INP#D5=0 DO Power2 TOGGLE ENDON ON PCF8574-1_INP#D6=0 DO Power3 TOGGLE ENDON ON PCF8574-1_INP#D7=0 DO Power4 TOGGLE ENDON

This Rule must implemented thru Terminal / Console

  1. click on Button Console
  2. write Rule1 into command line (of course copy and paste will do it)
    Rule1 ON PCF8574-1_INP#D4=0 DO Power1 TOGGLE ENDON ON PCF8574-1_INP#D5=0 DO Power2 TOGGLE ENDON ON PCF8574-1_INP#D6=0 DO Power3 TOGGLE ENDON ON PCF8574-1_INP#D7=0 DO Power4 TOGGLE ENDON
  3. Press ENTER Key on Keyboard, in console screen Rule1 will be confirmed
  4. to finish Rule1 must be enabled just write
    Rule1 1
    in command line and
  5. press ENTER key, Rule1 status will be confirmed

The Module / PCF8574 Inputs are enabled, based on 4CH Pro Relays Example

  • ON Button 1 is active TOGGLE Relays 1
  • ON Button 2 is active TOGGLE Relays 2
  • ON Button 3 is active TOGGLE Relays 3
  • ON Button 4 is active TOGGLE Relays 4

To disable Rule1 just write Rule1 0 into command line and press ENTER key.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert