DS1820 übers Netzwerk auslesen

  • Hallo, ich habe ein "kleines" problem:

    Ich habe bei meinem Terrarium einen RPi laufen, der über mehrere DS18S20 Sensoren die Temperatur mitloggt (habe die avrio hier aus dem Forum in Verwendung, nur mit anderen Feldnamen in der Tabelle)

    Nun würde ich auch gerne in diese Datenbank die Aussentemperatur mitschreiben, allerdings steht der RPi an des SW-Seite, somit wäre er immer viel zu warm (der Sensor).

    Ich habe aber "zufällig" einen 2. RPi in der Küche stehen (mpd) diese wäre NO Zeitig gelegen.

    Wenn ich hier einen Temperatursensor (DS1820) anhänge, wie bekomme ich einfach über das Netzwerk die Daten in die Datenbank am anderen Pi?

    Ich dachte, ob es nicht möglich wäre, den Sensor übers Netzwerk zu linken oder zu mounten, und ich ihn gleich lokal mitabfragen kann

    also zb den ordner

    Code
    /sys/bus/w1/devices/10-000802b59eeb/

    gleich ins passende lokale Verzeichnis zu mounten oder nen link erstellen?

    der andere weg wäre ja auch am küchen-rpi python,... zu installieren, und remote auf die Datenbank am anderen rpi zuzugreifen, und den letzten datensatz verändern und ins passende Feld die Temperatur einfügen, wobei das doch etwas overkill wäre?

  • Er möchte den letzten Datensatz (Temperaturen aus Terrarium) mit dem Wert extern ergänzen...so sollte es wohl heißen!

  • genau, ein Datensatz hat 8 Temps wovon 6 aus dem Terrarium kommen, einer die Raumluft ausserhalb des Terrariums, und der 8. soll die Aussentemperatur werden. (die kommt vom anderen Rpi)

    ich habe halt derzeit auch die Datenbank so eingestellt, das Remote-Zugriffe nicht erlaubt sind.

    Eine andere Idee habe ich noch, auch wenn sie nach etwas gebastelt klingt ;) :

    am anderen dpi einfach per cron job die temp auslesen und den ganzen output in eine Textdatei schreiben, die in einem gemosteten Verzeichnis vom anderen pi liegt. Wenn der Aufbau stimmt, glaubt das Script (eventuell) das es den Sensor ausliest.

    Die Möglichkeit das zu testen habe ich aber erst am Freitag, da meine Küche gerade Baustelle ist (malen, Bodenlegen) und deswegen der Rpi nicht in Betrieb ist

  • So, hat zwar ein wenig gedauert, aber jetzt hab ich eine funktionierende Lösung die auch einigermaßen elegant ist:


    In dem Fall ist avrdat die Tabelle, avrio die Datenbank. User, Passwort & Host ist halt anzupassen

    am Datenbank Server müssen zugriffe von extern erlaubt sein (in der my.cnf bind_adress auf die Ip der Netzwerkkarte ändern von 127.0.0.1 , und einen MySQL - User anlegen der vom Client-PC aus zugreifen und Datensätze ändern darf

    Einmal editiert, zuletzt von voyager (30. Oktober 2013 um 14:22)

  • Servus Zusammen,

    ich habe nun genau das selbe vor.
    Allerdings, würde ich gerne den Sensor und evlt. auch die CPU Temperatur mit Python abfragen.

    Auf dem RPi 1 ist die Datenbank mit 5 Sensoren. Diese lese ich alle mit Python aus und schreibe auch direkt über Python in die Datenbank (SQLite).
    Jetzt würde ich gerne mein Skript erweitern, sodass ich von dem RPi 2 den DS18B20 und evlt. die CPU Temp abfragen kann.

    Ist das mit Python ohne weiteres Möglich?
    Könnte mir jemand einen Ansatz geben, oder auch liebend gerne etwas zum lesen, wie es funktionieren kann?

    2. Möglichkeit wäre, dass ich eine Datei über scp auf den RPi 1 kopiere, und einfach diese Datei auslese. (Was mir aber persönlich nicht so gut gefallen würde).

    Danke schon mal!

  • Hallo Wusa,

    mal abgesehen, dass der letzte Eintrag des Threads, auf den Du antwortest, bereits knapp zwei Jahre alt ist, würde ich es über die serielle Schnittstelle machen.
    Da gab es u.a. auch von mir ein paar Beiträge. Du sparst Dir jede Menge Ressurcen, die serielle Übertraguing geht um einiges schneller als das Verschicken per SCP UND Auswerten der Datei. Und es ist eine für Dich wahrscheinlich auch neue Übertragungstechnik. Netzwerke können ausfallen - die serielle Schnittstelle wohl kaum...


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hi Andreas,

    Danke!

    Das der Thread schon etwas in die Jahre gekommen ist, ist mir klar. Da es aber genau zu meinem Fall passt, wollte ich keinen neuen Thread eröffnen.

    Das Problem der seriellen Schnittstelle ist vermutlich, dass es Kabelgebunden ist? Sollte es auch eine Möglichkeit geben, könnte ich es vermutlich nicht umsetzen.
    Es ist so, dass ein RPi im Keller ist, der 2. aber im ersten OG im Haus. Verbunden sind die 2 über Netzwerk.

    Daher denke ich bleibt mir nur der Weg über das Netzwerk.

  • Danke für den Tipp!

    Aber hast du auch eine SQLite Datenbank laufen?
    Ich würde nämlich gerne alle Temperaturen in einer Tabelle haben.

    Aufgebaut ist das ganze bisher bei mir so:
    Datum Uhrzeit | Temp 1 | Temp 2 | usw.... Jetzt würde ich gerne noch einen Eintrag anfügen: | CPUTemp_PI2

    Funktioniert das ganze so über deinen Vorschlag?
    Oder wie verarbeitest du die Temperatur weiter?

  • Ich verwende diesen Socket Client auf dem fernen (Datenbanklosen) RPi:


    Klar das Skript dann noch in der Crontab hinterlegen.

    und diesen Socket Server auf dem RPi mit der SQLite Datenbank:

  • Vielen Dank nochmal zu der Hilfe mit dem Socket Server. Ich habe jetzt nochmal gelesen und mir auch Gedanken gemacht.
    Würde es eigentlich auch mit SSH "Paramiko" funktionieren? Sodass eine SSH Verbindung aufgebaut wird, Sensor ausgelesen wird und dann in die Datenbank geschrieben wird? Oder ist der Socket Server DIE Lösung?

    Danke

Jetzt mitmachen!

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