Arduino Smart Home Automation: Schaltung, Quellcode & DIY-Anleitung
Smart Home Automation System Projekt mit Arduino
Automatisierung (wie Hausautomation und Industrieautomation) ist in der heutigen Welt wichtig geworden, da sie hilft, Aufgaben mit weniger menschlicher Unterstützung und auf intelligente Weise zu erledigen. Häuser werden heutzutage mit Hilfe von Automatisierungsgeräten intelligenter und fortschrittlicher. Haushaltsgeräte verwenden ferngesteuerte Schalter statt herkömmlicher Schalter. Heutzutage haben die meisten Menschen Zugang zu Smartphones, und deren Nutzung ist in unserem Leben sehr beliebt und unverzichtbar geworden. Wir können Smartphones nutzen, um Haushaltsgeräte mit nur einem Klick oder einer Nachricht zu steuern. Mit Hilfe von Controllern und Kommunikationsgeräten können Haushaltsgeräte ferngesteuert werden. In diesem Projekt verwenden wir das Arduino UNO Board für die Entwicklung eines Smart Home Automation Projekts mit dem HC-05 Bluetooth-Modul, das von einem Smartphone ferngesteuert wird. Dies kann für gelähmte Menschen, die ihre Arbeit nicht selbst erledigen können, wirklich hilfreich sein, und solche Geräte können eine große Hilfe für diese Menschen sein.
- Verwandter Beitrag: Sprachgesteuertes Hausautomationssystem

Benötigte Komponenten:
- Arduino UNO
- HC-05 Bluetooth-Modul
- Relais
- Jumper-Kabel
- Glühlampen
- Bluetooth Terminal HC-05 App (aus dem Play Store herunterladen)
Arduino UNO:
Arduino ist eine Open-Source-Plattform, die zur Entwicklung von Elektronikprojekten verwendet wird. Sie kann jederzeit einfach programmiert, gelöscht und neu programmiert werden. Es gibt viele Arduino-Boards auf dem Markt wie Arduino UNO, Arduino Nano, Arduino Mega, Arduino LilyPad usw. mit unterschiedlichen Spezifikationen je nach Verwendungszweck. In diesem Projekt werden wir den Arduino UNO verwenden, um Haushaltsgeräte automatisch zu steuern. Er verfügt über den ATmega328-Mikrocontroller-IC, der mit 16 MHz Taktfrequenz läuft. Er ist leistungsstark und kann mit USART, I2C und SPI Kommunikationsprotokollen arbeiten. Dieses Board wird normalerweise mit der Arduino IDE Software über ein Micro-USB-Kabel programmiert. Der ATmega328 wird mit vorprogrammiertem Onboard-Bootloader geliefert, was das Hochladen des Codes ohne externe Hardware erleichtert. Er hat vielfältige Anwendungen in der Entwicklung von Elektronikprojekten oder -produkten. Die Sprachen C und C++ werden zur Programmierung des Boards verwendet, die sehr leicht zu erlernen und anzuwenden sind. Die Arduino IDE erleichtert die Programmierung erheblich. Sie trennt den Code in zwei Teile: void setup() und void loop(). Die Funktion void setup() läuft nur einmal und wird hauptsächlich zum Initiieren von Prozessen verwendet, während void loop() den Teil des Codes enthält, der kontinuierlich ausgeführt werden soll.
Dieses Modell verfügt über 6 analoge Eingänge und 14 digitale GPIO-Pins, die als Ein-/Ausgang verwendet werden können, 6 davon liefern PWM-Ausgang und analog über pinMode(), digitalWrite(), digitalRead() und analogRead() Funktionen. Die 6 analogen Eingangskanäle reichen von Pin A0 bis A5 und bieten 10-Bit-Auflösung. Das Board kann entweder über ein USB-Kabel (5 Volt) oder über eine DC-Buchse (7 bis 20 Volt) mit Strom versorgt werden. Ein Onboard-Spannungsregler erzeugt 3,3 Volt für den Betrieb stromsparender Geräte. Da der ATmega328 mit USART, SPI und I2C Kommunikationsprotokollen arbeitet, verfügt er über Pins 0 (Rx) und 1 (Tx) für USART, SDA (A4) und SCL (A5) für I2C sowie SS (10), MOSI (11), MISO (12) und SCK (13) für SPI. Diese Spezifikationen machen das Arduino Uno Board perfekt für das Home Automation Projekt.
- Verwandter Beitrag: Elektronisches Auge – Schaltung mit LDR und IC 4049 für Sicherheitssteuerung
HC-05 Bluetooth-Modul:
HC-05 ist ein Bluetooth-Modul für drahtlose Kommunikation. Es wird hauptsächlich verwendet, um serielle bidirektionale drahtlose Kommunikation zwischen Mikrocontrollern, Smartphones, Computern, Sensoren usw. herzustellen. Die Reichweite dieses Bluetooth-Moduls beträgt weniger als 100 Meter und hängt auch von atmosphärischen Bedingungen ab. Es arbeitet mit dem USART-Protokoll (Universal Synchronous Asynchronous Receiver Transmitter) zur Kommunikation mit anderen Geräten. Es kann sowohl im Master- als auch im Slave-Modus arbeiten mit unterstützten Baudraten von 9600, 19200, 38400, 57600, 115200, 230400 und 460800. Standardmäßig arbeitet es im Slave-Modus, der Master-Modus kann über AT-Befehle konfiguriert werden. Es kann Daten in beide Richtungen übertragen – vom Mikrocontroller zu einem Gerät und vom Gerät zum Mikrocontroller. Das HC-05 Bluetooth-Modul arbeitet im Befehlsmodus und Datenmodus. Der Befehlsmodus wird verwendet, um die Konfigurationseinstellungen des HC-05 über AT-Befehle zu ändern, der Datenmodus dient zur seriellen Datenübertragung. Der Befehlsmodus kann durch Heraufziehen des "Key"-Pins auf HIGH und Verwendung von AT-Befehlen erreicht werden. Hier sind einige AT-Befehle:
- AT – zum Prüfen, ob das Modul kommuniziert
- AT+NAME = hc-05 – zum Ändern des Gerätenamens in "hc-05"
- AT+PSWD = 1234 – zum Ändern des Passworts auf 1234
- AT+UART = 9600, 1, 0 – zum Ändern der Baudrate auf 9600, Stoppbit auf 1 und Paritätsbit auf 0.
Verwandtes Projekt: Automatische LED-Notlichtschaltung mit LDR
Pin-Belegung des HC-05:
EN/Key-Pin: Dieser Pin wird verwendet, um das Bluetooth-Modul entweder in den Befehlsmodus oder Datenmodus zu versetzen. Der Befehlsmodus wird durch Setzen dieses Pins auf HIGH erreicht, der Datenmodus durch Setzen auf LOW. Standardmäßig ist er auf LOW im Datenmodus eingestellt.
- VCC: Stromversorgungs-Pin, angeschlossen an 5 V oder 3,3 V.
- GND: Masse-Pin des Bluetooth-Moduls.
- TXD: Pin für serielle Datenübertragung.
- RXD: Pin für seriellen Datenempfang.
- State: Zeigt an, ob das Modul mit einem anderen Gerät verbunden ist oder nicht.
| Pin am HC-05 | Beschreibung |
| EN/Key | HIGH – Befehlsmodus, LOW – Datenmodus |
| VCC | 3,3 V bis 5 V |
| GND | Masse |
| TXD | Serielle Daten senden |
| RXD | Serielle Daten empfangen |
| State | Zeigt Modulverbindung an |
In diesem Projekt wird der HC-05 verwendet, um serielle drahtlose Kommunikation zwischen Arduino Uno und Smartphone herzustellen. Dies geschieht, indem der HC-05 mit dem Arduino Uno verbunden und eine App auf dem Smartphone installiert wird. Obwohl verschiedene Apps für die Verbindung eines Smartphones mit HC-05 verfügbar sind, verwenden wir hier den "Bluetooth Terminal HC-05", der aus dem Play Store heruntergeladen werden kann. Verbinden Sie den HC-05 mit dem Arduino UNO wie im Schaltplan gezeigt. TXD-Pin des HC-05 geht an RX (Pin 0) des Arduino, RXD-Pin des HC-05 geht an TX (Pin 1) des Arduino Uno. EN/Key ist auf LOW gesetzt. Schalten Sie Bluetooth auf Ihrem Smartphone ein und suchen Sie nach Bluetooth-Geräten. Verbinden Sie sich mit dem Gerät namens "HC-05". Standardpasswort ist entweder "0000" oder "1234".
Das HC-05 Bluetooth-Modul hat eine eingebaute rote LED, die den Verbindungsstatus anzeigt. Vor der Verbindung blinkt sie kontinuierlich periodisch, nach der Verbindung verlangsamt sich die Blinkgeschwindigkeit.
- Verwandtes Projekt: Einfache berührungsempfindliche Schalterschaltung mit 555 Timer & BC547 Transistor
Anwendungen des HC-05 Bluetooth-Moduls:
- Computer und Peripheriegeräte
- GPS-Empfänger
- Industriesteuerung
- Mikrocontroller-Projekte
Relais:
Ein Relais ist ein elektromagnetischer Schalter, der durch einen kleinen elektrischen Strom betrieben wird, um einen oder mehrere größere Stromkreise ein- oder auszuschalten. Er besteht aus einer Elektromagneten-Spule, die zu einem temporären Magneten wird, wenn ein kleiner Strom durch sie fließt. Ein relativ kleiner Strom erzeugt ein Magnetfeld in einer Spule mit Kern, und dies wird verwendet, um einen Schalter zu betätigen, der einen viel größeren Strom steuern kann. Früher wurden Relais in Telegraphen und Telefonvermittlungsstellen zur Signalverstärkung eingesetzt. Nach der Erfindung von Computern wurden Relais für boolesche und logische Operationen verwendet. Relais gibt es in verschiedenen Größen und Ausführungen je nach Verwendungszweck. Hauptanwendungen sind Motorsteuerung, Automobilanwendungen, industrielle Anwendungen, Hausautomation usw.
In diesem Projekt verwenden wir ein elektromagnetisches Relais, um Haushaltsgeräte wie Röhrenlicht, Glühbirne, Ventilator oder jede netzgespeiste Quelle in unserem Zuhause durch DC-Signale vom Arduino UNO ein- und auszuschalten. Das Relais hat 6 Pins, von denen zwei (VCC und GND) zur Stromversorgung des Relais dienen. Ein Pin ist der Datenpin, der das Signal "1" oder "0" vom Mikrocontroller entgegennimmt. Die anderen 3 Pins (NC - Normalerweise geschlossen, COM - Gemeinsam, NO - Normalerweise offen) werden zum Anschluss netzgespeister Geräte verwendet. Dieses Relais arbeitet in zwei Zuständen: Normalerweise Offen oder Normalerweise Geschlossen:
Normalerweise Offen: Schließt den Stromkreis, wenn das Relais aktiviert ist, und öffnet ihn, wenn es deaktiviert ist.
Normalerweise Geschlossen: Öffnet den Stromkreis, wenn das Relais aktiviert ist, und schließt ihn, wenn es deaktiviert ist.
- Verwandtes Projekt: Automatische Nachttischlampe mit Arduino und LDR
Pin-Belegung des Relais:
| Pin am RELAIS | Beschreibung |
| VCC | 5 V |
| GND | Masse |
| Datenpin | "1" oder "0" vom Mikrocontroller |
| NC | Für normalerweise geschlossenen Stromkreis |
| COM | Gemeinsam (Common) |
| NO | Für normalerweise offenen Stromkreis |
Anwendungen des Relais:
- Relais wird für sicherheitskritische Logik verwendet.
- Sie werden verwendet, um einen Hochspannungsstromkreis mit einem Kleinspannungssignal zu steuern.
- Relais werden auch zu Schutzfunktionen eingesetzt.
- Relais werden in Umspannwerken und Netzen beim Stromtransport von einem Punkt zum anderen verwendet.
Verwandtes Projekt: Automatische Straßenlaternensteuerung mit LDR
Schaltplan:
Die Schaltung wurde mit Arduino, Bluetooth, Relais und LEDs entworfen. Wir haben den Bluetooth seriell mit dem Arduino verbunden. Das Relais wird zum Betrieb der Haushaltsgeräte verwendet. Wir haben vier Relais für vier Geräte verwendet. Sie können die Anzahl der Relais ändern, um verschiedene Haushaltsgeräte entsprechend zu steuern. Bei der Hardware-Umsetzung werden die LEDs durch Glühlampen ersetzt.
Der Befehl zur Steuerung der Haushaltsgeräte wird über die "Bluetooth Terminal HC-05 App" von Ihrem Smartphone an den mit dem Arduino verbundenen Bluetooth gesendet. Dann liest der Arduino die seriell an den Bluetooth kommenden Daten. Daraufhin werden Aktionen gemäß dem vom Bluetooth an den Arduino kommenden Befehl ausgeführt.
- Verwandtes Projekt: Ampelsteuerung – Elektronisches Projekt mit IC 4017 & 555 Timer
Funktionsweise der Arduino-basierten Hausautomation:
Stellen Sie die Verbindungen für das Hausautomationsprojekt wie im Schaltplan gezeigt her. Zunächst verbinden wir die Glühbirne mit netzgespeisten Quellen und Relais wie im Schaltplan gezeigt. Dann werden die Relais mit Gleichstrom vom Arduino Uno Board versorgt. Die Datenpins der Relais sind an die Pins 8, 9, 10 und 11 des Arduino angeschlossen, die die Ausgabepins des Arduino sind. Dann verbinden Sie das HC-05 Modul mit dem Arduino Board wie im Diagramm gezeigt und versorgen den Arduino Board mit Strom. Laden Sie den am Ende des Projekts angegebenen Code mit der Arduino IDE hoch. Schalten Sie Bluetooth auf Ihrem Smartphone ein und verbinden Sie das HC-05 Modul durch Eingabe des Passworts. Standardmäßig ist das Passwort "0000" oder "1234". Nach erfolgreicher Verbindung Ihres Smartphones mit dem HC-05 öffnen Sie die "Bluetooth Terminal HC-05 App auf Ihrem Smartphone", die Ihr Gerät als mit HC-05 verbunden anzeigt. Senden Sie nun die Daten "Birne1 ein" oder "Birne2 aus", um eine Birne ein- oder auszuschalten. So können Sie die Lichter in Ihrem Zuhause ferngesteuert steuern.
- Verwandtes Projekt: Klatschschalter – Elektronisches Projekt mit 555 Timer
Projektcode:
#include <SoftwareSerial.h>
int bulb1 = 8;
int bulb2 = 9;
int bulb3 = 10;
int bulb4 = 11;
SoftwareSerial bt(0,1); /* (Rx,Tx) */
String str;
void setup() {
bt.begin(9600);
Serial.begin(9600);
pinMode(bulb1, OUTPUT);
pinMode(bulb2, OUTPUT);
pinMode(bulb3, OUTPUT);
pinMode(bulb4, OUTPUT);
}
void loop() {
if (bt.available()) {
str = bt.readString(); // Korrigiert: readString() statt read()
Serial.println(str);
// bulb1
if (str == "bulb1 on") {
digitalWrite(bulb1, HIGH);
Serial.println("BULB 1 is ON");
}
else if (str == "bulb1 off") {
digitalWrite(bulb1, LOW);
Serial.println("BULB 1 is OFF");
}
else {
digitalWrite(bulb1, LOW);
}
// bulb2
if (str == "bulb2 on") {
digitalWrite(bulb2, HIGH);
Serial.println("BULB 2 is ON");
}
else if (str == "bulb2 off") {
digitalWrite(bulb2, LOW);
Serial.println("BULB 2 is OFF");
}
else {
digitalWrite(bulb2, LOW);
}
// bulb3
if (str == "bulb3 on") {
digitalWrite(bulb3, HIGH);
Serial.println("BULB 3 is ON");
}
else if (str == "bulb3 off") {
digitalWrite(bulb3, LOW);
Serial.println("BULB 3 is OFF");
}
else {
digitalWrite(bulb3, LOW);
}
// bulb4
if (str == "bulb4 on") {
digitalWrite(bulb4, HIGH);
Serial.println("BULB 4 is ON");
}
else if (str == "bulb4 off") {
digitalWrite(bulb4, LOW);
Serial.println("BULB 4 is OFF");
}
else {
digitalWrite(bulb4, LOW);
}
}
}
Programmiercode-Erklärung:
Importieren Sie die für das Projekt erforderlichen Bibliotheken. Die SoftwareSerial.h-Bibliothek wird für die serielle Kommunikation mit dem Bluetooth-Modul HC-05 importiert.
#include <SoftwareSerial.h>
Deklaration der Variablen für die Ausgabepins des Arduino an 8, 9, 10 und 11, die an den Datenpin jedes der vier Relais gehen. Die String-Variable "str" speichert die Daten, die wir vom Smartphone über das HC-05 Bluetooth-Modul erhalten.
int bulb1 = 8;
int bulb2 = 9;
int bulb3 = 10;
int bulb4 = 11;
String str;
pinMode(bulb1, OUTPUT);
pinMode(bulb2, OUTPUT);
pinMode(bulb3, OUTPUT);
pinMode(bulb4, OUTPUT);
Bluetooth-Serialkommunikation und Serial Monitor werden mit 9600 Baud initialisiert.
bt.begin(9600);
Serial.begin(9600);
Wenn die vom Smartphone über das Bluetooth-Modul HC-05 empfangenen Daten "birne1 ein" sind, schalten wir Birne 1 ein, indem wir den Datenpin des Relais auf HIGH setzen. Wenn die Daten "birne1 aus" sind, schalten wir die Birne aus, indem wir den Datenpin des Relais auf LOW setzen. Wenn keine Daten für Birne 1 empfangen werden, setzen wir Birne 1 auf LOW. Dasselbe wird für Birne 2, 3 und 4 gemacht.
if (str == "bulb1 on")
{
digitalWrite(bulb1, HIGH);
Serial.println("BULB 1 is ON");
}
else if (str == "bulb1 off")
{
digitalWrite(bulb1, LOW);
Serial.println("BULB 1 is OFF");
}
else
{
digitalWrite(bulb1, LOW);
}
Daher können Sie jedes Haushaltsgerät in Ihrem Zuhause mit Arduino UNO, Bluetooth und Relais steuern. Wir haben auch die technischen Informationen für die für den Bau dieses Projekts erforderlichen Komponenten bereitgestellt. Der Schaltplan besteht aus LEDs, die durch die im Haus verwendeten AC-Glühlampen ersetzt werden.
Verwandte Projekte:
- Automatische Pflanzenbewässerung & Bewässerungssystem – Schaltung, Code & Projektbericht
- Regenalarm-Schaltung – Schnee-, Wasser- und Regendetektor-Projekt
- Wasserstandsanzeiger-Schaltplan – Zwei einfache Projekte
- Weitere Elektronik- & Elektrotechnik-Projekte
Industrietechnik
- Wie Smart Home Technologie den Alltag transformiert
- Silicon Labs stellt Advanced Wireless Gecko Solutions für Smart Home & Building Automation auf Embedded World 2019 vor
- Smart Lock & Sensor Design: Experten-Schutz & Sensing Strategien für sichere Smart Homes
- Fünf Hürden beim Home-Office-Versand für Remote-Teams meistern
- SERENA: Eigenes Arduino Mega 2560 Alarmsystem mit TFT-LCD-Touchscreen
- Smart Home Automatisierung & Sicherheitssystem mit 1Sheeld
- Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
- Echtzeit-RFID-Anwesenheitssystem mit Arduino & Google Tabellen
- Octopod: Smarte IoT-Automatisierungslösung für Zuhause und Industrie
- WARAN Home-Automation-Kit: Raspberry Pi, Arduino, Sensoren & nRF24L01+