Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino

Komponenten und Zubehör

Raspberry Pi 2 Model B × 1
XBee-Module (ZigBee) × 2
Arduino UNO × 1
FTDI-Kabel (6-polig, USB) × 2
4-Kanal-Relay-Shield für Arduino × 1
SparkFun XBee Shield × 1

Apps und Onlinedienste

Projektbeschreibung

Einführung

Dieses Projekt zeigt, wie Sie die Steckdosen Ihres Zuhauses lokal im Netzwerk und weltweit über die Cloud steuern können – mit einem Raspberry Pi unter Windows 10 IoT Core, XBee-Funkmodulen und einem Arduino als Aktuator. Alle Code-Beispiele liegen auf GitHub.

Warum Steckdosen automatisieren?

Statt einzelne Geräte in die Cloud einzubinden, automatisieren Sie die Stromversorgung selbst. Jedes Gerät, das an die gesteuerte Steckdose angeschlossen ist (Ventilator, Lampe, Heizung…), wird damit smart. Im Beispiel werden ein Ventilator und eine Lampe geschaltet.

XBee-Module (die „Bienen“) einrichten

Zwei XBee-Module im ZigBee-Protokoll kommen zum Einsatz:

Der Coordinator sendet Befehle per Funk an den Router, der die Relais schaltet.

XBees im AT-Modus konfigurieren

  1. XCTU herunterladen & installieren.
  2. Firmware-Update der XBees via FTDI-Adapter (z. B. Adafruit FTDI Friend).
  3. Beide XBees im AT-Modus konfigurieren (PAN ID, DH/DL-Adressen, Baudrate 9600).
  4. Vor dem Weiterbauen prüfen, ob die beiden Module miteinander kommunizieren (Terminal in XCTU).

Video-Tutorial: „Configuring Bees“

Empfänger-Seite (Router + Arduino + Relais) aufbauen

Benötigte Hardware

Arduino-Sketch (Relais-Steuerung)

Der Arduino empfängt serielle Kommandos vom XBee (z. B. „ON1“, „OFF2“) und schaltet die entsprechenden Relais.

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n")       digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n")  digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

Kompilieren und auf den Arduino UNO hochladen.

Netzsteckdose an Relais anschließen (Hochspannung – Vorsicht!)

Relais sind bewährte Schaltelemente: Der Mikrocontroller steuert die Niederspannungs-Seite (Spule), das Relais schaltet die Netzspannung (110–240 V AC) galvanisch getrennt.

Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Relais als galvanisch getrennter Schalter für Netzspannung

ACHTUNG: Arbeiten an 230 V AC sind lebensgefährlich! Nur mit entsprechender Qualifikation und Sicherheitsvorkehrungen durchführen. Auf eigene Gefahr.

Statt direkt an der Wanddose zu arbeiten, wird ein Verlängerungskabel modifiziert: Eine Ader wird durchtrennt, ein Ende an den Common (C)-Kontakt, das andere an NO (Normally Open) des Relais angeschlossen.

Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Verlängerungskabel an Relais-Kontakte
Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Relais-Shield aufgesteckt

Mechanischer Aufbau

  1. Relais-Shield auf Arduino stecken.
  2. XBee Shield oben auf das Relais-Shield stecken (Stapelung).
  3. XBee (Router) in das XBee Shield stecken.
  4. Arduino mit externer Stromquelle versorgen (nicht nur USB).
Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Fertiger Empfänger-Stapel: Arduino + Relais + XBee

Das XBee Shield besitzt einen Schalter (XBee/USB). Für den Betrieb auf „XBee“ stellen. Zum Flashen der XBee-Firmware auf „USB“ schalten (nutzt den FTDI-Chip des Arduino).

Server-Seite (Raspberry Pi + Coordinator) einrichten

Hardware

Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Raspberry Pi mit FTDI-Adapter & Coordinator

Software: UWP-Webserver auf dem Pi

Ein UWP-Webserver (Universal Windows Platform) läuft auf dem Pi. Er wartet auf Benutzereingaben (Web-UI), schreibt die Kommandos seriell an den FTDI-Port → Coordinator-XBee sendet per Funk an den Router.

Die DH/DL-Adressen des Coordinators wurden zuvor auf die Adresse des Routers gesetzt, sodass die Nachricht korrekt zugestellt wird.

Für FTDI-Treiber unter Windows IoT Core siehe: github.com/jark/ftdisample

Video-Tutorial: „Web Server“

Cloud-Anbindung mit Microsoft Azure

Für weltweiten Zugriff wird die Anwendung in Azure gehostet:

  1. Azure Web App (ASP.NET Core) für die Benutzeroberfläche.
  2. Azure SQL Database für Benutzer-Authentifizierung/Autorisierung.
  3. Azure Table Storage für Befehlswarteschlange (Commands vom Web → Pi).
  4. Der Raspberry Pi pollt die Table Storage („Blinky App“) und führt Befehle aus.

Hilfreiche Azure-Dokumentation:

Video-Tutorial: „Enable Azure“

Demo: Zwei Zugriffswege

  1. Lokal: Direkter Aufruf der Webserver-URL des Raspberry Pi im Heimnetz.
  2. Cloud: Über die in Azure gehostete Web-App von überall.

Video: „Demo“

Fazit & Erweiterungsmöglichkeiten

  1. Zusatzsensoren (Licht, Bewegung) ermöglichen energiesparende Automatik (Licht aus bei Abwesenheit).
  2. Seniorenfreundliche Fernbedienung via RFID/Taster.
  3. Zeitpläne (Scheduler) für Beleuchtung/Heizung.
  4. Einbruchschutz: Alle Lichter an bei Alarm.
  5. Urlaubsmodus: Ganzes Haus per Knopfdruck stromlos.
  6. Temperaturregelung nur bei Bedarf → Energieeinsparung.

Code

Relais-Steuerung (Arduino, C/C++)

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n")       digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n")  digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

Weitere Beispiele

Komplettes Repository: github.com/syediddi/hacksterio

Schaltplan

Heimische Steckdosen automatisieren mit Windows 10 IoT Core, Raspberry Pi & Arduino
Netzkabel an Relais-Kontakte (C & NO) anschließen

Herstellungsprozess

  1. Günstiges drahtloses Sensornetzwerk für Zuhause selbst bauen
  2. Sichere Gesichtserkennungs-Tür mit Windows IoT und Raspberry Pi bauen
  3. Präzise Temperatur- & Feuchtigkeitsüberwachung mit SHT15 unter Windows 10 IoT Core
  4. Windows 10 IoT Core auf Raspberry Pi 3 Model B+ installieren – Schritt-für-Schritt
  5. Sprachgesteuerter Roboter mit Windows 10 IoT Core auf Raspberry Pi 2 bauen
  6. GoPiGo v2 auf Windows 10 IoT Core für Raspberry Pi 3 erweitern
  7. IoT nutzen: Digitale Transformation heute beschleunigen
  8. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  9. Azure IoT Schwimmbadsteuerung: Smarte Sensoren & Fernüberwachung
  10. Power BI Dashboards aus PLCnext-Clouddaten erstellen