Heute haben wir wieder ein spannendes Projekt aus der Homematic DIY-Ecke für Euch. Ich zeige Euch, wie Ihr mit Hilfe von AsksinPP einen eigenen 8-fach Temperatursensor zusammenbauen könnt, der sich komplett in der CCU integrieren lässt. Vor einer Weile habe ich bereits gezeigt, wie Ihr Euer eigenes Thermo-/Hydrometer bauen könnt. Heute erweitere ich diesen Artikel um einen weiteren Sensor. Der 8-fach Sensor ist ideal für die Temperaturmessung an unterschiedlichen Orten. Ich selbst verwende den Sensor um meine Fußbodenheizung besser zu steuern und zu sehen, welchen Wärmebedarf die einzelnen Räume haben. Ich messe jeweils Vor- und Rücklauf und kann dadurch einen genaue Wärmebedarf berechnen. Es sind aber auch viele andere Szenarien denkbar. Die Einheit ist so ausgelegt, dass maximal 8 Sensoren angeschlossen werden können. Ihr könnt aber auch nur einen Sensor 2,3 usw.. anschließen.

Dieser Bausatz setzt auf die gleiche Platine, die wir auch schon bei unserem vorherigen Projekt genutzt haben. Dazu nochmal ein großes Dankeschön an Alexander Reinert, der diese Platine entwickelt hat. Zu Hardware gehört aber auch immer ein großes Stück Software. Hier setze ich auf die Beispieldateien von Jérôme Pech. Auch an ihn möchte ich an dieser Stelle ein großes Dankeschön richten! Ohne die beiden wären solche Projekte, die ich hier für Euch beschreibe gar nicht möglich.

Die Laufzeit der Batterie ist, je nach Funkempfang zwischen 1,5 und 3 Jahre ausgelegt. Dadurch ist der DIY-Sensor auch für den Alltag bestens geeignet. Die Kosten für den Sensor belaufen sich auf unter 25€!

Eigenschaften des Sensors

Präzise Messung von 1..8 Temperaturen durch DS18B20 Sensoren. Die von mir verwendeten Sensoren sind wasserfest und können daher auch für Flüssigkeiten verwendet werden.

Die Batterielaufzeit beträgt (rechnerisch) 2-3 Jahre.

Größe ca. 10x10x3 cm

Kann verwendet werden mit: CCU1,CCU2,CCU3, RaspberryMatic, piVCCU OCCU – nicht für den Homematic IP Access Point geeignet.

Für den Betrieb des Sensors muss auf der CCU eine Erweiterung installiert werden. Das habe ich Euch weiter unten aber genau beschrieben.

Was brauchen wir für den Aufbau dieses Sensors?

  • 1x Grundplatine (Layout von Alex) könnt Ihr über unsere Shop beziehen
  • 1..8x DS18B20 Fühler
  • 1x Arduino Pro Mini 3,3V mit 8 MHz
  • 1x Funkmodul 868MHz
  • 1x Antennendraht 8,6cm (1mm Abisoliert)
  • 2x Batteriehalter für AA-Zellen
  • 1x Taster 6x6x5mm
  • 1x Elko 10uF 1,5mm
  • 1x Universalgehäuse
  • 4x Blechschraube M2
  • 2x AA Batterien
  • 1x 2,2 k Ohm Widerstand für die DS18B20 Fühler

Signalisierung über LED (Anlernmodus)

  • 1x LED 3mm (rot)
  • 1x Widerstand R1 470 Ohm 

Verpolungsschutz der Batterien

  • 1x Mosfet IRLU024NPBF (optional)
  • 1x Widerstand R3 100K Ohm (optional)

Flashen des Arduino

Zum Flashen benötigen wir zudem noch einen FTDI Adapter 3.3V

Ich habe Euch hier mal die unterschiedlichen Bezugsquellen zusamMengestellt. Wer den Kram bei Aliexpress kauft, spart eine Menge Geld, muss aber etwas auf die Lieferung warten. Es können leider schon mal gut 30 – 40 Tage vergehen, bevor die Sendung aus China bei Euch ankommt. Bei Amazon geht das natürlich schneller, Ihr bezahlt dann aber einen saftigen Aufpreis.

Wo am besten kaufen?

Ich habe alle Teile mit µ-Elektronik bei Aliexpress bestellt, die Bauteile wie Widerstände, Taster, das Gehäuse und den MOSFET bei Conrad und die Batteriehalter bei ELV. Der komplette Bausatz wird auch bei uns im Shop zu kaufen sein. Dort ist dann bereits alles vorhanden, was Ihr für den Aufbau benötigt.

AmazonAliexpressConrad
ELV
Grundplatine (Webshop)
DS218B20 SensorLinkLink
Arduino Pro MiniLinkLink
FunkmodulLinkLink
Antennendraht
BatteriehalterLink
LED 3mmLinkLink
R3 = K OhmLinkLink
R3 = 2,2K OhmLinkLink
Taster 6x6x5mmLinkLink
Elko 10uFLinkLink
UniversalgehäuseLink
Blechschraube M2Link
AA BatterienLinkLink
MosfetLinkLink
FTDI AdapterLinkLink

Zusammenbau des Sensors

Zuerst habe ich das C1101 868 MHz-Funkmodul auf die Platine gesetzt. Bei den meisten Modulen liegt keine Steckerleiste bei, da der Abstand der Pins nicht Standard ist. Ihr könnt das Modul aber ganz einfach auf die Platine legen un dann die Lötpunkte setzen.

In der Platine ist zudem eine Bohrung, die für die Antenne vorgesehen ist. Als Antenne nehmt Ihr einfach einen dünnen Draht und schneidet diesen auf eine Länge von 8,6 cm. Mit einer Zange entfernt Ihr dann die Isolierung (1mm). Die blanke Litze steckt Ihr dann durch das Loch und verlötet diese mit dem mittleren Kontakt der c1101-Platine.

Nun kümmern wir uns um den Arduino Pro mini. Der kleine Chip ist auf einer Board installiert. Wir müssen die beiliegenden Kontakte links und rechts bestücken. Dazu werden die Steckleisten mit 2x 12 Pins benötigt. Die Leisten an den schmalen Seiten (oben und unten) müssen wir nicht bestücken.

Achtet auch darauf, dass die beiden mittleren Pins (A4 und A5) ebenfalls verlötet werden. Diese werden gerne mal vergessen ;-)

Um die Lebensdauer der Batterien deutlich zu erhöhen muss unbedingt die Power LED und der Spannungsregler auf de Arduino-Board entfernt werden. Wie das funktionier habe ich Euch ausführlich beschrieben.

Nun kommen wir zur LED. Diese signalisiert uns den Anlernvorgang. 
Den richtigen Einbau setzt Ihr auf dem Bild. Das lange Bein (Anode oder „+“) wird nach unten gesetzt. Das kurze Beinchen wird auf die Bohrung mit der Bezeichnung „4“ gesetzt. 

Der Widerstand wird als Vorwiderstand für die LED benötigt und kommt auf die Position R1. Hier spielt die Polarität keine Rolle.

Der nächste Schritt ist ebenfalls optional. Alex hat sich für die Platine einen Verpolungsschutz überlegt, der die Elektronik davor schützt, wenn die Batterien falsch herum eingesetzt werden. Ohne den MOSFET würde dann die Elektronik Schaden nehmen.

Wenn Ihr ohne MOSFET (Überspannungsschutz) arbeiten wollt, müssen die beiden Kontakte von J8 zusammengelötet (gebrückt) werden.

Nun folgt noch der Elko am C1101-Modul. Dieser muss auf die Position C1 gesetzt werden. Die Anode („-„) muss auf die weiße Fläche auf der Platine gesetzt werden. Die richtige Position könnt Ihr den Foto entnehmen.

Bis hierhin waren alle Schritte gleich wie bei der Anleitung für das Thermo-/Hydrometer aus meiner vorherigen Anleitung. Jetzt müssen wir noch einen weitere Widerstand verbauen und optional Sockelleisten für den Anschluss der Temperatursensoren löten.

Hier könnt Ihr sehen, dass ich einen zusätzlichen Widerstand an der Position R4 angebracht habe. Der Widerstand muss den Wert 2,2 k Ohm haben. Damit wir auch die DS18B20 anschließen können, habe ich auch Sockelleisten gelötet. Ihr könnt die Sensoren aber auch direkt auf die Platine löten.

Angeschlossen werden können die Sensoren an allen 4 Leisten die mit I2C beschriftet sind. Die Sensoren sind keine I2C Geräte, sondern one-wire Teilnehmer. Daher können mehrere Sensoren auf einen Pin gelegt werden. Wir können maximal 8 Sensoren an diese Platine anschließen. Der rote Draht muss auf den Pin mit der Bezeichnung VCC, der schwarze auf GND und der weiße auf SCL.

Ihr könnt auch mehrere Sensoren auf einen Pin setzen. In meinem Beispiel habe ich zum Test 2 Sensoren angeschlossen.Alle waagerecht liegenden Pins sind durchkontaktiert, sodass VCC, GND, und SCL auf allen Positionen gleich ist.

Nachdem wir nun alles fertig gelötet haben, können wir den DIY-Sensor programmieren.

DIY-Sensor programmieren mit dem passenden Sketch

Zuerst müssen wir die Arduion IDE Software herunterladen. Diese gibt es für Windows, Mac und Linux.

Nachdem der Download beendet ist, müsst die die Installationsroutine durchlaufen und das Programm starten.

AskSinPP herunterladen

Um zu starten benötigen wir zuerst AskSinPP. Über die Schaltfläche „Clone or download“ rufen wir ein weiteres Fenster auf. Hier wählen wir nun Download ZIP aus.

Nachdem die Datei heruntergeladen ist entpacken wir die Datei in einem temporären Ordner.

Nun müssen wir aus den soeben entpackten Dateien ein neues Archiv machen, jedoch ohne das zusätzliches Unterverzeichnis AskSinPP. Im neuen ZIP-Archiv sind dann direkt die Ordner bootloader, examples usw… zu finden. Das neue Archiv kann den gleichen Namen wie das alte Archiv tragen.

Wir brauchen diese Datei gleich, um die ZIP-Datei als zusätzliche Library in Arduino IDE einzubinden.

Einbinden der AskSinPP Bibliothek

Die soeben angelegte ZIP-Datei spielen wir jetzt in das Arduino IDE ein. Dazu klicken wir im Hauptfenster auf „Sketch“ und dann auf „Bibliothek einbinden“ dort wählen wir dann „.ZIP-Bibliothek einbinden…“ an.

In dem neuen Fenster wählen wir nun unsere soeben erzeugte ZIP-Datei aus.

Damit haben wir die wichtigste Bibliothek für die Funktion unseres neuen Sensors eingebunden!

Sketch herunterladen

Nun laden wir die fertigen Sketche für den Sensor herunter. Diese bekommen wir bei GitHub von Jerome.

Auch hier wählen wir wieder „Clone or download“ an und laden die ZIP-Datei herunter.

Ich habe das Archiv direkt in den Ordner der Arduino-Installation geschoben. Diesen findet Ihr unter „Dokumente“ –> „Arduino“. Hier habe ich alle Beispiele abgelegt, die in der ZIP-Datei von Jerome vorhanden sind.

Zusätzliche Bibliotheken installieren

Zuerst müssen aber noch weitere Bibliotheken geladen werden, damit das Projekt laufen kann.

Wir brauchen folgende Bibliotheken, die noch installiert werden müssen:

Fangen wir mit der ersten Bibliothek an. Diese installieren wir über das Haupfenster mit einem Klick auf „Sketch“ –> „Bibliothek einbinden“ –> „Bibliothek verwalten…“

Es öffnet sich ein neues Fenster. Dort können wir dann nach der benötigten Datei suchen.

Wir geben als im Eingabefeld „EnableInterrupt“ ein und wählen die aktuelle Version aus und danach auf „Installieren“.

Damit haben wir nun die erste Bibliothek eingebunden.

Die nächste Library, die wir benötigen können wir hier von GitHub herunterladen. Auch diese Bibliothek binden wir wieder über die Schaltfläche „Sketch“ –> „Bibliothek einbinden…“ und dann auf „.ZIP-Bibliothek hinzufügen…“.

Damit haben wir nun alle nötigen Dateien zusammen und können jetzt das Board konfigurieren!

Board Konfigurieren

Nun müssen wir dem Programm noch mitteilen, welches Board wir programmieren wollen. Dazu klicken wir auf „Werkzeuge“ und tragen dort die Information ein, die Ihr im Bild sehen könnt.

Sketch laden

Nun müssen wir das fertige Sketch laden, um den Sensor zum Leben zu erwecken. Das Sketch ist wie ein Programm, welches auf den Prozessor vom Arduino geschrieben wird.

Hier sind die Einstellungen nochmal einzeln aufgeführt. Um an den COM-Port des FTDI-Adapters zu erhalten, muss der Adapter an den Computer angeschlossen werden. Ihr könnt dann im Gerätemanager den passenden Port sehen. In meinem Fall ist das COM7.

  • Board: Arduino Pro or Pro Mini
  • Prozessor: ATMega328P 3.3V 8MHz
  • Port: Der COM Port vom FTDI Adapter

Arduino flashen

Jetzt haben wir soweit alles vorbereitet, dass der Arduino programmiert werden kann. Dazu müssen wir den Programmer auf 3,3V umstellen. Auf der Platine ist dafür ein Jumper angebracht. Dieser kann entweder in der Stellung 3,3V oder 5V gesteckt werden. Wir müssen diesen für unseren Arduino auf 3,3V stellen.

Die Platine wird bei diesem Schritt ohne die Batterien betrieben. Wir stecken nun die PINs vom Programmer in das Board vom Arduino, wie Ihr es auch auf dem Foto erkennen könnt.

Nun klicken wir im Fenster auf „Sketch“ –> „Überprüfen / Kompilieren“.

Wenn Ihr bis hier alles richtig gemacht habt, dann können wir das Programm nun auf die CPU schreiben.

Dazu klicken wir auf „Sketch“ –> „Hochladen“

Auch dieser Vorgang dauert etwas und Ihr könnt beobachten, wie die beiden roten LEDs am Programmer während des Vorgangs blinken.

Damit haben wir erfolgreich die Software auf das Gerät gespielt!

Installation prüfen

Nachdem der Vorgang abgeschlossen ist, können wir überprüfen, ob alles richtig funktioniert. Dazu öffnen wir den seriellen Monitor. Das machen wir über „Werkzeuge“ –> „serieller Monitor“.


Die Ausgabe im Plotter sollte so aussehen, wie im oberen Fenster. Dort könnt Ihr auch erkennen, wie viele Sensoren gefunden worden sind. In meinem Beispiel sind dies 2 Stück. „Found 2 DS18B20 Sensors“.

Sensor an die CCU anlernen

Damit wir den Sensor an der CCU nutzen können, müssen wir zuerst noch ein kleines Add-On installieren. Dieses bekommen wir ebenfalls von Jérôme aus GitHub. Nachdem Ihr die *.tgz Datei heruntergeladen habt, können wir auf der CCU weiter arbeiten.

Dazu öffnen wir die WebUI (Oberfläche der CCU) und klicken dort auf Einstellungen –> Systemsteuerung –> Zusatzsoftware. Hier installieren wir die soeben heruntergeladene Datei. Die CCU muss danach neustarten.

Nun öffnen wir erneut das Webinterface der CCU oder der piVCCU und klicken dort wie gewohnt auf „Gerät anlernen“.

Der Arduino bleibt noch an den Programmer angeschlossen und es müssen auch noch keine Batterien eingelegt werden.

Wir starten nun den Anlernmodus der CCU.

Direkt im Anschluss drücken wir kurz auf den Taster des neuen Sensors. Im Plotter könnt Ihr diesen Tastendruck ebenfalls sehen.

Die rote LED auf dem Sensor beginnt nun zu blicken. NachAblauf der Zeit sollte ein neues Gerät im Posteingang erscheinen.

Das Gerät verfügt über 8 Kanäle, die Ihr sehen könnt. Wenn Ihr Sensoren angeschlossen habt, dann könnt Ihr im Status nun die aktuellen Temperaturen abfragen.

Ihr könnt auch den Sendeintervall in den Einstellungen des Gerätes verändern. Je weiter der Intervall auseinander liegt, desto länger halten natürlich die Batterien.

Gehäuse

Ihr könnt natürlich wieder das weiße Kunststoffgehäuse verwenden. Um die Sensoren nach außen zu führen, könnt Ihr Löcher in das Gehäuse bohren. Ich habe meinen Aufbau aktuell noch nicht abgeschlossen. Sobald ich die Fühler an meiner Heizung installiert habe, werde ich Euch dazu einen passenden Artikel schreiben. Ihr könnt natürlich auch das Gehäuse aus dem 3D-Drucker verwenden, welches ich hier beschrieben habe.

Das könnte Dich auch interessieren

Homematic IP Kombisignalgeber HmIP-MP3P Zusammenbau und Programmierung
Aufrufe 663
Ja, ich finde Bausätze von ELV zum Thema Homematic bzw. Homematic IP wirklich klasse, denn ich bin leidenschaftlicher Löter :) Deshalb fiel mir auch s...
Neue Anleitung – Siri Sprachsteuerung für Homematic Plug and Play ohne Kon...
Aufrufe 2000
Ich habe Euch schon einiges zur Anbindung von Siri und Apple HomeKit an das Homematic-System berichtet. Über die Homebridge und das Homematic-Plugin ...
Homematic: Charly neues Funkmodul CCU3 im Hutschienen-Gehäuse
Aufrufe 3028
Nachdem ich Euch im vorherigen Artikel gezeigt habe, wie Ihr das neue Charly-Funkmodul mit einer externen Antenne ausstatten könnt, habe ich einen we...
Besserer Empfang: Externe Antenne für Charly CCU3
Aufrufe 7030
Nachdem ich das neue Funkmodul nun ca. 5 Tage im Dauertest habe, kann ich sagen, dass die Empfangs- und Sendeleistung des neuen Moduls etwas besser i...
Homematic DIY-Sensor: Batterielaufzeit verlängern (LDO und LED entfernen)
Aufrufe 1133
Eine weitere kleine Ergänzung, für das DIY-Sensor-Projekt von Homematic, die ich Euch natürlich nicht vorenthalten will, ist der Umbau vom Arduino für...
Vergleich Homematic altes und neues Funkmodul – Wofür wird es benötigt? Lo...
Aufrufe 3977
Vor wenigen Woche hat ELV / eQ-3 das neue Funkmodul für den Raspberry Pi vorgestellt. In 2 Wochen werden die ersten Module von ELV verschickt. Was sic...
2 Kommentare
  1. Richard sagte:

    1. Ein „Unterverzeichnis AskSinPP“ ist gar nicht enthalten?!
    2. Welche „MultiChannelDevice“ ist gemeint?
    3. Was macht man mit der „Beispiel_AskSinPP-master“?

    nach dem Überprüfen/Kompilieren habe ich die Fehlermeldung:
    HB-UNI-Sen-TEMP-DS18B20:20:21: error: OneWire.h: No such file or directory

    compilation terminated. ???

    Antworten
  2. Stephan sagte:

    Wieder mal eine super Anleitung, weiter so :-) !!!
    Habe gesehen, dass der Link für den „DS218B20 Sensor“ zu Amazon nicht stimmt. Müsste noch angepasst werden.
    Gruss Stephan

    Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere die Speicherung der Daten.