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

WARAN - Hausautomation

Komponenten und Verbrauchsmaterialien

Raspberry Pi 2 Model B
× 1
Arduino UNO
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (4 Pins)
× 2
Bodenhygrometer
× 1
Arduino Pro Mini 5V
× 2
9-V-Batterie (generisch)
× 3
Wasserpumpe
Optional
× 1
nRF24l01+
× 3
nRF24l01+ Sockel
Optional
× 1
NPN-Transistor
Optional
× 1
3,3-V-Spannungsregler
× 2
10kΩ Widerstand
× 2
10µF Kondensator
× 4
47µF Kondensator
× 2
Perfboard
× 3

Notwendige Werkzeuge und Maschinen

Lötmaschine
Abisolierzange
Drahtzange
Jumper Wires

Apps und Onlinedienste

Microsoft Windows 10 IoT Core
Microsoft Azure
PubNub Publish/Subscribe-API

Über dieses Projekt

Ich wollte ein billiges Hausautomationssystem bauen. Ich möchte, dass dies ein modulares System ist, damit ich ohne große Änderungen Sensoren und Geräte hinzufügen kann. WARAN (W indows IoT, A zure, R Himbeer-Pi, A rduino, N RF24L01+) ist ein modulares Hausautomationssystem, das aus einem einzelnen Hub und mehreren Modulen besteht. Das Modul wird eine Kombination aus Mikrocontroller und Sensoren sein, die Daten von verschiedenen Orten des Hauses sammeln und die Daten über RF an den Hub übertragen. Die gesamte Kommunikation zwischen Hub und Modulen erfolgt über RF. Es wird auch eine begleitende Windows Phone-App für den Hub geben. Hier ist ein einfaches Flussdiagramm, das die Einrichtung erklärt.

Warum Windows IoT?

Ich bin ein Softwareentwickler, der sich derzeit mit IoT befasst. Aufgrund meiner bisherigen Erfahrungen mit XAML/C# und Visual Studio (was ich für die beste IDE aller Zeiten halte) war es für mich sehr hilfreich, diese sehr schnell zu implementieren.

Warum NRF24L01+?

Als ich nach drahtlosen Optionen suchte, stellte sich NRF24L01+ als billige und stromsparende Lösung heraus. Mit einigen wirklich leistungsstarken Bibliotheken war es für mich die beste Lösung.

Warum Windows Azure

Windows Azure sehr einfach zu erlernen und anzupassen. Da für die Bereitstellung des Dienstes nur wenig Konfiguration erforderlich ist, können wir uns mehr auf die Entwicklung als auf die Konfiguration und Bereitstellung konzentrieren. Meine bisherige Erfahrung mit Azure hat mir bei der schnellen Integration geholfen.

Der Hub

Der Hub ist ein zentrales Kontrollzentrum von WARAN. Es besteht aus RPI2, Arduino Uno und nRF24L01+. Auf dem RPI2 wird der Windows IoT-Kern ausgeführt. Es führt eine universelle App aus, die als Kontrollzentrum fungiert. Der Hub wäre mit einem großen Display (typischerweise ein Fernseher oder Monitor) verbunden, über das wir die Daten der Module sehen und auch die Module steuern können. Eine an den RPI2 angeschlossene Tastatur und Maus helfen beim Hinzufügen und Entfernen von Modulen aus dem Kontrollzentrum. Hier ist der Schaltplan davon (siehe Datei WARAN.Hub.fzz. im Projekt) 

Wie funktioniert es?

Jedes Modul hat eine eindeutige Adresse, über die der Hub mit ihm kommuniziert. Wir fügen der Zentrale ein Modul mit dieser Adresse hinzu und geben dem Modul einen Namen. Nach dem Hinzufügen sendet das Kontrollzentrum (Universal App) Daten über I2C an Arduino Uno. Arduino Uno sendet Daten über nRF24L01+ an das Modul und das Modul liest Daten von den Sensoren oder startet/stoppt ein Gerät basierend auf den empfangenen Daten und sendet Daten zurück an Arduino Uno. Der Arduino Uno sendet die Daten über I2C an das Kontrollzentrum. Diese Daten werden auf dem Fernseher/Monitor angezeigt und auch an die Cloud gesendet. Der Arduino Uno fungiert nur als Schnittstelle für RPI2, um die Sensordaten von anderen Modulen zu erhalten. Der obige Prozess wird in drei Szenarien ablaufen

  1. In bestimmten Abständen je nach Modul
  2. Wenn der Benutzer mit dem Kontrollzentrum interagiert (über Maus/Tastatur)
  3. Wenn ein Trigger aus der Cloud gesendet wird (vis PubNub)

Hier ist ein typischer Ablauf

Und so interagieren die Komponenten im Hub und in den Modulen zwischen ihnen.

Das Kontrollzentrum

Das Kontrollzentrum ist eine universelle App, die im RPI2 läuft. Das Kontrollzentrum ist die Schnittstelle, mit der der Benutzer interagieren kann. Es kommuniziert mit den Modulen und auch mit der Cloud. Das WARAN-Kontrollzentrum verwendet Azure Mobile Services und PubNub als Cloud-Back-End. Alle von uns hinzugefügten Modulinformationen werden lokal in sqlite db gespeichert und auch an den Azure Mobile Service gesendet. Dadurch wird wiederum eine PubNub-Nachricht oder eine Push-Benachrichtigung an die mobile App gesendet. Ich möchte hier nicht den Codierungsteil erklären und diesen Artikel durcheinander bringen. Der Quellcode des Projekts, die Dokumentation und Details zur Bereitstellung finden Sie unter https://bitbucket.org/arjunganesan/waran (Ich bin dabei, die Dokumentation vollständig zu aktualisieren, was in Kürze erfolgen wird). So funktioniert das Kontrollzentrum

Die mobile App

Die mobile App ist eine Windows-Phone-App (wird später für andere Plattformen entwickelt), die als Begleit-App zum Hub fungiert. Wir können alle sensorbezogenen Daten im Mobiltelefon überall auf der Welt sehen. Wenn wichtige Informationen vom Modul erhalten werden (z. B. eine Warnung über ein Gasleck von einem Gaslecküberwachungsmodul), erhalten wir ebenfalls eine Push-Benachrichtigung. Wir können auch einige Aktionen am Modul auslösen (wie das Starten einer Pumpe am Plant Waterer-Modul) vom Handy selbst aus. Da all dies über die Cloud geschieht, ist es nicht erforderlich, dass sich ein mobiles Gerät in der Nähe des Hubs befindet, um all diese Aktionen auszuführen.

So sieht die mobile App aus


Module

Das Modul besteht aus Kombinationen von Komponenten, die zusammenarbeiten und Daten über RF zum und vom Hub empfangen und senden. Es kann eine Kombination wie Arduino Pro Mini mit Sensoren oder RPI2 mit Sensoren usw. sein. Alles, was es tun muss, ist die Daten / Befehle vom Hub über RF zu empfangen und entsprechend zu reagieren. Dies gibt eine unendliche Möglichkeit von Modulen. Um zu beginnen, füge ich 2 Module hinzu

  1. Pflanzenbewässerer
  2. Temperaturmonitor

Pflanzenbewässerer

Der Pflanzenbewässerer überwacht den Wasserstand in den Pflanzen und auch die Temperatur in der Umgebung der Pflanze. Falls nicht genügend Wasser vorhanden ist, wird eine Warnung an die mobile App gesendet. Wir können die Pumpe von überall aus über die mobile App starten. Wir können es auch so konfigurieren, dass die Pumpe automatisch startet, wenn der Wasserstand unter den Schwellenwert sinkt. Es besteht aus Arduino Pro Mini, DHT11, Bodenhygrometer und nRF24L01+. Hier ist der Schaltplan (siehe PlantWaterer.fzz im Projekt)

Der Strom von der 9-V-Batterie geht an den RAW-Pin des Arduino Pro Mini. Der eingebaute Spannungsregler in Arduino gibt 5V in Vcc aus. Wir werden dies verwenden, um DHT11 mit Strom zu versorgen. Außerdem geben wir die 9-V-Leistung als Eingang an den 3,3-V-Spannungsregler an, den wir zur Stromversorgung von nRF24L01+ verwenden. Am analogen Pin A3 wird der Wasserstand vom Hygrometer abgelesen. Der Temperaturmesswert vom DHT11 wird in digitalem Pin 6 gelesen. In digitalem Pin 5 senden wir ein Signal an einen Transistor oder ein Relais, mit dem wir eine Pumpe starten und stoppen. Zu Demozwecken verwende ich eine DC-Pumpe und einen Transistor als Schalter. Und hier ist der Ablauf, wie es funktioniert

Ich wollte nicht, dass die Schaltung im Steckbrett bleibt, also habe ich sie auf ein Perfboard übertragen. Ich möchte es kompakt halten, also habe ich es so gemacht. Sie können auf den Schaltplan verweisen und Ihr eigenes Layout erstellen.

Und unten ist ein Video, wie es funktioniert.

Temperaturmonitor

Der Temperaturmonitor überwacht die Temperatur in einem Raum (z. B. Schlafzimmer) und hält die Temperatur und Luftfeuchtigkeit auf dem Laufenden. Wir können auch ein Gerät (Thermostat, AC usw.) vom Hub oder vom Handy aus ein- / ausschalten oder einstellen. Zur Demo schalte ich eine mit dem Arduino verbundene LED aus / ein. Die Schaltung besteht aus Arduino Pro Mini, DHT11 und nRF24L01+. Unten ist der Schaltplan (siehe TemperatureMonitor.fzz Datei im Projekt)

Der Strom von der 9-V-Batterie geht an den RAW-Pin des Arduino Pro Mini. Der eingebaute Spannungsregler in Arduino gibt 5V in Vcc aus. Wir werden dies verwenden, um DHT11 mit Strom zu versorgen. Außerdem geben wir die 9-V-Leistung als Eingang an den 3,3-V-Spannungsregler an, den wir zur Stromversorgung von nRF24L01+ verwenden. Die Temperatur- und Feuchtigkeitsmessung von DHT11 wird in digitalem Pin 5 gelesen. In Pin 6 senden wir ein Signal an einen Transistor oder ein Relais, mit dem wir ein Gerät starten (zB Thermostat, AC usw.). Zu Demozwecken verwende ich ein LED-Licht, um das Aus- / Einschalten des Geräts anzuzeigen. Und hier ist der Ablauf, wie es funktioniert

So habe ich es in ein Perfboard gelegt. Sie können Ihr eigenes Layout basierend auf dem Schaltplan erstellen.

Und so funktioniert es

Bekannte Probleme

  • Strom – Der Akku entlädt sich in beiden Modulen innerhalb weniger Stunden. Sie müssen eine effiziente und tragbare Stromquelle finden. Ich plane, Attiny-Prozessoren anstelle von Pro Mini in allen möglichen Modulen zu verwenden. Beim Strom wäre es effizienter. Meine bisherigen Artikel zum Thema attiny finden Sie hier.
  • I2C-Parallelität – Wenn RPI2 eine 2-Draht-Anfrage gleichzeitig an Arduino uno sendet, schlägt eine davon fehl. Ich arbeite an einer Möglichkeit, dies zu vermeiden und versuche auch, einen Wiederholungsmechanismus zu implementieren.
  • Einwegkommunikation - Im Moment initiiert der Hub eine Anfrage und das Modul antwortet darauf. Obwohl dies in vielen Szenarien gut funktioniert, müssen einige neue Module möglicherweise Daten an den Hub senden, ohne dass der Hub eine Anfrage sendet.
  • Reichweite - Ich habe die Module im Nebenraum aufbewahrt und kann Daten richtig empfangen. Wenn Sie jedoch die Reichweite erhöhen möchten, ersetzen Sie den nRF24L01 im Hub durch NRF24L01+PA+LNA mit einer externen Antenne.
  • Sicherheit - Da dies unter der Annahme entwickelt wurde, dass es sich im Besitz des Entwicklers befindet, habe ich keinen Authentifizierungsmechanismus hinzugefügt. Wenn Sie möchten, können Sie den Identitätsdienst des Azure Mobile-Dienstes verwenden, um die Microsoft-, FB-, Twitter- und Google-Authentifizierung in die mobile App und den Hub zu integrieren.

Zukunftspläne

Ich möchte dies als offene Plattform für Menschen schaffen, um ihr eigenes Hausautomationssystem zu implementieren. Ich werde den Hub und die Mobile App stabilisieren. Ich möchte diesem Projekt noch viele weitere Module hinzufügen. Sprachbasierte Befehle und Antworten sind ebenfalls in der Straßenkarte enthalten. Momentan arbeite ich an den folgenden Modulen

  • Gaslecksensor
  • Einbruchsmelder
  • Gerätesteuerungen (z. B. Kaffeemaschinensteuerung, Lichtsteuerungen usw.)
  • Garagentoröffner
  • Einige tragbare Module
  • Internetdienste ohne Hardware (Wetter, Azure Logic App, Aktienbericht usw.)
  • Module, die außerhalb der Reichweite von Hub arbeiten und mit ihm über das Internet kommunizieren (z. B. Auto-Tracker, Haustier-Tracker, Schrittzähler usw.)

Alle diese Module, die zusammen kombiniert werden und über Hub als eine Einheit arbeiten, geben mir das Hausautomationssystem, das ich schon immer haben wollte. Ich werde die neuen Module weiterhin als separate Projekte in Hackster hinzufügen. Jeder ist willkommen, neue Module hinzuzufügen und zu erweitern. Wird die Wiki-Seite zum Hinzufügen neuer Module zum Projekt aktualisieren.

Code

Bitbucket

Schaltpläne

WARAN.Hub.fzz PlantWaterer.fzz TemperaturMonitor.fzz

Herstellungsprozess

  1. Anwendungen der Heimautomatisierung
  2. RASPBERRY PI HOME AUTOMATION
  3. Arduino Digital Dice
  4. Arduino-Gamecontroller
  5. Physical Home Automation Interface
  6. Pixel-Chaser-Spiel
  7. Bewässerungssystem für Heimpflanzen
  8. Arduino Repulsive Electromagnetic Levitation
  9. Arduino Home Controller aktiviert von Alexa
  10. NeoMatrix Arduino Pong