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

Win10 IOT-Bewässerungssteuerung mit Feuchtigkeitssensoren

Messen Sie die Feuchtigkeit des Rasenbodens mit Win10 IOT, RPi2 und XBee und führen Sie die Bewässerung nach Bedarf automatisch durch.

Hintergrund

Große Teile der USA haben in den letzten Jahren unter Niedrigwasser- oder Dürrebedingungen gelitten. Es gibt eine Vielzahl von Dingen, die ein Hausbesitzer tun kann, um den Wasserverbrauch im Haushalt zu reduzieren, und die Rasenbewässerung ist eine davon. Die Arbeit mit den gängigsten Bewässerungssteuerungen für Wohngebäude ist umständlich und frustrierend. Versteckt in Garagen erschweren dann komplexe Zifferblätter und undurchsichtige Anweisungen auf diesen Controllern die Einstellung der täglichen Laufzeit des Systems. Und sie wissen immer noch nicht, wie viel Wasser die Pflanzen tatsächlich brauchen.

Mein Projekt zielt darauf ab, zumindest einen Teil des Problems zu lösen, indem es der Bewässerungssteuerung ermöglicht, zu wissen, wie nass der Boden ist, damit sie weiß, ob sie laufen und wann sie aufhören muss. Darüber hinaus habe ich eine webbasierte Steuerung hinzugefügt, sodass ich die Sprinkler mit meinem Smartphone vom Hinterhof oder vom ganzen Land aus steuern kann.

Schritt 1:Wahrnehmung 

Zuerst müssen wir die Bodenfeuchtigkeitssensoren dazu bringen, Daten an den RPi2 zu senden. Wir möchten, dass sich die Sensoren im oder direkt neben dem Rasen befinden, aber der RPi2 muss an einem sicheren Ort und in der Nähe von Strom und Ethernet platziert werden. Die Sensoren werden von den Elementen umgeben, batteriebetrieben und müssen in der Lage sein, Daten von einem Bodenfeuchtigkeitssensor zu lesen. Glücklicherweise sind die XBee-Chips von Digi International gut darauf zugeschnitten, alle drei dieser Bedingungen zu lösen.

Der Einfachheit halber wähle ich den XBee Pro – Series 1 Module. Während Digi über eine proprietäre Kommunikationsschicht DigiMesh und eine ZigBee-Implementierung verfügt (hier ist eine großartige Zusammenfassung), bestand die einfachste und direkteste Lösung darin, die grundlegende „802.15.4“-Implementierung zu verwenden. In dieser Konfiguration spricht jeder Funksensor direkt mit dem am RPi2 angebrachten XBee-Chip. Jeder einzelne XBee-Sensor verwaltet seinen eigenen Schlaf-Wach-Zyklus, was die Akkulaufzeit drastisch verlängert. Und der XBee-Sensor verfügt über 6 integrierte 10-Bit-Analog-zu-Digital-Eingänge, perfekt zum Anschließen unseres Bodenfeuchtigkeitssensors. Es gibt sogar genug zusätzliche Eingänge, um Temperatur- oder Lichtwerte zu einem späteren Zeitpunkt zu erfassen.

Für die Stromversorgung des Sensors wollte ich genügend Kapazität haben, um nicht ständig die Batterien wechseln zu müssen. Durch die Berechnung des Stromverbrauchs des XBee-Chips in einem Schlaf-Wach-Zyklus und die Verwendung von Standardbatteriekapazitäten konnte ich die Häufigkeit der Meldungen des Sensors nach Hause feinjustieren, sodass ich die Batterien nur etwa einmal im Jahr wechseln muss. Im Idealfall wird eine zukünftige Überarbeitung Solarzellen beinhalten.

Schließlich musste ich den XBee-Chip programmieren. Auf der rechten Seite der Energiebudget-Tabelle, in den Spalten „G“ und „H“, befinden sich die Werte, die ich mit der Digi X-CTU-Software geändert habe. Ich konnte die XBee Explorer USB-Komponente von SparkFun an meinen PC anschließen, anstatt ein separates Entwickler-Kit von Digi kaufen zu müssen.

Schritt 2:Programmieren des Raspberry Pi

Die größte Herausforderung bei der Programmierung des Raspberry Pi ist die Anbindung des XBee-Moduls. Der XBee spricht nur über seriell, und der RPi2 hat keine zugänglichen eingebauten seriellen Fähigkeiten. Ich habe mich für das USB-Modul von Sparkfun XBee Explorer entschieden. Der verwendete Onboard-Chip von FTDI hat keine nativen Treiber für Win10 IOT Core. Nachdem ich jedoch die Anweisungen von Jark in seinem GitHub-Repository befolgt hatte, konnte ich mit dem XBee-Modul kommunizieren.

Die Sensoren senden periodisch Sensordaten an das RPi, die gemäß der XBee-Dokumentation als API-Frame empfangen werden. Es gibt viele, viele verschiedene Bibliotheken für die Verarbeitung von XBee API-Frame-Daten, aber ich habe mich entschieden, meine eigene zu erstellen, um Lizenzprobleme zu vermeiden.

Nach dem Parsen der Messwerte werden die Daten an einen Clouddienst gesendet, der in Azure gehostet wird. Der Cloud-Dienst kann dann bestimmen, ob der Wert geöffnet werden soll oder nicht, und die Sprinkler in einer bestimmten Zone betreiben.

Schritt 3:Cloud Service für Sensorprotokolle, Bewässerungssteuerung

Für den Clouddienst habe ich mich entschieden, ServiceStack zu verwenden, das in einer Windows Azure-Web-App ausgeführt wird. ServiceStack ist ein weborientiertes Framework, das eine Alternative zu ASP.Net mit Entity Framework darstellt. Es verfügt über zusätzliche Komponenten zur Unterstützung von Redis, C#-Clients und   Es verfügt über eine duale kommerzielle / AGPL-Lizenz und großzügige kostenlose Kontingente für Hobbyprojekte. Durch die Verwendung von Azure können wir auf eine Fülle zusätzlicher Ressourcen zurückgreifen, z. B. ein Redis-Back-End, eine SQL-Datenbank, Service Bus und zahlreiche Möglichkeiten zur Skalierung bei Bedarf.

Als Experimentier-/Hobbyprojekt ist meine Website sehr minimalistisch, veranschaulicht aber den Ansatz. Es soll ein Funktionsbeispiel bieten, das erweitert werden kann, um den Anforderungen zukünftiger Hacker gerecht zu werden.

  1. Ein Link zu vom Server gesendeten Ereignissen wird geöffnet, der die ServerEvents von ServiceStack verwendet,  ermöglicht effektiv eine bidirektionale Kommunikation zwischen dem RPi2 und dem Server. Dies ist ähnlich, aber einfacher und weniger robust als die Verwendung von SignalR.
  2. Der RPi sendet Sensordaten an die Cloud, sobald sie empfangen werden
  3. Der Server weist die Bewässerungssteuerung an, die Sprinklerventile ein- oder auszuschalten.

Die Stärke dieses Ansatzes besteht darin, dass der Server komplexe Planungen oder Logiken durchführen kann, wie beispielsweise das Betrachten von Wettervorhersagen oder die Einhaltung lokaler Vorschriften (wie beispielsweise Bewässerung an geraden/ungeradeten Tagen). Es ermöglicht auch die Fernverwaltung oder die Verwaltung vieler verschiedener Standorte über eine einzige webbasierte Schnittstelle. Der Nachteil ist, dass die Sprinkler nicht funktionieren, wenn die Internetverbindung nicht richtig funktioniert.

Schritt 4:Die Zukunft

Dieses Projekt war hauptsächlich ein Proof-of-Concept, damit zukünftige Hacker darauf aufbauen und es an ihre eigenen Bedürfnisse anpassen können. Es gibt viele Dinge, die getan werden können, um daraus ein ausgefeilteres Projekt zu machen:

Quelle:Win10 IOT Bewässerungssteuerung mit Feuchtigkeitssensoren


Herstellungsprozess

  1. Einfaches IoT – RaspberryPI HDC2010 wie es geht
  2. Messen Sie Temperaturen mit einem 1-Draht-DS18B20-Sensor und Raspberry Pi
  3. Linienverfolgungssensor mit RPi
  4. Umgebungssensor-API mit einem RPi
  5. Raspberry Pi Bodenfeuchtigkeitssensor
  6. Erstellen Sie Ihr erstes IOT mit einem Raspberry Pi, einem DHT11-Sensor und Thingspeak.
  7. Windows 10 IoT Core und SHT15
  8. GoPiGo v2 mit Windows IoT
  9. Verbesserte Überwachung der Luftverschmutzung mit IoT-Sensoren
  10. IoT-Miniaturisierung bringt Miniatursensoren für brennbare Gase hervor