Über einen GPIO am Lokalen Schaltserver einen anderen GPIO auf einem entfernten Schaltserver schalten.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Über einen GPIO am Lokalen Schaltserver einen anderen GPIO auf einem entfernten Schaltserver schalten.

    Sers,

    und zwar möchte ich folgendes machen.

    Ich habe an meinem Lokalen RPI an den GPIO17 einen Taster geklemmt, diesen GPIO als Eingang definiert und möchte nun über diesen Taster bzw. GPIO einen anderen GPIO auf einem entfernten Schaltserver als Ausgang schalten.

    Ist das möglich, und falls ja, wie? Muß ich das als Script erstellen?

    Der Hintergrund ist, der Entfernte Schaltserver ist dieses Wifi Relais WiFi Relais Schalter einbau es sitzt in einer Torsteuerung und soll nur über einen Taster der im Büro mit dem Raspberry GPIO Eingang Verbunden ist, angesteuert werden.

    Das Ganze funktioniert bereits wunderbar wenn ich alles über die Software mache, also direkt aus dem SHC über die Software Button.

    Ich möchte es aber wie gesagt über einen "echten" Taster machen.

    Wäre super wenn mir mal jemanden erklären kann wie man das macht :)


    mfg phildon
  • GPIO als Eingang definieren Taster

    Ereignis für diesen Eingang erstellen

    Countdown erstellen, der durch das Ereignis gestartet wird.

    Mit dem Countdown den GPIO Pin schalten.

    Dabei spielt es keine Rolle, ob sich der GPIO Ausgang lokal oder auf einem entfernten Pi (SHC Slave) befindet, solange beide Master und Slave im gleichen Netz sind.

    Befindet sich auf dem zweiten Pi kein SHC (Slave) muss mit dem Ereignis ein Script gestartet werden.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • So, hab jetzt folgendes gemacht.

    GPIO 1 und +3,3v an dem Lokalen RPI mit dem Taster Verbunden.

    GPIO 1 in SHC als Eingang definiert

    Script für das Wifi Relais erstellt, dieses soll auch wie ein Taster bzw. Impuls funktionieren.

    An Kommando

    Quellcode

    1. php tcp.php 192.168.178.32 2x4x1
    2. sleep
    3. php tcp.php 192.168.178.32 2x4x0

    Ein Ereignis mit "Eingang positive Flanke" erstellt und dort das Script hizugefügt.

    Leider funktioniert es aber nicht.

    Wenn ich jetzt den Taster ein paar Sekunden gedrückt halte schaltet zwar der Eingang von Rot auf Grün und wenn ich ihn los lasse wieder auf Rot, aber der GPIO am entfernten Schaltserver schaltet nicht, wenn ich ihn aber direkt in SHC über die "An" Button schalte, geht es.

    Was mache ich falsch?
  • Gpio1 und 3,3V sollte besser mit einem 10 Kohm verbunden werden.
    Also "Gpio1 - Taster - 10K - 3,3V".
    Warum mit einem Skript schalten.
    Hast doch ein Ereignis mit positiver Flanke erstellt.
    Diesem Ereignis kannst du doch den Ausgang am entferntem Schaltserver
    vergeben. Musst aber im lokalem RPi diesen entfernten Schaltserver einrichten.
  • Ohne Script, direkt als Ausgang funktioniert es komischerweise.

    Das Problem ist aber, ohne Script dauert die Schaltung vom Relais länger, ca. 15-18sek bis SHC die Rückmeldung vom Taster GPIO Eingang für die Negative Flanke bekommt und somit das Relais wieder abfällt

    Das Tor ist aber nicht auf Dauersignal sondern nur auf Impulse ausgelegt.

    Da ist die Frage ob 15-18sek nicht schon zu lange sind, ich konnte es vor Ort noch nicht ausprobieren, ist aktuell noch ein Test in meiner Werkstatt.

    Wenn ich es übers Script schalte, mit dem Sleep, dann dauert das grad mal 2sek und dann brauche ich auch die Negative Flanke nicht, und habe in SHC auch nur einen Button und keine 2.

    Nur will er über den Taster GPIO Eingang das Script nicht schalten, warum?
  • Habe mal einen Testaufbau gemacht.
    Taster mit 10K am Gpio des RPi mit SHC und einen entfernten ESP mit Schaltserver Skript von
    ganele. Den ESP am RPi in SHC als Schaltserver eingerichtet.
    Am ESP ein Relais am Gpiox das die Tastfunktion machen soll.
    In SHC einen Ausgang für ESP Gpiox erstellt, und 2x Ereignisse.
    Ereignis 1 positiv (Ausgang Gpiox AN),
    Ereignis 2 negativ (Ausgang Gpiox AUS)

    Wenn ich jetzt den Taster 2sek. drücke zieht das Relais an und nach loslassen
    des Tasters gleich wieder ab. Dauert alles ca. 3 sek. und reicht für einen Impuls.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von premo ()

  • Das mit den 2 Ereignisen habe ich auch gemacht, und mein ESP ist ja bereits Fertig verbaut mit einem Relais das über den GPIO4 gesteuert wird.

    Aber wie bereits gesagt braucht SHC bei mir ewig bis er den Eingang umschaltet.

    Liegt das evtl. daran weil ich keinen 10K Ohm Widerstand verbaut habe? Wenn ich diesen 10K Ohm Widerstand mit einbaue muß ich ja den GND auch mit einbeziehen, richtig?
  • Dass es so lange dauert liegt vielleicht an der .lua von gman.
    Ich nutze das Skript von ganele mit einem ESP und Relais.
    Das du keinen 10k hast daran liegt es wohl nicht.
    Einen 10k sollte man aus Schutzgründen nehmen, weil ein Gpio
    schon ab 0,8V auf High geht.
    GND brauchts du nicht mit einbeziehen wenn du einen Gpio
    am RPi nimmst der schon auf Low ist.
    Schaue mal mit putty und "gpio readall" welcher Gpio so aussieht
    wie auf dem Foto. Den Gpio28 habe ich zum Testen genommen.
    An solch einem Gpio setzt du dann den Taster "Gpio28 - Taster - 10k - 3,3V".
    Dateien
    • gpio.JPG

      (9,43 kB, 9 mal heruntergeladen, zuletzt: )
  • Einfach mit der Arduino IDE drüber bügeln.

    Hier gibt es bereits einige Anleitungen zu diesem Thema. Ansonsten gibt es auch jede Menge You Tube Anleitungen zur Programmierung des ESP mit der Arduino IDE.

    Habe hier auch den Sketch gleich abgeändert mit fester IP ins Forum gestellt, was ich für Sinnvoll halte.

    Einfach mal ein bisschen umschauen.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Programmiert wird mit Arduino IDE.
    Arduino IDE setzt eine eigene Firmware vor dem Programmieren der .ino.
    In der .ino nur die Wlan Daten einfügen, parallel noch den Seriellen Monitor
    starten. Wenn das Programmieren geklappt hat, dann den ESP resetten
    und im Monitor erscheint nach der Verbindung mit dem Wlan die IP.

    Wenn du zurück willst, dann muss wieder die NodeMCU Firmware geflasht
    werden.

    Anleitung für Arduino IDE:

    Quellcode

    1. ESP in den Programmiermodus setzen :
    2. 1. GPIO0 auf Masse
    3. 2. RST Pin kurz gegen Masse setzen
    4. 3. GPIO0 wieder von der Masse entfernen
    5. 4. ESP ist jetzt im Programmmodus
    6. 5. Hochladen der .ino starten
    7. 6. ESP resetten