Multi-Position Temperatursensor-System für Smart-Home-Integration
Komponenten und Zubehör
| Bauteil | Anzahl | Hinweise |
|---|---|---|
| DS18B20 Temperatursensor | 8 | 1-Wire Bus, wasserdicht erhältlich |
| Arduino Nano R3 | 1 | Steuerung & Datenerfassung |
| SparkFun RS232 Shifter (SMD) | 1 | TTL auf RS232 Pegelwandler für Crestron/AMX |
| Experimentierplatine (PCB) | 1 | Für den Sensorbus & Pull-Up Widerstand |
| Widerstand 4,7 kΩ | 1 | Pull-Up für 1-Wire Bus |
| 2-poliger Schraubklemmenanschluss | 1 | Stromversorgung & RS232 Anschluss |
| 3D-gedrucktes Gehäuse | 1 | Bottom, Top, Sub-D9 Halterung |
| Schrauben & Kabel | 1 Set | Montage & Verdrahtung |
Benötigte Werkzeuge & Maschinen
- 3D-Drucker (z. B. Zortrax M200)
- Schraubendreher
- Lötkolben & Zubehör
Software & Online-Dienste
- Arduino IDE
Projektbeschreibung
Ziel war es, Temperaturen an mehreren Positionen kostengünstig auszulesen und die Daten an ein Domotik-System (Crestron/AMX) zu übergeben. Die Wahl fiel auf DS18B20-Sensoren, da sie preiswert, weit verbreitet und als 1-Wire-Bus system einfach zu verdrahten sind.
Die acht Sensoren werden an einen Arduino Nano angeschlossen. Dessen serielle Ausgabe (TTL-Pegel) wird über einen RS232-Shifter auf RS232-Pegel gewandelt, um Kompatibilität mit der Gebäudeautomation herzustellen. Alle Komponenten sind in einem eigens entworfenen, 3D-gedruckten Gehäuse untergebracht.
Funktionsweise
- Alle 8 Sensoren teilen sich einen einzigen Datenpin (Pin 12) am Arduino.
- Jeder Sensor besitzt eine eindeutige 64-Bit-Adresse, die im Code hinterlegt ist.
- Die Messauflösung wird auf 10 Bit gesetzt (0,25 °C Genauigkeit).
- Alle 10 Sekunden werden die Temperaturen aller Sensoren über die serielle Schnittstelle (9600 Baud) ausgegeben.
- Einmal pro Stunde (360 Zyklen) wird automatisch geprüft, ob noch alle 8 Sensoren am Bus erreichbar sind.
- Fehlerhafte Sensoren melden „Sensor error!“ statt eines Temperaturwertes.
Arduino-Code (Auszug)
#include <OneWire.h>
#include <DallasTemperature.h>
#define SENSOR_PIN 12
#define READ_TIMER 10000
OneWire oneWire(SENSOR_PIN);
DallasTemperature sensors(&oneWire);
// Eindeutige Sensor-Adressen (Beispiel)
DeviceAddress Sensor1 = { 0x28, 0xFF, 0x89, 0x0F, 0x61, 0x16, 0x03, 0x40 };
// ... Sensor2 bis Sensor8 analog
void setup() {
Serial.begin(9600);
sensors.begin();
for (int i=0; i<8; i++) sensors.setResolution(sensor[i], 10);
}
void loop() {
sensors.requestTemperatures();
for (int i=0; i<8; i++) {
Serial.print("Sensor "); Serial.print(i+1); Serial.print(": ");
float t = sensors.getTempC(sensor[i]);
if (t == -127.00) Serial.print("Sensor error!");
else { Serial.print("C: "); Serial.print(t); }
Serial.println();
}
delay(READ_TIMER);
}
3D-Druck Dateien & Schaltplan
- Gehäuse-Unterteil, Oberteil, Sub-D9 Halterung (STL)
- Schaltplan (ohne RS232-Modul) als PNG
Hinweis: Die Sensor-Adressen im Code müssen an die tatsächlich verwendeten Sensoren angepasst werden (mittels Adress-Scan-Sketch ermitteln).
Herstellungsprozess
- DS18B20 Temperatursensor – Präziser 1-Wire Digitalthermometer für Industrie & Consumer
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
- DasFilisera Smart Greenhouse: Fortschrittliches Pflanzenwachstums-Überwachungssystem
- MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
- 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
- CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye
- Präziser Lagertemperatursensor: Genaues Erkennen & Überwachen