RPi kommuniziert mit RPi

  • Hallo, ich bin der neue:)

    Ich bin auf der Suche nach Hilfestellung, und zwar möchte ich zwei Werte vom DHT 22 übers interne Netzwerk von einem RPi (R2) zum anderen RPi (R1) übertragen.

    Auf R1 lese ich 5 Temperaturen von Ds18b20 Sensoren aus sowie 2 weitere Werte aus homematic Temperatursensoren. Diese Daten speichere ich online via Python in einer MySQL Datenbank. Jetzt hab ich mir einen weiteren Raspberry (R2) zugelegt. Den möchte ich in meinen Trockenschrank einbauen, um die Luftfeuchte zu überwachen, im weiteren Step ein Relais ansprechen welches einen Ventilator steuert.

    Diese Daten will ich auch online bereit stellen.

    Wie komme ich mit dem R1 an die Sensordaten von R2, am besten mit Python 2.7? Ich bräuchte nur die zwei Variablen Humidity und Temperature.

    Hat das schon mal jemand gemacht?

    Vielen Dank für Eure Hilfe

    Hardliner :)

  • Ich würds anders rum machen. Schreib die Werte doch direkt in die Datenbank von R1.

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Danke für die schnellen Antworten :)

    Tell: die Sensordaten von R1 werden online in einer www-Datenbank übertragen, mit Python lese ich die Werte aus und übertrage die dann online in die www-Datenbank. Klar könnte ich die Werte von R2 auch direkt in die www-Datenbank schreiben.

    Ist das der einfachste Weg?

  • Hey,

    ich habe sowas 'ähnliches' gehabt:

    Mein Fall:

    Homekit Anzeige der Betriebstemperaturen meiner beiden Pi's

    Homebridge jedoch nur auf RP1

    Lösung:

    RP2 ließt die Temperatur aus / konvertiert diese / speichert sie auf dem RP1 in einer Textdatei ab

    RP1 ließt die Datei und zeigt die Werte

    Das ganze mit:

    sshpass -p <PASSWORD> ssh pi@<IPADRESSE> <BEFEHL>

    Der Befehl ist in meinem Fall ein Script, dass auf dem RP ausgeführt wird.

    Das habe ich als cronjob gespeichert und updated alle 10 min.

  • Wenn Du schon so einen mächtigen Server, wie mySQL laufen hast, dann kannst Du den ruhig auch be- und ausnutzen. Dem SQL Server ist es egal, von wo ein Client auf den Server zugreift. Nur bei der Pi-Debian Installation ist der Server vorerst nur auf localhost voreingestellt (aus guten Gründen) und eingeschränkt.

    Dem mySQL Admin obliegt es, sich mit dem Server entsprechend vertraut zu machen und Clients, woher auch immer, freizuschalten. Neben der Userverwaltung sollte ein SQL Admin auch die Grundzüge der Datenbanken-, Tabellen- und Rechteverwaltung beherrschen.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Danke fürs Feedback:)

    Wäre schön gewesen wenn es einfach wäre. :)Einfach die Werte vom R2 Gpio auslesen und mit in die SQL INSERT Anweisung des R1 schreiben. :)

    Ich werde es wohl so machen dass ich eine neue Abfrage auf dem R1 schreibe. Vielen Dank

    Hardliner

  • infach die Werte vom R2 Gpio auslesen und mit in die SQL INSERT Anweisung des R1 schreiben.

    Genau so hat es RTFM in #6 geschrieben.

    Am PI2 gibst du einfach als mysql Server die IP des PI1 an.

    Du musst nur den mysql Server so einstellen das er auf die IP hört und nicht nur auf Localhost.

    Anleitungen dazu gibt es zu Hauf hier im Forum.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Hallo,

    Zitat

    am besten mit Python 2.7

    Am besten so gar nicht, weil Python 2.7.Ende des Jahres EOL ist. Sprich, du solltest schon mal an der Portierung auf Python 3 arbeiten. Wird Zeit...

    Soll der RPi 2 sich die Werte holen oder soll der RPi1 die Werte auf den RPi 2 pushen?

    Aber wenn du eh' eine zentrale DB hast, ist das der einfachere Weg.

    Gruß, noisefloor

  • Wäre schön gewesen wenn es einfach wäre. :)Einfach die Werte vom R2 Gpio auslesen und mit in die SQL INSERT Anweisung des R1 schreiben. :)

    Ist etwas missverständlich, da nicht der SQL-Server von R1 die Daten von R2 holt, sondern R2 mit der SQL Insert Anweisung die Daten auf den SQL Server von R1 schreibt.

    Das funktioniert nach dem klassischen Client - Server Prinzip.

    Ein Client muss nicht am selben Host, wie der SQL Server, laufen, es muss nur seine Netzwerkadresse und Username in der SQL System-Datenbank freigeschaltet werden.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo,

    ich wollte Euch nur mal eine kleine Rückmeldung geben..

    Ich habe paramiko entdeckt, damit funktionierte es dann auch sehr gut, ich konnte Werte vom R2 an den R1 übertragen.

    Dann fand ich irgendwann pigpio.... Was soll ich sagen... Noch einfacher :bravo2:

    Vielen Dank für Eure Denkanstöße:danke_ATDE:

    Ein schönes Restwochenende wünsch ich Euch

Jetzt mitmachen!

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