GPIO von danderen PI abfragen/schalten

  • Hallo,

    Danke für die Antworten. Die Variante von Tell scheint mir nur in eine Richtung zu gehen (der Andere sendet Pakete am mich).

    Zu dem Post von dreamshader: verstehe ich es Richtig, das ich auf dem anderen (entfernten) Pi diese Software am laufen habe und ich dann mit meinem Pi aus Phyton heraus diesen Ansprechen kann. So mit IP-Adresse (+ evtl. username/passwort) und dann das pigs-Kommando?

    Gruss Seb

  • Wenn auf dem anderen PI ein Webserver läuft könntest du das auch über PHP regeln indem du den zu prüfenden Pin als $_GET übergibst

    Wenn du das aber unbedingt über Python regeln müsst würde ich mir einen eigenen SocketServer mit threading basteln, das ist auch nicht allzuviel Aufwand und dann weißt du zumindest genau was da passiert ;)

  • Vielen Dank für die Antworten. Leider bin ich so neu, dass ich mit diesen Fachbegriffen nicht viel anfangen kann. Ich bin gut im VBA unter Excel (Objektorientierte Sprache). Da erscheint mirdie erste Antwort (pigs) am sinnvollsten. Oder Ihr müsst Detaillierter schreiben, damit ich mitkomme. Oder kann ich so einen "Socketserver" auch so abfragen?

  • Oder kann ich so einen "Socketserver" auch so abfragen?

    Nein, du musst schon das was abgefragt werden können soll, selber einbaun.

    Im Prinzip läuft das so ab dass du einen SocketServer initialisierst. Dann verbindet sich ein Client und schickt etwas, zum Beispiel "Hallo". Im Programmcode vom Server musst du dann einstellen was passieren soll bzw ob darauf reagiert werden soll.

    Wenn du dann aber erst mal den Dreh raus hast kannst du damit ziemlich einfach und schnell eigene Funktionen erweitern und weißt später auch ganz genau was/wie/wo passiert. Bei irgendwelchen fertigen Libs weißt du das nicht wirklich, die sind zwar Quelloffen aber bis man da durch gestiegen is und auch verstanden hat, vergeht mehr Zeit....

    Frage wäre halt ob du einfach nur Nutzen willst, oder dich dabei auch weiterbilden möchtest? ;)

  • meigrafd: also ich glaube nicht dass es sinnvoll ist, das Rad dauernd neu zu erfinden.
    Du schreibst ja die Python- und Arduino-Libs, die Du verwendest, auch nicht alle selber, oder?
    Ich denke, gerade zum Einstieg ist was fertiges sinnvoll um sich langsam einzuarbeiten und mal über den Tellerrand zu schauen wie eine Aufgabenstellung von jemand anderem gelöst wird.
    Aber der TE wird schon wissen, was er sich zutraut.
    Jedenfalls kann man imho beim Einsatz einer bestehenden und bewährten Lösung, gerade am Anfang, eine Menge lernen.
    Und ich denke, mit Python selbst hat er schon genug Neues zu verdauen ...

    cu,
    -ds-

  • Heutzutage werden immer Bausteine benutzt um komplexere Teile zu erstellen. Seien es ICs, Prozessoren, Motoren, ... und auch SW. Das Problem was meigraf wohl meint ist, dass bei SW, damit sie als Baustein genutzt werden kann, eine gute Dokumentation existieren muss. Das ist bei OpenSource häufig nicht der Fall und man muss sich dann in den Code einarbeiten um zu verstehen wie er funktioniert und zu benutzen ist. Das kann je nach Kenntnisstand ziemlich aufwändig sein.

  • Na also ich schreib mir meine Bausteine und Libs auch nicht selbst, wenn es was Passendes fertig gibt. Klar muss ein bisschen Doku schon sein ... aber bis jetzt ist mir noch nichts untergekommen, was so nicht verwendbar war. Und pigpio ist imho genau so gut dokumentiert wie z.B. wiringPi ...
    Aber wie gesagt ... ich bin da i.d.R. eher neutral und will keinen beeinflussen ( ich rat' den Leuten in 99,9% der Fälle ja noch nicht mal von Python ab :lol: ) - das muss wohl jeder für sich selbst entscheiden.

    cu,
    -ds-

  • Hallo,

    ich glaube, ich muss erstmal Vorstellen, was ich bauen möchte. Ich habe noch keinen Pi und bin "nur" in der Planungsphase bzw. möchte ich erstmal schauen, ob ich mit meinen Mitteln (Wissen) das überhaupt stemmen kann.

    Mir schwebt eine Alarmanlage / Überwachung vor, so wie [url= Alarmanlage - Tür/Fenster überwachen[/url].

    Nur will ich das über mehrer Pi machen, die ich im Haus verteile. Einer soll "Master" sein, alle anderen als "Slaves". Alle mit fester IP konfiguriert, damit sich alle wiederfinden.

    Gleichzeitig will ich das Kellerlicht überwachen, meine Familie tendiert dazu, dort Licht anzulassen. Also über ein 230V-Relais schauen (am GPIO im Keller-Pi) , ob Licht an oder aus ist und dieses auf einem Pi im Erdgeschoß per LED (am GPIO) anzeigen lassen. Der Pi B+ hat schließlich 26 Pins, die dafür nutzen kann.

    Oder einen Pi als reines Meldetableau für Magnetkontakte und "Licht ist an" gebrauchen.

    Und wenn der Alarmanlagenteil etwas feststellt, dann sollen an anderen Pi's über den GPIO ein/mehere Relais geschlossen werden (z.B. für Licht, Sirene etc.)

    Ich möchte wiegesagt feststellen, ob es dafür schon geeignete "Module" gibt, die ich in den Code einbauen kann. Also die "Slaves" relaitv dumm, der "Master" muss die GPIO der "Slaves" abfragen und schalten können.

    Gruss Sebastian

    Einmal editiert, zuletzt von Seb01 (16. Dezember 2014 um 10:53)

  • Das ist problemlos machbar (wenn man weiss was man macht :fies:)

    Ganz ohne Code wird es nicht gehen, weil die GPIOs in jedem Projekt
    anders sind.

    Ich wuerde mal zusammenstellen, wie viele Eingaenge und Ausgaenge
    so ein Slave braucht, und dann versuchen, moeglichst nur eine Slave-
    Konfiguration zu definieren (das vereinfacht den Code)

    Dazu wuerde ich einen Slave und Master mit Sockets codieren und die
    Sache waere geloest ...

    Wer sich das nicht zutraut sollte wieder ins Internet und mal sehen
    ob es etwas wie Modbus fuer den PI gibt. Das muesste eigentlich
    schon jemand gebaut haben, zumindest fuer die Slaves.

    Wenn's das gibt und es zu den Anforderungen fuer die Slaves passt,
    kann man den Slave damit realisieren.

    Fuer den Master muesste es eigentlich auch eine Implementation
    geben. Ob die so einfach passt, ist schwierig zu sagen.

  • Hallo Tell,

    das hört sich gut an. Das macht mir Mut, weiterzumachen. :danke_ATDE:

    Ich kann nur mit diesen Begriffen noch nicht umgehen. Ich schmeiße ungern mit Begriffen um mich, die ich nicht gut kenne. Was sind denn Sockets oder Modbus?

    Ich hatte gehofft, das es Module gibt, die ich einfach in den Pi laden kann und die ich dann direkt Ansprechen kann. Also ein Modul für den Slave (von Außen [von berechtigter IP] den GPIO ansprechen, so wie er in diesem Pi konfiguriert ist - z.B. Pin 0-14 als Input, 15-25 als Output), und über ein Modul im Server oder direkt im Code diesen Ansperchen: <get state GPIO [IP-Adresse] Pin1> oder <set State GPIO [IP-Adresse] Pin 20 high>.

    Was ich Verstehe: eine Konfiguration für einen Slave macht es einfach, dann muss ich 1) die Slaves nur mit einen Variante laden und kann 2) vom Master aus jeden Slave gleich ansprechen. Sonst müsste ich für jeden Slave was einzeln konfigurieren.

    Eine grobe Skizze habe ich bisjetzt nur für die logischen Verbindungen, eine Idee, wie das auf dem Pi umzusetzten ist noch nicht. Ich würde gerne vor dem Kauf so weit sein, das ich genau weiß, was ich in die Slaves programmieren muss und was in den Master. Und das immer genauer werdend Entwickeln. Erst wenn ich das Programmieren möchte, würde ich mir zwei Pi kaufen, um das dann in der Realität zu testen.

    Gruss Sebastian


  • Mir schwebt eine Alarmanlage / Überwachung vor, so wie [url= Alarmanlage - Tür/Fenster überwachen[/url].

    Nur will ich das über mehrer Pi machen, die ich im Haus verteile. Einer soll "Master" sein, alle anderen als "Slaves". Alle mit fester IP konfiguriert, damit sich alle wiederfinden.

    Das wäre aber ein bisschen oversized und zu teuer.. Wieso machst du das nicht mit nem AVR Mikrokontroller und entweder wie in dem von dir erwähnten Projekt mit RFM12B Funkmodulen, oder einem tiny WLAN Module? Dann wärst du pro Slave bei ca. 5€ :D Im krassen Gegensatz zu ca. 40€ pro Slave mit nem PI.
    Als Basis kannste ja ruhig weiterhin einen PI nehmen, aber die Clients brauchen nicht so viel Leistung

  • Hallo meigrafd,

    das mit dem Preis ist schon sehr verlockend. Meine Finanzministerin wird sich freuen.... :D

    Aber es bleiben Fragen über Fragen:

    Aber sich auch noch in die Programmierung eines AVR und dem Zusammenspiel mit dem Pi einarbeiten?
    Gibt es da Tutorials, die man durcharbeiten kann?
    Und die Hardware für einen solchen Slave (mit Wlan?) bei ca. 5€?
    Welche Hardware würde ich denn für einen solchen Slave benötigen?
    Und was noch für den PC (um den AVR zu programmieren)?
    Und wie greift man dann vom Pi (Master) auf den Slave zu?

    Es wäre nett, wenn Du mir ein wenig die Richtung weisen könntest. Selbst Erarbeiten würde ich es schon. Also so ala "Lies dies und das, das ist auch noch eine Quelle..." wie ich es aus dem Studium gewohnt bin (Dipl.-Ing. Nachrichtentechnik). Es dauert nur bei mir immer etwas, da meine Familie (und besonders die Kinder) immer an erster Stelle stehen und die Zeit für eigene Projekte sehr knapp ist.

    Ich habe früher in Turbo-Pascal geschrieben (Schulzeit-Informatik), dann in Modula (auf ner VAX im Studium) und jetzt hauptsächlich in VBA unter Excel. Auswertung von langen Tabellen... Microcontroller war (damals) nicht in meiner Spezialisierung (Hochfrequenztechnik). Damals war für uns alles unter 10GHz pulsierender Gleichstrom, aber die Zeiten sind lange vorbei. Was man nicht alles vergisst, wenn man nicht öfter damit zu tun hat.

    Gruss Sebastian

  • Es käme halt auf deine Begebenheiten bzw Anforderungen an..
    - Was genau möchtest du erreichen
    - Wo genau sollen die Slaves platziert werden
    - Gäbe es dort eine separate Stromversorgung
    - Kann man die Stromversorgung anzapfen, oder wäre Batterie/Akku Betrieb besser
    - Was für Sensoren sollen angesprochen werden bzw was soll "bewacht" werden
    usw

    Über den 2.Link in meiner Signatur findest du schon mal einiges bezüglich AVR usw, da verwenden wir auch einen kleinen AVR kombiniert mit nem RFM12B Funkmodul. Bei dieser Variante bräuchtest du dann aber noch ein paar Teile mehr sowie einen extra 433MHz Empfänger (RFM12B kann sowohl Senden als auch Empfangen).

    Und wenn du zB einen Lichtschalter digital betätigen willst brauchst du ja so oder so noch entsprechende Hardware die das bewerkstelligen kann - egal ob PI oder AVR...

    Dann wär auch die Frage wie komplex ist das was der Slave können soll. Wie umfangreich wären die Aufgaben des Slaves...

    Wie sieht es mit WLAN aus; ist überall die Empfangsqualität akzeptabel und stabil? Ist ausreichend Abdeckung auch im Garten gegeben um dort Slaves platzieren zu können?

    Bezüglich WLAN wäre ein Stichwort: ESP8266
    Das ist ein WLAN Modul in Briefmarken Format, welches einen eigenen SoC besitzt und individuell mit Firmware und Benutzerprogrammen versehen werden kann.
    Ausserdem ist es über UART (Seriell) ansprechbar und besitzt in späteren Entwicklungs-Ausführungen auch einige GPIO Ports. Würde sich also ebenfalls als Slave eignen da man sich dann sogar einen AVR sparen könnte sofern man zB ein ESP-12 nehmen würde. Wenn man zum ESP-01 greift benötigt man aber noch einen AVR um GPIOs zu haben, also beispielsweise ein ATtiny84 oder 85 oder vergleichbares - son Miniatur Chipchen :D
    Der Strombedarf von diesen kleinen Teilen ist dann aber höher als es bei einem RFM12B der Fall wäre - ist aber auch vom jeweiligen WLAN Netz und benötigte Sendeleistung usw abhängig..

    GPIOs brauchste halt, wie beim PI, um externe Gerätschaften; Sensoren, Schaltungen usw; bedienen/steuern zu können..


    Du siehst also, da gäbe es schon noch einiges zu klären, es gäbe aber weitaus billigere Lösungsmöglichkeiten als fürn Slave einen RaspberryPI einzusetzen ;)

  • OK ich mache mir mal Gedanken.
    Dein Projekt "Batteriebetriebene Funksensoren" habe ich schon überflogen, da kann ich einiges eventuell Übernehmen, wenn Du erlaubst. Man muss das Rad nicht immer neu erfinden. Aber ist schon vom Umfang eine beachtliche Größe, Hut ab!
    Ich werde morgen ausführlicher antworten.

    Gruss Seb

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!