1-Wire Temperatur Sensoren in die AWS-IOT Clout bringen

#7415538
Lesenswert?

Hallo zusammen,

ich habe in einem Heizkeller mittels eines Raspberry-Pi mehrere 1-Wire Sensoren ausgelesen. Ich habe hierfür mehrere GPIO's über einen Software-1-Wirte-Treiber betrieben. (Hat so mittel prächtig funktioniert. Ich musste Zyklisch den GPIO Port und Treiber reseten).

Heute in 2023, möchte ich das ganze besser Lösen, da das PI samt Software verloren gegangen ist.

Anforderung:

  • Es sind zwei benachbarte Räume mit mehreren Wassertanks. Leitungslänge vom weit entferntesten Wassertank bis zum ersten Wassertank maximal 15 Meter.
  • 10 Sensoren DS18B20
  • Daten sollen in AWS-IoT geschrieben werden

Habt ihr einen Tipp wie ich das besser Umsätzen könnte? (Im Heizkeller ist eine Fritzbox mit aktiviertem WLAN, ich hätte auch noch ein Raspberry-Pi). Ich hab gesehen, mittlerweile gibt es auch kleine MicroController mit WIFI, 1-Wire Unterstützung.

Vielleicht hat ja schon jemand sowas umgesetzt und kann sein Setup kurz erklären. Am Ende möchte ich einfach Grafisch im Browser Temperatur Verläufe einsehen.

Vielen Dank und beste Grüße Philipp

#7415572
Lesenswert?

Εrnst B. schrieb:

AWS-IoT spricht auch "MQTT".

Suche nach DS18B20 und MQTT, und du wirst von Bergen und Bergen an Lösungen überschwemmt. Das ist so ziemlich das einfachste IoT-Projekt, was gefühlt jeder ESP8266/ESP32-Anfänger zum Einstieg bastelt, und dann stolz auf seinen Github-Account hochläd.

Läuft das 1-Wirte auf einem DS18B20 stabiler?

Ich habe mehrere DS18B20 an einem Raspi hängen, der hat ja das 1-wire-Protokoll im Kernel. Ich schubse dann die Daten per wput oder curl in die Cloud, die ist am Raspi per sshfs als Verzeichnis eingebunden, d.h. ich schreibe ein HTML-File in das dieses Verzeichnis. Fertig.

Welches Pi hast du? Ich habe immer wieder Probleme gehabt im Langzeitbetrieb und 1-Wire? Hast du alle DS18B20 an einem GPIO hängen oder hast du diese verteilt?

#7415613
Lesenswert?

Philipp schrieb:

Läuft das 1-Wirte auf einem DS18B20 stabiler?

der DS18B20 ist ein 1-Wire-Sensor. Was wolltest du fragen?

Philipp schrieb:

Ich habe immer wieder Probleme gehabt im Langzeitbetrieb und 1-Wire?

Vom DS18B20 kriegst du überall nur Fakes. Mehr oder Weniger gut. Manche machen nur eine gewisse Anzahl an Messzyklen mit, bevor sie kaputt gehen. (Liegt daran, dass die ihr Scratchpad im Flash liegen haben, wenn die Zellen ausgenuddelt sind, ist Ende)

https://github.com/cpetrich/counterfeit_DS18B20

Philipp schrieb:

Hast du alle DS18B20 an einem GPIO hängen oder hast du diese verteilt?

Per I²C auf einen DS2482-100, und von dem an alle Sensoren.

Keine Userspace-Software-Treiber, sondern alles den In-Kernel-Treibern überlassen.

#7415700
Lesenswert?

Philipp schrieb:

ganze mit einem "ESP8266" [...] besser laufen würde

Hab ein paar DS18B20(-Clone) an ESP8266 hängen, da gab's nie Probleme. Aber: Keine 15 Meter Leitungen dran & nur wenige Sensoren. Kann da also nix zum Verhalten/Stabilität bei größeren Verkabelungen sagen.

Hardwareseitigen 1-wire Implementierung

Ist am ESP8266 auch Bit-Banging.

Die Lösung über den DS2482-100 hatte ich unter Linux im Einsatz. Zwar an einm Router mit MIPS-CPU unter OpenWRT, aber das läuft am Raspi mit ARM und Raspbian genauso... der Kernel kapselt das alles weg, am Schluss hast du für jeden Sensor eine (virtuelle) Datei im Sysfs, in der die Temperatur steht.

#7415852
Lesenswert?

Philipp schrieb:

Ich habe mehrere DS18B20 an einem Raspi hängen, der hat ja das 1-wire-Protokoll im Kernel. Ich schubse dann die Daten per wput oder curl in die Cloud, die ist am Raspi per sshfs als Verzeichnis eingebunden, d.h. ich schreibe ein HTML-File in das dieses Verzeichnis. Fertig.

Welches Pi hast du? Ich habe immer wieder Probleme gehabt im Langzeitbetrieb und 1-Wire? Hast du alle DS18B20 an einem GPIO hängen oder hast du diese verteilt?

Ich habe an einem Ast 3x DS18B20 (1x Orig, 2 Clone, 1 Clon musste getauscht werden) seit 2017 24/7 laufen, Kabel ist ca 5 m lang, parasitärer Modus. Der Raspi war zuerst ein Raspi2B, jetzt ein Raspi3B+ mit Raspbian z.Zt. Bullseye, mein Programm (erfasst diverse Klimadaten) ist in Python3 geschrieben, Upload zur Cloud früher per curl, jetzt in eine per sshfs eingebundene Cloud (eigener Server mit Ngnix). Ein 2. Raspi3B+ an einem anderen Standort hat nur 2 DS18B20-Clone, ca 3 m Kabel.

#7416447
Lesenswert?

Stephan S. schrieb:

Ich habe an einem Ast 3x DS18B20 (1x Orig, 2 Clone, 1 Clon musste getauscht werden) seit 2017 24/7 laufen,

Meine Erfahrungen: Bei mir laufen 8 St. DS18B20 seit 2009 problemlos in unserer Heizstation an bis zu 10m langen Kabeln. Abtastung alle 8s und Speicherung der Messdaten auf einer SD-Karte. Jährlich ein Neustart zu Beginn der Winterzeit. µC = MSP430F1611

#7416551
Lesenswert?

Hermann G. schrieb:

Kennt jemand noch eine Quelle oder eine Schaltungs- bzw. Bauelement-Alternative?

Ein Dutzend DS18B20 mit Kabellängen bis zu 10m, parasitär versorgt an einem Arduino Nano läuft bei mir sei Jahren stabil. Die Daten gehen dann seriell an einen MQTT-Gateway.

Philipp schrieb:

Läuft das 1-Wirte auf einem DS18B20 stabiler?

Was ist "1-Wirte"? Der DS18B20 besitzt ein 1-Wire Bus Interface.

#7416638
Lesenswert?

Hermann G. schrieb:

Per I²C auf einen DS2482-100, und von dem an alle Sensoren.

Nette Idee, wollte ich auch in einer aktuelken Entwicklung so machen. Aber bei allen unseren Lieferanten ist das Teil "zur Zeit nicht lieferbar".

Kennt jemand noch eine Quelle oder eine Schaltungs- bzw. Bauelement-Alternative?

Hier z.B. https://de.farnell.com/maxim-integrated-products/ds2482s-100-t-r/i2c-zu-1-draht-br-cke-1-kanal/dp/2514567?CMP=KNC-GDE-GEN-KWL-PMAX-Search-TEST-1545&gclid=EAIaIQobChMIhceBov2A_wIVTLTVCh237wguEAAYBCAAEgLaHfD_BwE

#7418017
Lesenswert?

#7418025
Lesenswert?

Philipp schrieb:

Was haltet Ihr davon?

Teuer. Schaltplan und Sourcecode für den µC offengelegt, falls man was ändern will? RS485-Ausgang ist nice, aber hat dein Raspi den auch?

Was hältst du von sowas? https://www.aliexpress.com/item/4000035981362.html

Das kann direkt mit der AWS-IoT-Cloud sprechen, kein RasPi dazwischen nötig, und es gibt die Platinchen mit DS18B20 Sensoren, oder auch mit Luftfeuchte+Temperatur (DHT11/22)

Edit: Hier gibt's auch noch eine schöne Anleitung, wie man sich das bei AWS zusammenklickt, und was an Software auf dem ESP nötig ist:

https://how2electronics.com/connecting-esp8266-to-amazon-aws-iot-core-using-mqtt/

#7418034
Lesenswert?

Philipp schrieb:

Wie würdest du das machen?

Entweder selber eine kleine Platine für ESP8266-O1 mit Schraubklemmen für die Temperatursensor-Kabel in China fertigen lassen, oder Streifenraster-Platine mit Schraubklemmen+Kleinkram, in die Mitte Buchsenleisten um ein NodeMCU-Modul einzustecken.

Oder welche von den China-ESP-01-mit-DS18B20 - Platinchen aus dem Angebot oben, den Temperatursensor auslöten und stattdessen eine Lüsterklemme dran verdrahten :)

#7418069
Lesenswert?

Entweder selber eine kleine Platine für ESP8266-O1 mit Schraubklemmen für die Temperatursensor-Kabel in China fertigen lassen,

Ich kann sowas nicht, aber aus Interesse was würde das kosten?

Oder welche von den China-ESP-01-mit-DS18B20 - Platinchen aus dem Angebot oben, den Temperatursensor auslöten und stattdessen eine Lüsterklemme dran verdrahten :)

Kann ich dann aber nur 1-sensor so anschließen oder mehrere?

Ich würde gerne vom Aufwand das geringste nehmen. Daher gefällt mir weiterhin dieses board von oben für 10€ am besten. Das würde ich mittels USB-Adapter dann am Raspi auslesen.

#7418104
Lesenswert?

Philipp schrieb:

Kann ich dann aber nur 1-sensor so anschließen oder mehrere?

Was ist ein "1-sensor"?

Die DS18B20 besitzen ein Interface für den 1-Wire BUS. Das Wort Bus steht für eine Verdrahtungsstruktur, an der mehrere Teilnehmer angeschlossen werden können. Hier findest du einen Überblick über den 1-Wire Bus mit vielen weiterführenden Literaturangaben. https://www.analog.com/media/en/technical-documentation/tech-articles/guide-to-1wire-communication--maxim-integrated.pdf

#7418143
Lesenswert?

Philipp schrieb:

Ich würde gerne vom Aufwand das geringste nehmen. Daher gefällt mir weiterhin dieses board von oben für 10€ am besten.

Das würde ich vom Aufwand recht weit oben ansiedeln. Da ist ein µC drauf, der irgendeine Umsetzung von diversen Sensoren auf RS485 macht. Ich hab keine Doku gesehen, was für ein Protokoll der auf der RS485-Schnittstelle spricht, wie/wo/welche Sensoren angeschlossen werden können usw. Und kein Schaltplan. d.H. bei dem Board wäre der Aufwand in etwa: µC identifizieren, Schaltplan rausklingeln, Entwicklungsumgebung für den unbekannten µC aufsetzen, Protokoll spezifizieren, Firmware implementieren... Oder Glück haben und irgendwo eine Dokumentation finden.

Und wo wäre der Vorteil ggü. direktem Verkabeln der Temperatursensoren an den RasPi? Breakouts für Schraubklemmen-an-RasPi gibt's ja ebenfalls.

Edit: https://www.aliexpress.com/item/1005005240905696.html

Spricht ModbusRTU. Wenn du damit schon Erfahrung hast, oder das in eine bestehende ModBus-Verkabelung integrieren kannst, OK, macht Sinn.

Wobei's komisch ist, dass der nur 8 Sensoren kann. Vermutlich war den Programmierern der OneWire- Bus zu kompliziert...

#7418808
Lesenswert?

Ich hab es jetzt so gemacht.

Ich messe alle 10 Sekunden, bilde den Median der letzten 5 Messungen. Wenn ein Wert komisch ist, dann nehm ich dem 1-Wire Netzwerk für 10 Sekunden den Strom und lege wieder los. Scheint bis jetzt gut zu laufen. (Achja, ich habe leider ausschließlich FAKE sensoren ...)

Die Daten schaufel ich zu AWS-IoT und kann Sie dort "live" mitlesen.

Jetzt muss ich Sie nur noch Speichern und Visualisieren. Wie würdet Ihr das machen? (Kostengünstig)

#7418875
Lesenswert?

Philipp schrieb:

Jetzt muss ich Sie nur noch Speichern und Visualisieren. Wie würdet Ihr das machen? (Kostengünstig)

Ich würde die AWS-Cloud ganz weglassen, und auf dem RasPi ein Setup mit MQTT, InfluxDB, Node-Red, Grafana laufen lassen.

Wobei du MQTT nicht unbedingt brauchst, wenn die Sensoren eh direkt am RasPi hängen, Node-Red auch durch IOBroker, OpenHAB, Fhem, ... ersetzbar wäre, bzw. dein Code auch selber direkt nach Influx speichern könnte, und Grafana nur nötig ist, wenn dir die Visualisierungs-Funktionen von Influx / Node-Red nicht reichen. Und statt Influx-DB tut's auch eine andere Datenbank.

Denn was gewinnst du durch die AWS-Cloud? Wenn der RasPi offline ist, werden so oder so keine Temperaturwerte geloggt...

#7419028
Lesenswert?

Danke, ich schaue mir die Tools mal an kenne diese nicht.

Denn was gewinnst du durch die AWS-Cloud? Wenn der RasPi offline ist, werden so oder so keine Temperaturwerte geloggt...

Also mein jetziges Setup ist nach 5 Jahren "verreckt". SD Karte im Eimer und Daten und Code sind weg. (Natürlich selber schuld).

Diesmal wollte ich die Datenbank und Logic in der Cloud lassen und den Teil auf der Heimat Seite so gering wie möglich halten. (Das Setup kommt dann im mehrere Heizräume und soll einfach ersetzbar sein).

Auch will ich das ganze noch weiter ausbauen und Gas/Wasser/Strom Zähler ergänzen.

Ich erhoffe mit einer Zentralen-Datenverarbeitung auf lange Sicht eine einfachere Umgebung.

P.S: Ich hab noch eine Solaranlage, und würde gerne wissen wann diese Läuft. Ich möchte da nichts anschneiden oder sonstiges machen. Hast du eine Idee wie ich Protokollieren könnte wann Sie läuft und wann nicht? Ich denke daran irgendwie zu merken ob die Pumpe rennt oder nicht, das sollte ja universell überall gehen, aber nur wie?

#7419077
Lesenswert?

Harry L. schrieb:

Dir ist aber schon klar, daß die AWS nach dem 1. kostenlosen Jahr richtig Geld kostet?

So schlimm ist das nicht. Für <1 USD/Monat geht schon recht viel...

https://calculator.aws/#/addService/IoTCore

Wobei mir der Dollar für einen MQTT-Service, den ich mir mit zwei Zeilen in einer docker-compose-Datei auch selber starten kann, schon zuviel wäre.

Philipp schrieb:

Diesmal wollte ich die Datenbank und Logic in der Cloud lassen und den Teil auf der Heimat Seite so gering wie möglich halten.

Da kannst du dir bei AWS sicher was zusammenstellen... Lambda was auf die MQTT-Nachrichten reagiert, evtl. einmal durch SQS schleusen, in eine DynamoDB speichern, Frontend über AWS Amplify, Deploy mit CDK, Überwachung mit cloudwatch, login per Cognito usw... Jeder Schritt für sich ist nicht so teuer, in der Summe kommt trotzdem was zusammen. Oder du nimmst eine kleine EC2-Instanz, und installierst die Software darauf selber so, wie du sie sonst auf den Raspi installiert hättest.

Oder du machst alles lokal am RasPi, und bastelst dir nur ein Backup, was deine Daten regelmäßig in die Cloud sichert. (cronjob mit rclone...) Dafür fallen dann nur ein paar GB S3-Storage an (oder es passt in das kostenlose Google-Drive-Kontingent)

Das AWS-Zeug ist halt sehr komplex und fordert viel Einarbeitung, wenn man es sinnvoll einsetzen will, oder es ist sehr teuer...

Aber, wenn du nicht auf AWS festgelegt bist: Es gibt auch Cloud-Anbieter exakt für deinen Anwendungsfall: Also MQTT-Empfangen, Daten speichern, Dashboard zur Auswertung mit Graphen.

Willkürliche Google-Treffer: https://thingsboard.io/ (10$/Monat oder kostenlos selbstgehostet) https://cloud.arduino.cc/plans/ (Evtl. zu kurze Datenhaltung) --> in die Richtung würde ich weitersuchen, wenn du kein AWS-Profi bist.

Philipp schrieb:

Solaranlage, und würde gerne wissen wann diese Läuft. [...] Hast du eine Idee wie ich Protokollieren könnte wann Sie läuft und wann nicht?

Vorlauf, Rücklauf, Kessel mit Temperatursensoren versehen. Evtl. vor und nach der Pumpe.

#7419244
Lesenswert?

Ich nutze AWS sowieso für andere Projekte, daher fühle ich mich da eigentlich wohl.

Also ich schreibe die Daten in SiteWise und dort kann man Sie auch visualisieren: https://docs.aws.amazon.com/de_de/iot-sitewise/latest/appguide/view-dashboards.html

Optional könnte ich noch in einem Docker Grafana laufen lassen und das weiter ausschmücken. Ich lasse es mal einen Monat laufen und gucke was es tatsächlich kostet, habe aber eine kosten speere bei 5 cent eingestellt, die ich laut meiner Berechnung nicht erreichen sollte.

Vorlauf, Rücklauf, Kessel mit Temperatursensoren versehen. Evtl. vor und nach der Pumpe.

Das ist geplannt. Nur würde ich gerne noch Prüfen ob und wann die Pumpe angeht.

Mit so einem Teil, könnte ich ja prüfen wann die Pumpe an geht: https://www.amazon.de/DollaTek-SCT-013-000-Nichtinvasiver-Wechselstromsensor-Kerntransformator/dp/B07PMGHC95/ref=sr_1_1_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=QMEGIXLZ8F2H&keywords=sct-100&qid=1684828003&sprefix=sct-100%2Caps%2C171&sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

Aber finde ich etwas teuer und so genau brauche ich das nicht. Ich will quasi nur Wissen ob AN oder AUS und nicht wieviel da gerade durchläuft. Habt ihr da einen Tipp?

#7419268
Lesenswert?

Philipp schrieb:

Nur würde ich gerne noch Prüfen ob und wann die Pumpe angeht.

Hat die Pumpe eine Betriebs-LED, die man per Fototransistor überwachen könnte? Kannst du parallel zur Pumpe was anschließen? Ansonsten ist die am wenigsten "invasive" Methode tatsächlich so ein Trafo zum Aufklippsen auf die Pumpen-Phase. Mit ein wenig Bastellei evtl. auch ein Hall-Sensor?

#7419533
Lesenswert?

Ich befeuer meine DS18B20 über einen GPIO, mit 3-4 Sensoren komme ich dann ja quasi ans Limit. (Ich mache das über den GPIO damit ich den Sensoren einfach für paar Sekunden den Strom entziehen kann).

Leider hat das Raspberry-PI nicht genug Saft um 10 Sensoren so zu versorgen.

Ich bräuchte Eine Art Relay was ich über den GPIO steuern könnte. Leider bin ich mit meinem Latein am Ende. Habt ihr hier auch einen Tipp wie ich das einfach Lösen könnte?

#7419550
Lesenswert?

Philipp schrieb:

Ich befeuer meine DS18B20 über einen GPIO, mit 3-4 Sensoren komme ich dann ja quasi ans Limit.

Warum? Standby-Current ist ≤1µA. Active-Current ≤1.5mA. Wenn deine GPIOs 2mA liefern können (das ist schon sehr niedrig angesetzt), dann kannst du da mindestens 1+(0.5mA/0.001mA)=501 Sensoren daran betreiben. Du darfst sie nur nicht alle gleichzeitig zum Temperaturmessen auffordern.

Bei den Fake-Sensoren sind's halt vielleicht ein paar weniger.

#7421472
Lesenswert?

Philipp schrieb:

Habt Ihr noch einen Tipp für ein Gehäuse oder ähnliches damit ich das ganze an die Wand schrauben kann und etwas geschützter ist?

Das offizielle Pi-Gehäuse kostet nicht die Welt und paßt besser als die meisten anderen, die ich bisher gesehen habe.

1-Wire ist im Übrigen ein bisschen picky, was das Timing angeht. Wenn das System hohe Lasten hat, könnte es womöglich sein, daß der direkte Anschluß an einen der GPIO-Pins nicht immer zuverlässig funktioniert. Darum benutze ich für diesen Anwendungsfall einen USB-Adapter DS9490R -- der kostet zwar knappe 50 Euro (etwa bei Moritz Fuchs Elektronik), funktioniert aber auch mit unschönen Netzwerken und Verkabelungen bei mir sehr zuverlässig.

#7421497
Lesenswert?

Εrnst B. schrieb:

Hab ein paar DS18B20(-Clone) an ESP8266 hängen, da gab's nie Probleme. Aber: Keine 15 Meter Leitungen dran & nur wenige Sensoren. Kann da also nix zum Verhalten/Stabilität bei größeren Verkabelungen sagen.

Bei größeren Entfernungen empfiehlt schon das Datenblatt eine dauerhafte Stromversorgung. Die Funktionalität ist auch höher. Hab schon lange nichts mehr gemacht, aber die Erfahrungen die ich gemacht hatte, dass das mit einem Kabel mehr (Stromversorgung), deutlich besser läuft.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren