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

WaterPi :système d'arrosage et de surveillance à distance des plantes d'intérieur

Composants et fournitures

Raspberry Pi 1 Modèle B
× 1
Arduino UNO
× 1
Capteur de température et d'humidité DHT11 (4 broches)
× 1
Capteur d'humidité du sol YL-69
× 1
Capteur de niveau d'eau
× 1
LCD standard 16x2
× 1
Moteur de pompe à eau
× 1
Relais 5V
× 1
Support de 4 piles AA
× 1

Applications et services en ligne

Amazon Web Services AWS IoT
Amazon Web Services AWS DynamoDB
Johnny-Five

À propos de ce projet

Présentation

Le système est une solution appropriée pour les personnes qui aiment et veulent s'occuper des plantes dans leur maison mais qui sont très occupées par des travaux quotidiens pour le faire. Faire pousser des plantes demande du temps et des efforts pour réussir car il y a des choses régulières à faire comme les arroser tous les jours. Les gens oublient parfois de prendre soin de leurs plantes. De plus, certaines personnes voyagent beaucoup et passent moins de temps chez elles. Dans ce cadre, ils demandent généralement de l'aide pour entretenir leurs plantes d'intérieur sinon ils renoncent tout simplement à les avoir. WaterPican aide ces personnes à faire des choses régulières pour les plantes. De plus, comme il peut être contrôlé à distance, les propriétaires de plantes peuvent facilement interférer avec le processus d'arrosage en cas de besoin.


Le système surveille la température et l'humidité du lieu et l'humidité du sol, arrose la plante à distance, puis enregistre toutes les données dans DynamoDB via AWS IoT. Les données collectées sont visualisées par différents graphiques et figures pour mieux comprendre les conditions dans lesquelles la plante se développe.


Raspberry Pi exécute une application nodejs pour contrôler tous les capteurs et la pompe à eau. Pour cela j'ai préféré utiliser la bibliothèque Johnny-Five. Pour communiquer avec AWS, j'ai utilisé AWS IoT SDK pour javascript.


Étape 1 :Configurer DynamoDB

DynamoDB est utilisé pour enregistrer les données collectées par les capteurs. Accédez à la page DynamoDB et créez une nouvelle table avec les attributs suivants :

  • Nom de la table :waterpi_sensor_data
  • Clé de partition : clé
  • Cliquez sur Ajouter une clé de tri et ajoutez l'horodatage

La chose importante est que le type de clé et d'horodatage doit être String.

Étape 2 :configuration d'AWS IoT

Accédez à la page de la console AWS IoT et procédez comme suit :

Créez une chose avec le nom raspi-water-pump

Créez une nouvelle politique. Nom de la stratégie pump-policy, Action iot :*, ressource * , sélectionnez Autoriser, puis cliquez sur Ajouter une déclaration et Créer.

Créez un certificat avec Création de certificat en 1 clic . Téléchargez ensuite la clé publique, la clé privée et le certificat.

Ensuite, vous devez sélectionner le certificat que vous avez créé et procédez comme suit :

  • cliquez sur Actions > Activer bouton le certificat
  • cliquez sur Actions> Joindre une politique , saisissez le nom de la stratégie que vous avez créée et cliquez sur Joindre
  • cliquez sur Actions> Joindre un élément , tapez raspi-water-pump et cliquez sur Joindre

Créez une règle avec les éléments suivants :

  • nom saveToDynamoDB
  • Attribut *
  • Filtre par sujet capteur/données
  • Choisir une action insérer un message dans une table de base de données
  • Nom de la table waterpi_sensor_data
  • Valeur de la clé de hachage ${topic()}
  • Valeur de la clé de plage ${timestamp()}
  • Nom du rôle > Cliquez sur créer un nouveau rôle  et cliquez sur Autoriser sur la page d'ouverture, puis sélectionnez-le dans la liste déroulante Nom de rôle

Étape 3 :Préparation d'Arduino

Les sorties du capteur de niveau d'eau et d'humidité du sol sont des sorties analogiques. Ainsi, au lieu de les câbler directement à Raspberry Pi, je préfère utiliser Arduino pour prendre ces valeurs analogiques, puis les envoyer à Pi via Arduino en tant que valeur numérique. Les codes Arduino sont mis à jour par pi, donc la seule chose que nous devons faire dans cette étape est de connecter Arduino à notre ordinateur et de télécharger des firmata standard sur celui-ci.

Si vous n'avez pas Arduino IDE, suivez les étapes ici pour l'installer.

  • Ouvrir  IDE Arduino
  • Ouvrir Fichier> Exemples> Firmata> StandardFirmata exemple
  • Télécharger croquis vers Arduino




Le câblage de l'humidité du sol au schéma Arduino devrait être comme ci-dessous ;

  • VCC (alimentation) -> PIN 7
  • GND (terre) -> GND
  • AO (sortie analogique) -> A1

Le câblage du capteur de niveau d'eau au schéma Arduino devrait être comme ci-dessous ;

  • (+) -> NIP 4
  • (-)  -> GND
  • S   -> A0

Après cela, vous devez connecter votre arduino avec raspberry pi via un câble USB. N'oubliez pas non plus de mettre votre capteur d'humidité du sol dans votre pot de fleurs et votre capteur de niveau d'eau dans votre réservoir d'eau.

Étape 4 :Préparation du Raspberry Pi

Ecran lcd filaire, dht11, pompe à eau via relais avec raspberry pi.

Câblage DHT11 à Pi

  • S   -> GPIO4 (broche 7)
  • (+) -> 3V3 (broche 1)
  • (-)  -> GND (broche 25)

Câblage de l'écran LCD

  • VCC -> 5V (broche 2)
  • GND -> GND (broche 6)
  • SDA -> GPIO2 (broche 3)
  • SCL -> GPIO3 (broche 5)

Relais de câblage pour pompe à eau

  • S   -> GPIO18 (broche 12)
  • (+) -> 5V (broche 4)
  • (-)  -> GND (broche 20)


Câblage pompe à eau avec relais et pack batterie

  • La pompe à eau a deux câbles. L'un doit être connecté au relais, l'autre doit être câblé avec le câble de la batterie.
  • L'autre câble de batterie doit être connecté au relais. Consultez le schéma ci-dessus pour savoir comment les connecter.

Étape 5 :Exécuter l'application Nodejs sur Pi

Dans cette partie, nous allons exécuter l'application nodejs sur pi pour collecter les données du capteur et contrôler la pompe à eau. Raspberry pi doit être connecté à Internet. Vous pouvez le faire via Ethernet ou Wi-Fi.

Node doit être installé sur pi avant d'aller plus loin. Si vous n'avez pas installé nodejs auparavant, veuillez suivre le tutoriel ici pour l'installer.

Connectez votre raspberry pi et exécutez la commande suivante :

git clone [email protected]:demirhanaydin/waterpi-node.gitcd waterpi-nodenpm install 

Vous devez placer vos fichiers de clé publique, de clé privée et de certificat que vous avez téléchargés à partir de la page aws iot sous certs dossier. Vous devez également télécharger le fichier de certificat CA racine à partir du certificat racine. Enregistrez ce fichier en tant que rootCA.pem et placez-le sous certs dossier.

Ensuite, ouvrez device.js avec votre éditeur de texte préféré et mettez à jour ces lignes avec vos chemins de fichiers. Vous devriez obtenir votre IOT_DEVICE_URL depuis la plateforme AWS IoT en cliquant sur votre objet. Cela devrait ressembler à https://XXXXXXXXX.iot.us-east-1.amazonaws.com

Ensuite, lancez

sudo node index.js 

Si tout est correct, vous devriez pouvoir voir les valeurs des capteurs imprimées sur l'écran LCD.

Vous devriez également voir les valeurs dans votre table DynamoDB. L'application envoie les données des capteurs à la plate-forme IoT toutes les 20 secondes

Étape 6 :Exécuter l'application Web

L'application sinatra de base visualise les données qui se trouvent sur la table dynamodb à l'aide de highcharts. En outre, il peut contrôler la pompe à eau à distance. Ce qu'il fait, c'est que chaque fois que l'utilisateur clique sur un bouton démarrer/arrêter, il publie un événement sur la plate-forme AWS IoT. Raspberry Pi prend cet événement et le traite pour démarrer ou arrêter la pompe.

Ruby doit être installé sur votre ordinateur pour continuer le didacticiel. Si ce n'est pas le cas, consultez cette page pour l'installer.

Ouvrez votre Terminal et exécutez les commandes suivantes

git clone [email protected]:demirhanaydin/waterpi-web.gitcd waterpi-webbundle install 

Vous devez placer vos fichiers de clé publique, de clé privée, de certificat et de rootCA sous certs dossier. Ensuite, ouvrez boot.rb et mettez à jour ces lignes avec les valeurs appropriées. Vous devez récupérer votre clé d'accès aws et votre secret sur la page des informations d'identification de sécurité sur AWS Management Console.

Si vous avez terminé, vous devez exécuter le projet comme

ruby app.rb 

Ouvrez votre navigateur et saisissez http://localhost:4567/ Vous devriez être en mesure de voir les données collectées par les capteurs provenant de dynamodb sur les graphiques.

Lorsque vous cliquez sur Démarrer, la pompe commencera à arroser la plante.

Voici quelques photos que j'ai prises lors du développement du projet

Félicitations !

Code

Code source de Raspberry Pi Nodejs
clonez le code source sur raspberry pi et ajoutez vos fichiers de certificat aws iot dans le dossier certs. vous devez également mettre à jour device.js avec votre aws iot thing urlhttps://github.com/demirhanaydin/waterpi-node
Client Web WaterPi
n'oubliez pas de mettre à jour boot.rb avec vos identifiantshttps://github.com/demirhanaydin/waterpi-web

Schémas

pi-wout-camera.fzz arduino.fzz

Processus de fabrication

  1. La solution MCM d'ADLINK permet la surveillance et la gestion à distance
  2. Aquaponie contrôlée Raspberry Pi
  3. Surveillance de la température ambiante avec Moteino's et Raspberry Pi
  4. Surveillance à distance de la météo à l'aide de Raspberry Pi
  5. Capteur de température et de luminosité Raspberry Pi
  6. Contrôle du capteur et de l'actionneur Raspberry Pi
  7. Système de sécurité domestique Raspberry Pi avec caméra et capteur PIR
  8. GE acquiert la société de télésurveillance et de diagnostic SmartSignal
  9. Cisco présente les solutions de surveillance à distance IoT pour l'informatique et l'OT