Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôleur d'irrigation Win10 IOT avec capteurs d'humidité

À l'aide de Win10 IOT, RPi2 et XBee, mesurez l'humidité du sol de la pelouse et exécutez automatiquement l'irrigation si nécessaire.

Contexte

De grandes parties des États-Unis ont souffert de basses eaux ou de sécheresse au cours des dernières années. Il y a un grand nombre de choses qu'un propriétaire peut faire pour réduire la consommation d'eau des ménages, et l'irrigation de la pelouse est l'une d'entre elles. Travailler avec les contrôleurs d'irrigation résidentiels les plus courants est gênant et frustrant. Cachés dans les garages, les cadrans complexes et les instructions obscures de ces contrôleurs rendent difficile le réglage de la durée de fonctionnement du système au quotidien. Et ils ne savent toujours pas de combien d'eau les plantes ont réellement besoin.

Mon projet vise à résoudre au moins une partie du problème, en permettant au contrôleur d'irrigation de savoir à quel point le sol est humide, afin qu'il sache s'il doit fonctionner et quand s'arrêter. De plus, j'ai ajouté un contrôle basé sur le Web, afin que je puisse contrôler les arroseurs à l'aide de mon téléphone intelligent depuis l'arrière-cour ou depuis tout le pays.

Étape 1 :Détection 

Tout d'abord, nous devons faire en sorte que les capteurs d'humidité du sol envoient des données au RPi2. Nous voulons que les capteurs soient dans ou juste à côté de la pelouse, mais le RPi2 devra être situé dans un endroit sûr et à proximité de l'alimentation et d'Ethernet. Les capteurs seront isolés des éléments, alimentés par batterie et doivent pouvoir lire les données d'un capteur d'humidité du sol. Heureusement, la gamme de puces XBee de Digi International est bien adaptée pour résoudre ces trois conditions.

Par souci de simplicité, j'ai choisi d'utiliser le XBee Pro – Série 1 modules. Alors que Digi possède une couche de communication propriétaire DigiMesh et une implémentation ZigBee (voici une excellente fiche récapitulative), la solution la plus simple et la plus directe consistait à utiliser l'implémentation de base « 802.15.4 ». Dans cette configuration, chaque capteur sans fil communique directement avec la puce XBee attachée au RPi2. Chaque capteur XBee individuel gère son propre cycle veille-sommeil, ce qui prolonge considérablement la durée de vie de la batterie. Et le capteur XBee dispose de 6 entrées analogiques-numériques 10 bits intégrées, parfaites pour brancher notre capteur d'humidité du sol. Il y a même suffisamment d'entrées supplémentaires pour collecter des relevés de température ou de luminosité à une date ultérieure.

Pour alimenter le capteur, je voulais une capacité suffisante pour ne pas avoir à remplacer constamment les piles. En calculant la puissance utilisée par la puce XBee dans un cycle veille-sommeil, et en utilisant des capacités de batterie standard, j'ai pu affiner la fréquence à laquelle le capteur signale à la maison de sorte que je ne devrais avoir à changer les batteries qu'une fois par an environ. Idéalement, une future révision incorporera des cellules solaires.

Enfin, j'avais besoin de programmer la puce XBee. Sur le côté droit de la feuille de calcul du bilan énergétique, dans les colonnes « G » et « H », se trouvent les valeurs que j'ai modifiées à l'aide du logiciel Digi X-CTU. J'ai pu utiliser le composant USB XBee Explorer de SparkFun connecté à mon PC, au lieu d'avoir à acheter un kit de développement séparé auprès de Digi.

Étape 2 :Programmation du Raspberry Pi

Le plus grand défi de la programmation du Raspberry Pi est l'interfaçage du module XBee. Le XBee ne parle que par série et le RPi2 n'a pas de capacités série intégrées accessibles. J'ai décidé d'utiliser le module USB Sparkfun XBee Explorer. La puce embarquée utilisée, fabriquée par FTDI, n'a pas de pilotes natifs pour Win10 IOT Core. Cependant, en suivant les instructions fournies par Jark sur son référentiel GitHub, j'ai pu communiquer avec le module XBee.

Les capteurs enverront périodiquement des données de capteur au RPi, qui sont reçues sous forme de trame API, selon la documentation XBee. Il existe de nombreuses bibliothèques différentes pour le traitement des données de trame de l'API XBee, mais j'ai décidé de créer la mienne pour éviter tout problème de licence.

Après avoir analysé les lectures, les données sont envoyées à un service cloud, hébergé dans Azure. Le service cloud peut alors déterminer s'il faut ou non ouvrir la valeur, et faire fonctionner les sprinklers dans une zone donnée.

Étape 3 : service cloud pour les journaux des capteurs, contrôle de l'irrigation

Pour le service cloud, j'ai décidé d'utiliser ServiceStack exécuté dans une application Web Windows Azure. ServiceStack est un framework orienté Web qui est une alternative à ASP.Net avec Entity Framework. Il contient des composants supplémentaires pour prendre en charge Redis, les clients C# et il dispose d'une double licence commerciale/AGPL et de généreux quotas gratuits pour les projets de loisirs. En utilisant Azure, nous pouvons exploiter une multitude de ressources supplémentaires, telles qu'un backend Redis, une base de données SQL, Service Bus et de nombreuses opportunités de mise à l'échelle si nécessaire.

En tant que projet d'expérimentation / hobby, mon site Web est très minimal, mais illustre l'approche. Il est conçu pour fournir un exemple fonctionnel qui peut être étendu pour répondre aux besoins des futurs pirates.

  1. Un lien Server-Sent Events est ouvert, à l'aide des ServerEvents de ServiceStack, permettant effectivement une communication bidirectionnelle entre le RPi2 et le serveur. Ceci est similaire, mais plus simple et moins robuste, que l'utilisation de SignalR.
  2. Le RPi envoie les données du capteur au cloud au fur et à mesure de leur réception
  3. Le serveur demande au contrôleur d'irrigation d'activer ou de désactiver les vannes d'arrosage.

La puissance de cette approche réside dans le fait que le serveur peut effectuer une programmation ou une logique complexe, telle que la consultation des prévisions météorologiques ou le respect des ordonnances locales (telles que l'arrosage des jours pairs/impairs). Il permet également la gestion à distance ou la gestion de nombreux emplacements différents à partir d'une seule interface Web. L'inconvénient est que les arroseurs ne fonctionneront que si la connexion Internet fonctionne correctement.

Étape 4 :Le futur

Ce projet a été principalement une preuve de concept, afin que les futurs pirates puissent s'en inspirer et l'adapter à leurs propres besoins. Il y a beaucoup de choses qui peuvent être faites pour en faire un projet plus abouti :

Source :Contrôleur d'irrigation Win10 IOT avec capteurs d'humidité


Processus de fabrication

  1. IdO de base – RaspberryPI HDC2010 comment
  2. Mesure des températures avec un capteur DS18B20 1 fil et Raspberry Pi
  3. Capteur de suivi de ligne avec RPi
  4. API de capteur environnemental avec un RPi
  5. Capteur d'humidité du sol Raspberry Pi
  6. Créez votre premier IOT avec un Raspberry Pi, un capteur DHT11 et Thingspeak.
  7. Windows 10 IoT Core et SHT15
  8. GoPiGo v2 avec Windows IoT
  9. Améliorer la surveillance de la pollution de l'air avec des capteurs IoT