Fortgeschrittenes Heimüberwachungssystem mit Arduino Mega und IoT-Sensoren
Komponenten und Zubehör
| Komponente | Menge | Hinweis |
|---|---|---|
| Arduino Mega 2560 | 1 | |
| Arduino Ethernet Board | 1 | |
| 4×20 LCD mit I²C-Schnittstelle | 1 | |
| DHT22 Temperatursensor | 1 | |
| DS3231 Echtzeituhr (RTC) | 1 | |
| HC-SR04 Ultraschall-Entfernungsmesser | 1 | Für Sumpfniveau |
| OSH Park Custom PCB | 1 | Interface- und Anzeigeplatine |
Projektbeschreibung
Ausgangspunkt war ein Ecobee Smart Thermostat, das jedoch eingestellt wurde. Ziel war eine Alternative zur Überwachung von Sumpfpegel, Wasseralarm, Stromausfall und weiteren Parametern. Code und Webinterface basieren auf diversen Open-Source-Projekten. Benachrichtigungen laufen über PushingBox.

Ein Arduino Mega 2560 mit Ethernet-Shield bildet das Herzstück. Mit Eagle CAD wurden zwei Platinen entworfen (Eingangs-Interface und visuelle Anzeige) und bei OSH Park fertigen lassen. Die Interface-Platine verbindet sieben potentialfreie Kontakte, Temperatur/Feuchtigkeitssensor, RTC und Ultraschallsensor mit dem Arduino.

Zur lokalen Anzeige dient ein 4×20-LCD. Acht LEDs signalisieren Alarmzustände: Bernstein = aktiv, Grün = quittiert, Aus = zurückgesetzt. Ein Reset-Taster löscht grüne LEDs; ein „Message Enable“-Taster schaltet PushingBox-Benachrichtigungen ein/aus.
Das Webinterface läuft nur im LAN (kein Port-Forwarding aus Sicherheitsgründen). Es nutzt Arduino-Beispiele und jqPlot für Diagramme.


Beispiel: Sumpf-Alarm bei < 10 Zoll (bernsteinfarbene LED). Ein grüner LED zeigt einen früheren Alarm an, der mittlerweile quittiert ist. Drückt man Reset, erlischt Grün, Bernstein bleibt bis Pegel > 10 Zoll.
Quellcode
Arduino-Code (C/C++)
Der Sketch umfasst:
- Ethernet-Webserver auf Port 1000
- SD-Karte für Webdateien (index.htm)
- I²C-LCD, DHT22, NewPing (HC-SR04), RTC_DS3231
- Überwachung von 7 digitalen Eingängen (Sumpf, Flut, Stromausfall, 5× Aux)
- LED-Anzeige (18 Ausgänge) für Alarmstatus
- PushingBox-Integration für E-Mail/Push-Benachrichtigungen
- JSONP-AJAX-Endpunkt für Webinterface
Wichtige Pin-Belegungen sind im Code als Kommentare dokumentiert.
Webinterface (JavaScript/HTML)
Die Webseite nutzt jqPlot für Zeitreihendiagramme (Sumpfpegel, Temperatur) und Canvas-Gauges für aktuelle Werte. Alle 3 Sekunden werden Daten per JSONP vom Arduino abgerufen und Diagramme/Gauges aktualisiert. Status-Texte werden in HTML-Elemente geschrieben.
Benötigte JS/CSS-Bibliotheken (jQuery, jqPlot, gauge.js) müssen lokal auf dem Rechner liegen.
Schaltpläne
Interface- und Anzeigeplatine (Eagle-Datei: LED BAR 2.sch)
Herstellungsprozess
- Blutdruckmessgerät: Design, Fertigung und Zukunftstrends
- Günstiges drahtloses Sensornetzwerk für Zuhause selbst bauen
- Heimtemperatur mit Raspberry Pi Dashboard überwachen
- Raspberry Pi Home Automation System für Fernsteuerung bauen
- DIY Hausaufgaben-Schreibmaschine zu Hause bauen
- Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
- Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
- Sichere Warmwasserbereitung: Thermospannungs-Monitor für Zündflamme (Arduino & Raspberry Pi)
- Autonomer Hausassistent-Roboter bauen: Komplette Teileliste & Setup-Anleitung
- Alexa-fähiger Arduino Home Controller: Smarte Automatisierung leicht gemacht