Bluetooth-fähiger Smart-Thermostat & Beleuchtungssteuerung mit Arduino Nano
Komponenten und Materialien
| Komponente | Menge |
|---|---|
| Arduino Nano R3 | 1 |
| HC-05 Bluetooth-Modul | 1 |
| Maxim Integrated DS18B20 1-Wire Digitalthermometer | 1 |
| OLED 1306 I2C bicolor (128×64) | 1 |
| 4-Kanal-Relais-Controller für I2C | 1 |
Apps und Online-Dienste
- Morich Serial Bluetooth Terminal (Android)
- Arduino Bluetooth Control Device (Android)
Projektbeschreibung
Einführung
Ein einfaches, aber nützliches DIY-Arduino-Thermostat-Projekt mit Bluetooth. Eine intelligente Thermostat-Routine steuert die Gasheizung, während das System Küchenbeleuchtung und Badezimmer-Lüfter per Relais schaltet – bedienbar über Tasten und Android-Gerät oder PC via Bluetooth. Celsius- und Fahrenheit-Version verfügbar! Alle Teile sind handgefertigt.
Entwickelt auf Arduino Nano (oder höher), verwendet Dallas DS18B20 Temperatursensor, HC-05/06 Bluetooth-Adapter, I2C 128×64 bicolor OLED-Display – andere LCD/OLED-Typen sind über die u8glib ebenfalls nutzbar.
Video
Das Video demonstriert alle wichtigen Funktionen und gibt einen Überblick zum Nachbau.
Heizungs-Betriebsarten
- Einmalheizung (15 Min) – Zeitschaltmodus, nützlich an Frühjahr/Herbst-Abenden
- Thermostat-Modus (höhere Priorität), die eingestellte Zieltemperatur wird im EEPROM gespeichert
Kessel-Schon-Algorithmus
Häufiges, kurzzeitiges Schalten würde die Lebensdauer der Gasheizung verkürzen. Um dies zu vermeiden, nutzt das Programm Korrekturwerte – sie definieren den Grad des Überhitzens und Abkühlens. Niedrigere Temperaturen erfordern größere Korrekturwerte, da kältere Wände die Wärme der frisch erwärmten Luft stärker absorbieren, was den beschriebenen Effekt verstärkt.
Offenes-Fenster-Erkennung
Das Programm erkennt ein offenes Fenster, wenn die Temperatur innerhalb einer Minute um mindestens −0,2 °C (−0,36 °F) fällt – die Heizung stoppt oder startet nicht, und der Lüfter schaltet sich ein, um die Luft zu erneuern. Sobald die Luft durch die Wärmekapazität der Umgebung um mindestens +0,12 °C (+0,216 °F) wärmer wird, schaltet das System in den Normalmodus zurück und das „Fenster-Alarm“-Ereignis wird zurückgesetzt.
Fehlererkennung
Gemessene Temperaturen unter 0 °C (32 °F) oder über 40 °C (104 °F) werden als Fehlfunktion oder Problem (Defekt, offenes Fenster, Brand etc.) gewertet – alle Geräte werden abgeschaltet.
Bluetooth-Kommunikation
Die Android-GUI-App hat 8 Tasten und sendet Groß- und Kleinbuchstaben zum Ein-/Ausschalten: ‚A‘/‚a‘ für Zeitschalt-Heizung, ‚B‘/‚b‘ für Lüfter, ‚C‘/‚c‘ für Beleuchtung.
Zusätzlich unterstützt das System einen „Geek-freundlichen“ Bluetooth-Serial-Terminal-Modus. Man chattet einfach per Bluetooth mit dem System – per Android-App oder PC (z. B. Arduino IDE Serial Monitor). Der Controller sendet automatisch jede Minute Temperaturberichte und sofortige Meldungen zu allen Ereignissen (Gerät ein/aus, Thermostat aktiviert etc.).
Steuercodes
Das System akzeptiert Steuercodes und sendet Bestätigungen. Die Befehlsstruktur basiert auf zweistelligen Zahlen ‚XY‘ – wobei:
- ‚X‘ = Gerätecode, ‚Y‘ = Operationscode
- 30, 31, 32: Beleuchtung Aus / Ein / Zustand umschalten
- 40, 41, 42: Lüfter Aus / Ein / Zustand umschalten
- 50, 51, 52: Einmalheizung (15 Min) Aus / Ein / Zustand umschalten
- 10–24: Zieltemperatur für Thermostat-Funktion (Celsius)
- ‚r‘: Statusbericht der gesteuerten Geräte
- ‚w‘: Manueller Reset des „Fenster-Alarm“-Ereignisses
- ‚A, a … H, h‘: Buchstaben wie von der GUI-App gesendet
Fahrenheit-Version
Alle Korrekturvariablen, Referenz- und Verhältniswerte wurden umgerechnet, die Berechnungslogik bleibt erhalten. Geänderte Gerätekodes:
- 1 – Beleuchtung (10: aus, 11: ein, 12: umschalten)
- 2 – Lüfter
- 3 – Heizung
- 50–76: Zieltemperaturwerte
Fortsetzung
UPDATE: Ein vollständiges Home-Automation-System mit internem Bluetooth-Link und Sprachsteuerung!
Bibliotheken & Links
- DallasTemperature, elapsedMillis, OneWire, SoftwareSerial, olikraus/u8glib
- Bei anderen Tastenwiderständen oder zum Prüfen der A0-Werte: Tutorial: Multiple Buttons on 1 Analog Pin
Quellcode
Zwei Versionen liegen vor:
- Thermostat v11 – Celsius-Version.ino
- Thermostat v11 – Fahrenheit-Version.ino
Der Code ist gut kommentiert, modular in Funktionen gegliedert und für Einsteiger verständlich. Er erklärt jeden wichtigen Schritt: Was, Warum, Wie.
Schaltplan
Für Jumper-Wire-Test und Lötversion sind Bilder im Projekt enthalten.
Herstellungsprozess
- Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
- Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- Automatische Pflanzenbewässerung mit Arduino – Sorgenfrei in den Urlaub
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Intelligente selbstschnürende Schuhe mit integrierter Energiegewinnung
- Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
- Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
- Sprachgesteuerte Haushaltsgeräte: Bluetooth-Steuerung mit Google Assistant
- Arduino Uno & Bluetooth: Fernsteuerung eines Autos – Schritt-für-Schritt-Anleitung