Heim Der Blog Blog Details

Entwurf und Implementierung eines Smart-Home-Systems basierend auf STM32

April 01 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
Ein Smart-Home-System mit STM32-Mikrocontrollern ermöglicht die Automatisierung und Fernsteuerung von Haushaltsgeräten, Sicherheitssystemen, Beleuchtung und Umweltüberwachung.

1. Übersicht

Ein Smart-Home-System mit STM32-Mikrocontrollern ermöglicht die Automatisierung und Fernsteuerung von Haushaltsgeräten, Sicherheitssystemen, Beleuchtung und Umweltüberwachung. Dieses Projekt integriert Sensoren, drahtlose Kommunikation und eine Benutzeroberfläche für die zentrale Steuerung.

Entwurf und Implementierung eines Smart-Home-Systems basierend auf STM32 - Blog - Ampheo


2. Systemarchitektur

Das System besteht aus:

  • STM32-Mikrocontroller (z. B. STM32F103C8T6 oder STM32F407VG)

  • Sensoren (Temperatur, Luftfeuchtigkeit, Bewegung, Gas, Licht)

  • Aktoren (Relais, Servomotoren, LEDs)

  • Drahtloser Kommunikation (Wi-Fi, Bluetooth, Zigbee oder LoRa)

  • Benutzeroberfläche (Mobile App, Web-Dashboard oder Touchscreen-LCD)

Blockschaltbild

 
+-------------------+       +-------------------+       +-------------------+
|                   |       |                   |       |                   |
|   STM32 MCU       |<----->|   Sensoren        |<----->|   Aktoren         |
|   (Hauptsteuerung)|       |   (Temp, Bewegung)|       |   (Relais, LEDs)  |
+-------------------+       +-------------------+       +-------------------+
        ^                                                      ^
        |                                                      |
        v                                                      v
+-------------------+                               +-------------------+
|   Funkmodul       |                               |   Benutzeroberfl. |
|  (Wi-Fi/Bluetooth)|                               |   (App/Web)       |
+-------------------+                               +-------------------+

3. Hardwarekomponenten

3.1 STM32-Mikrocontroller

  • STM32F103C8T6 (Blue Pill, kostengünstig) oder STM32F407VG (leistungsstärker)

  • Merkmale:

    • Mehrere GPIOs für Sensoren und Aktoren

    • ADC für analoge Sensoren (Temperatur, Gas)

    • PWM für Motor-/Servosteuerung

    • UART/I2C/SPI für Kommunikation

3.2 Sensoren

Sensor Funktion Schnittstelle
DHT11/DHT22 Temperatur & Luftfeuchtigkeit Digital
PIR-Sensor Bewegungserkennung Digital
MQ-2/MQ-135 Gas-/Raucherkennung Analog
LDR Lichtintensitätsmessung Analog
Ultraschall Abstandsmessung (Sicherheit) Digital

3.3 Aktoren

Aktor Funktion Steuerungsmethode
Relaismodul Gerätesteuerung (AC/DC) GPIO (High/Low)
Servomotor Türschlosssteuerung PWM
LED-Streifen Intelligente Beleuchtung PWM

3.4 Drahtlose Kommunikation

  • Wi-Fi (ESP8266/ESP32) – Verbindung zur Cloud (Blynk, MQTT)

  • Bluetooth (HC-05/HC-06) – Lokale Smartphone-Steuerung

  • Zigbee (XBee) – Energieeffizientes Mesh-Netzwerk

  • LoRa (RA-02) – Langstrecken-IoT-Anwendungen

3.5 Stromversorgung

  • 5V/3,3V-Regler (LM7805/AMS1117)

  • Batterie-Backup (18650 Li-Ion + TP4056-Ladegerät)


4. Softwareimplementierung

4.1 Firmware-Entwicklung (STM32CubeIDE)

  • STM32-HAL-Bibliothek für Peripheriekonfiguration

  • FreeRTOS (optional, für Multitasking)

  • Kommunikationsprotokolle:

    • UART (für Bluetooth/Wi-Fi-Module)

    • I2C/SPI (für Sensoren wie BMP280)

    • MQTT/HTTP (für Cloud-Anbindung)

4.2 Wichtige Funktionen

1. Sensordatenerfassung

c
 
// Temperatur & Luftfeuchtigkeit auslesen (DHT11)
void DHT11_Read(float *temp, float *humidity) {
    // Start-Signal senden
    HAL_GPIO_WritePin(DHT11_GPIO_Port, DHT11_Pin, GPIO_PIN_RESET);
    HAL_Delay(18);
    HAL_GPIO_WritePin(DHT11_GPIO_Port, DHT11_Pin, GPIO_PIN_SET);
    
    // 40-Bit-Daten lesen
    uint8_t data[5];
    for (int i = 0; i < 5; i++) {
        data[i] = DHT11_ReadByte();
    }
    
    *humidity = data[0];
    *temp = data[2];
}

2. Relaissteuerung (Geräteschaltung)

c
 
void Control_Relay(uint8_t relay_num, uint8_t state) {
    switch(relay_num) {
        case 1: HAL_GPIO_WritePin(RELAY1_GPIO_Port, RELAY1_Pin, state); break;
        case 2: HAL_GPIO_WritePin(RELAY2_GPIO_Port, RELAY2_Pin, state); break;
    }
}

3. Drahtlose Kommunikation (Wi-Fi + MQTT)

c
 
// Sensordaten an MQTT-Broker senden (via ESP8266)
void MQTT_Publish(char *topic, char *payload) {
    char cmd[100];
    sprintf(cmd, "AT+MQTTPUB=0,\"%s\",\"%s\",0,0\r\n", topic, payload);
    HAL_UART_Transmit(&huart1, (uint8_t*)cmd, strlen(cmd), HAL_MAX_DELAY);
}

5. Benutzeroberflächenoptionen

5.1 Mobile App (Blynk/Home Assistant)

  • Blynk (Drag-and-Drop-IoT-Dashboard)

  • Home Assistant (Open-Source-Homeautomatisierung)

  • Eigene Android/iOS-App (MIT App Inventor, Flutter)

5.2 Web-Dashboard (Node.js + MQTT)

  • MQTT-Broker (Mosquitto)

  • Node-RED (Flow-basierte Programmierung)

  • React.js-Dashboard (Echtzeit-Monitoring)

5.3 Lokaler Touchscreen (Nextion LCD)

  • Nextion HMI für interaktive Steuerung

  • STM32-UART-Kommunikation zur Anzeigeaktualisierung


6. Systemablauf

  1. Sensoren erfassen Daten (Temperatur, Bewegung, Gas)

  2. STM32 verarbeitet Daten und trifft Entscheidungen (z. B. Lüfter einschalten bei Hitze)

  3. Funkmodul sendet Warnungen an Smartphone/Cloud

  4. Benutzer steuert Geräte per App/Sprache (Google Assistant/Alexa)

  5. Aktoren führen Befehle aus (Relais schaltet Licht ein)


7. Erweiterungen

  • Sprachsteuerung (Google Assistant/Alexa-Integration)

  • KI-basierte Automatisierung (vorausschauende Heizung/Kühlung)

  • Solarstrom-Integration (für Energieeffizienz)

  • Gesichtserkennung für Türschlösser (OpenCV + STM32)


8. Fazit

Dieses STM32-basierte Smart-Home-System bietet:
✅ Fernüberwachung & -steuerung
✅ Energieeffizienz
✅ Sicherheitsfunktionen
✅ Skalierbarkeit (unterstützt weitere Sensoren/Aktoren)

Ampheo