Funkthermometer am RPi (die x-te)

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich wollte hier mal einen kleinen Thread starten, in dem der Fortschritt zu meinem Projekt ein bisschen dokumentiert wird. Mein aktuelles Projekt ist es, billige Funkthermometer am RPi via SDR auszulesen und die Werte lokal zu speicher und via Webinterface zu visualisieren.

    Was schon funktioniert

    • Funkthermometer wurde erfolgreich decodiert
    • RPi kann das Thermometer automatisiert auslesen
    • Daten werden lokal gespeichert (momentan in .csv's, da die Datensätze recht simpel sind)
    • Erster Entwurf eines kleinen Webinterfaces mit den aktuellen Werten steht:
      webinterfacen1cku.png

    Was noch in Planung ist

    • mehrere Thermometer kaufen + Werte für jedes Thermometer separat speichern
    • Code des Decodier-Scripts optimieren (bisher nur eine quick-and-dirty-Lösung; funktioniert aber stabil)
    • Webinterface für historische Daten erstellen
    • Den Pi mit dem ganzen Kram drum herum in ein schönes Gehäuse (evtl. mit LCD) packen und im Wohnzimmer o.ä. positionieren

    Wie das Projekt umgesetzt wurde

    • Thermometer mittels SDR decodiert (siehe Blog-Artikel)
    • Decodier-Script in Python erstellt (basierend auf Pydemod)
    • Grafiken des Webinterfaces mit Highcharts gestaltet
    • Temperaturen werden alle 15 Minuten aufgezeichnet mittels cronjob

    Was für Hardware genutzt wird

    • RPi (natürlich ;))
    • 5€ Funkthermometer (mit Hygrometer; näheres demnächst)
    • DVB-T Stick mit RTL2832U+R820T
    • aktiver Hub

    Warum das Projekt realisiert wird

    • Weil ich es kann... ne, Spaß beiseite ;)
    • Temperatur soll im Haus und draußen geloggt werden, um Heizgewohnheiten zu optimieren (ok, momentan vll noch nicht relevant, aber der nächste Winter kommt bestimmt ;))

    Sonstiges
    Ich bin mit dem Projekt noch ziemlich am Anfang, da Pydemod erst kürzlich soweit optimiert wurde, dass es auch am Raspberry ordentlich läuft (160k Samplerate packt mein Pi nun ohne Probleme [CPU-Last ca. 30%], obwohl nur 60k bei meinem Sensor notwendig wären). Der Code muss noch optimiert werden, um mehrere Sensoren damit problemlos zu decodieren - insbesondere Praxistests mit mehreren Sensoren, dem Verhalten, wenn einer ausfällt und wenn mehrere Signale gleichzeitig ankommen muss ich noch überprüfen, wenn ich noch andere Sensoren hier habe.
    Das gesamte Projekt wird dann wenn es soweit fertig ist auch wieder in meinem Blog veröffentlicht.

    Für Ideen, Tipps und Ratschläge bin ich immer offen.

    -freibeuter-

  • Wie beschrieben - genauere Angaben zum Thermometer folgen noch.
    Über die Reichweite kann ich pauschal nichts sagen, diese hängt einfach von zu vielen Faktoren ab (Störsender, Hindernisse für das Signal, Batteriestand der Thermometer, Antenne des Empfängers, Schwellwert in der Software,...).

    Fortschritte

    • Bug behoben bzgl. der Temperatur (8 bit reichen halt nicht für Temperaturen >25,6° ;))
    • Arbeiten am Webinterface für historische Daten laufen
    • Pi dank Wlan-Dongle mittlerweile auch frei im Haus platzierbar
    • Weitere Thermometer bestellt, werden demnächst im Haus verteilt und das Decodier-Script für mehrere Sender optimiert

    So wirklich voran gekommen ist das Projekt also in letzter Zeit nicht - das ist aber hauptsächlich dem schönen Wetter geschuldet.
    Mit einem Sender läuft alles soweit sehr stabil über mehrere Stunden Testzeit (bis auf einen kleinen Ausfall der richtigen Temperaturen wg. dem beschriebenen Bug). Für die gewählte Vorgehensweise mit SDR schien der Einsatz eines 868MHz-Senders Vorteile ggüber 433MHz-Modellen zu haben, da ich hier keine störende andere Sender auf dieser Frequenz empfange, das 433MHz-Band dagegen ist hier stark frequentiert.

  • So, die anderen Sender sind mittlerweile eingetroffen. Momentan habe ich 4 davon im Einsatz, eine Echtzeitdecodierung ist damit nicht fehlerfrei möglich. Lösung war der Einsatz von "buffer" zwischen rtl_fm und pydemod.

    Fortschritte

    • 4 Sender laufen nun (bisher ohne Probleme) dank Einsatz eines Puffers zwischen rtl_fm und pydemod
    • Kleines Webinterface für die 4 Messpunkte gestaltet, das auf die jew. Unterseiten mit den aktuellen Werten verlinkt:
      webinterface42skv.png
    • Unterseiten für die einzelnen Messpunkte erstellt. Struktur:
      struktur12kjc.png

    Nächste Schritte

    • Die Ansicht für die historischen Daten endlich zum Laufen bringen (hapert noch an den UTC-Timestamps, die einfach nicht von Highcharts ausgelesen werden wollen :denker:)
      So sollten dann die Unterseiten dann mal aussehen (Achtung: quick&dirty-Skizze, Desinger nicht weiterlesen!):
      webinterface4dj0q.png
    • Noch ein paar Code-Arbeiten am Python-Script
    • Gehäuse basteln, in dem der Pi, ein Hub, der DVB-T-Stick, WLAN + Bluetooth-Stick sowie das Kabel-Gewirrwar Platz hat (die watterott-Schachtel tuts zwar auch, aber eine schöne Holzkiste wäre da schon schöner)

  • - genauere Angaben zum Thermometer folgen noch.

    wird ja mal Zeit :lol:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Jaja, is ja gut :D
    Die Sensoren sind leider nicht mehr erhältlich in Deutschland soweit ich das sehe (falls wer noch irgendwo Bestände findet, wäre ich auch um eine kurze Info dankbar ;)). Habe sie aus einem Restpostenbestand eines Händlers für 3,95€/Stck bekommen.
    Die Sender nennen sich "National Geographic 283NE" und wurden von Topcom produziert. Entgegen der Bedieungsanleitung, die ich dazu finden konnte, senden sie nicht mit 433MHz, sondern mit 868,2MHz.
    Allerdings sollten sich mit der SDR-Methode prinzipiell fast alle Sender decodieren lassen. Man muss sich halt die Arbeit machen, die Signale zu decodieren. Pydemod wurde ursprünglich ja auch für TFA-Sender geschrieben.


  • Jaja, is ja gut :D
    Die Sensoren sind leider nicht mehr erhältlich in Deutschland soweit ich das sehe

    ist damit dein Thread (für uns) hinfällig ? :s

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Nunja - das Prinzip lässt sich wie geschrieben auch auf andere Sender anwenden. Eine fix-und-fertig-Lösung für alle zu präsentieren war nie Sinn und Zweck dieses Threads. Vielmehr ist er als Ansatz gedacht für Leute, die ihre fertigen Sender auch am Pi auslesen möchten.

  • So - heute gibt es mal wieder ein kleines Update.

    Fortschritte

    • Python-Code etwas optimiert
    • Webinterface mit (Ganz-) Tagesansicht funktioniert nun (date-picker ist in Arbeit):
      webfojf4.png

    Weitere Ideen

    • Ein Android-Widget basteln, um die aktuellen Werte direkt am Lockscreen/Homescreen zu haben
    • Eine vernünftige Antenne kaufen/basteln, da hin und wieder nonsense-Werte ankommen (hat hier zufällig wer einen Tipp für mich parat, welche Bauform hier am besten wäre?)

    Update: Auf meinem Blog (siehe Signatur) habe ich mittlerweile einen Artikel dazu verfasst. Dort sind auch die Quelltexte verlinkt, die ich für das Projekt verwendet habe - falls es wen interessiert ;)

    Einmal editiert, zuletzt von freibeuter (9. Juli 2014 um 16:01)

  • So, nach gut einem Jahr mal wieder ein Update (hab den Thread hier vergessen...).
    Datepicker im Webinterface wurde ergänzt, auch ein Interface für eBook-Reader:

    ereader_webinterfaceqqu0u.png


    Das Android Widget habe ich mit Automagic erstellt:

    widget1duy1.png


    Zudem hab ich mir noch ein kleines Script gebastelt, das mir eine Mail schickt, wenn die Batterien in einem Thermometer leer sind (prüft per cron jeden Tag morgens, ob schon Daten angekommen sind für das jew. Thermometer [nach gut 7h]). Die Batterien in den Thermometern (Akkus vom Aldi) halten etwa ein halbes Jahr. Das System läuft recht stabil seit einem guten Jahr, den Pi samt Peripherie ist in einem Holzgehäuse mit aktiver Belüftung untergebracht und funktioniert damit auch im Hochsommer stabil:

    case_inside_2v6z8k.jpg


    case_openeyx6p.jpg

Jetzt mitmachen!

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