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

WARAN - Domotique

Composants et fournitures

Raspberry Pi 2 Modèle B
× 1
Arduino UNO
× 1
Capteur de température et d'humidité DHT11 (4 broches)
× 2
Hygromètre de sol
× 1
Arduino Pro Mini 5V
× 2
Batterie 9V (générique)
× 3
Pompe à eau
Facultatif
× 1
nRF24l01+
× 3
nRF24l01+ Socket
Facultatif
× 1
Transistor NPN
Facultatif
× 1
Régulateur de tension 3,3 V
× 2
Résistance 10kΩ
× 2
Condensateur 10µF
× 4
Condensateur 47µF
× 2
Perfboard
× 3

Outils et machines nécessaires

Machine à souder
Dénudeur de fils
Pince à fil
Câbles de raccordement

Applications et services en ligne

Microsoft Windows 10 IoT Core
Microsoft Azure
API de publication/abonnement PubNub

À propos de ce projet

J'avais l'intention de construire un système domotique bon marché. Je veux que ce soit un système modulaire afin que je puisse continuer à y ajouter des capteurs et des appareils sans trop de changements. WARAN (W indows IoT, A zure, R asperge Pi, A rduino, N RF24L01+) est un système domotique modulaire composé d'un seul hub et de plusieurs modules. Le module combinera un microcontrôleur et des capteurs collectant des données à différents endroits de la maison et transmettant les données au hub via RF. Toutes les communications entre le Hub et les modules se font via RF. Il y aura également une application Windows Phone pour le Hub. Voici un organigramme simple expliquant la configuration.

Pourquoi Windows IoT ?

Je suis un développeur de logiciels qui s'aventure actuellement dans l'IoT. Avec mon expérience précédente avec XAML/C# et Visual Studio (que je considère comme le meilleur IDE de tous les temps), il m'a été très utile de les implémenter très rapidement.

Pourquoi NRF24L01+ ?

Lorsque je cherchais des options sans fil, le NRF24L01+ est apparu comme une solution bon marché et à faible consommation d'énergie. Avec des bibliothèques vraiment puissantes disponibles, c'est la meilleure solution pour moi.

Pourquoi Windows Azure

Windows Azure très facile à apprendre et à adapter. Avec peu de configuration requise pour mettre en place le service, nous pouvons nous concentrer davantage sur le développement plutôt que sur la configuration et le déploiement. Mon expérience précédente avec Azure m'a aidé dans une intégration rapide.

Le hub

Le Hub est un centre de contrôle central de WARAN. Il est composé de RPI2, Arduino Uno et nRF24L01+. Le RPI2 exécute le noyau Windows IoT. Il exécute une application universelle qui sert de centre de contrôle. Le Hub serait connecté à un grand écran (généralement un téléviseur ou un moniteur) via lequel nous pouvons voir les données des modules et également contrôler les modules. Un clavier et une souris connectés au RPI2 aideront à ajouter et à supprimer des modules du centre de contrôle. Voici le schéma de celui-ci (Reportez-vous au fichier WARAN.Hub.fzz. dans le projet) 

Comment ça marche ?

Chaque module aura une adresse unique à l'aide de laquelle le hub communiquera avec lui. Nous allons ajouter un module au centre de contrôle en utilisant cette adresse et en donnant un nom au module. Une fois ajouté, le centre de contrôle (application universelle) enverra des données à Arduino Uno via I2C. Arduino Uno enverra des données au module via nRF24L01+ et le module lit les données des capteurs ou démarre/arrête un appareil en fonction des données qu'il a reçues et renvoie les données à Arduino Uno. L'Arduino Uno enverra les données au centre de contrôle via I2C. Ces données seront affichées sur le téléviseur/moniteur et également envoyées vers le cloud. L'Arduino Uno agira simplement comme une interface pour RPI2 pour obtenir les données du capteur à partir d'autres modules. Le processus ci-dessus se produira dans trois scénarios

  1. À des intervalles spécifiques selon le module
  2. Lorsque l'utilisateur interagit avec le centre de contrôle (via la souris/le clavier)
  3. Quand un déclencheur est envoyé depuis le cloud (vis PubNub)

Voici un flux typique

Et c'est ainsi que les composants du hub et les modules interagissent entre eux.

Le centre de contrôle

Le centre de contrôle est une application universelle fonctionnant dans le RPI2. Le centre de contrôle est l'interface avec laquelle l'utilisateur peut interagir. Il communique avec les modules et aussi avec le cloud. Le centre de contrôle WARAN utilise Azure Mobile Services et PubNub comme back-end cloud. Chaque information de module que nous ajoutons sera stockée localement dans sqlite db et également envoyée au service mobile Azure. Cela enverra à son tour un message PubNub ou une notification push à l'application mobile. Je ne veux pas expliquer la partie de codage ici et faire de cet article un gâchis. Le code source du projet, la documentation et les détails de déploiement sont disponibles sur https://bitbucket.org/arjunganesan/waran (je suis en train de mettre à jour la documentation dans son intégralité, ce qui sera fait bientôt). Voici comment fonctionne le centre de contrôle

L'application mobile

L'application mobile est une application Windows Phone (qui sera développée ultérieurement pour d'autres plates-formes) qui servira d'application complémentaire au hub. Nous pouvons voir toutes les données liées aux capteurs dans le mobile partout dans le monde. Si, en cas d'informations importantes provenant du module (comme une alerte de fuite de gaz d'un module de surveillance des fuites de gaz), nous recevrons également une notification push. Nous pouvons également déclencher une action sur le module (comme démarrer une pompe sur le module Plant Waterer) à partir du mobile lui-même. Étant donné que tout cela se passe via le cloud, il n'est pas nécessaire qu'un appareil mobile soit présent à proximité du hub pour effectuer toutes ces actions.

Voici à quoi ressemble l'application mobile


Modules

Le module est une combinaison de composants fonctionnant ensemble et recevant et envoyant des données vers et depuis le Hub via RF. Il peut s'agir d'une combinaison comme Arduino Pro Mini avec des capteurs ou RPI2 avec des capteurs, etc. Il lui suffit de recevoir les données/commandes du concentrateur via RF et de répondre de manière appropriée. Cela donne une possibilité infinie de modules. Pour commencer, j'ajoute 2 modules

  1. Abreuvoir pour plantes
  2. Moniteur de température

Abreuvoir pour plantes

L'abreuvoir surveillera le niveau d'eau dans les plantes ainsi que la température de l'environnement autour de la plante. S'il n'y a pas suffisamment d'eau, une alerte sera envoyée à l'application mobile. Nous pouvons démarrer la pompe à partir de l'application mobile de n'importe où. Nous pouvons également le configurer pour démarrer automatiquement la pompe chaque fois que le niveau d'eau descend en dessous du seuil. Il se compose d'Arduino Pro Mini, DHT11, d'un hygromètre de sol et de nRF24L01+. Voici le schéma du circuit (Reportez-vous à PlantWaterer.fzz dans le projet)

L'alimentation de la batterie 9V va à la broche RAW de l'Arduino Pro Mini. Le régulateur de tension intégré dans l'arduino donnera une sortie 5V en Vcc. Nous allons l'utiliser pour alimenter le DHT11. Nous donnons également l'alimentation 9V en entrée au régulateur de tension 3,3V que nous utiliserons pour alimenter nRF24L01+. Le niveau d'eau de l'hygromètre sera lu sur la broche analogique A3. La lecture de la température du DHT11 sera lue dans la broche numérique 6. Dans la broche numérique 5, nous enverrons un signal à un transistor ou à un relais à l'aide duquel nous commençons à arrêter une pompe. À des fins de démonstration, j'utiliserai une pompe à courant continu et un transistor comme interrupteur. Et voici comment ça marche

Je ne voulais pas que le circuit reste dans la maquette alors je l'ai transféré sur une perfboard. Je veux le garder compact alors je l'ai fait de cette façon. Vous pouvez vous référer au schéma de circuit et créer votre propre disposition.

Et ci-dessous, une vidéo sur son fonctionnement.

Moniteur de température

Le moniteur de température surveillera la température dans une pièce (par exemple, une chambre à coucher) et se tiendra au courant de la température et du niveau d'humidité. Nous pouvons également allumer/éteindre ou régler un appareil (Thermostat, AC, etc.) à partir du hub ou du mobile. Pour des raisons de démonstration, je vais éteindre/allumer une LED connectée à l'arduino. Le circuit se compose d'Arduino Pro Mini, DHT11 et nRF24L01+. Vous trouverez ci-dessous le schéma de circuit (voir le fichier TemperatureMonitor.fzz dans le projet)

L'alimentation de la batterie 9V va à la broche RAW de l'Arduino Pro Mini. Le régulateur de tension intégré dans l'arduino donnera une sortie 5V en Vcc. Nous allons l'utiliser pour alimenter le DHT11. Nous donnons également l'alimentation 9V en entrée au régulateur de tension 3,3V que nous utiliserons pour alimenter nRF24L01+. La lecture de la température et de l'humidité du DHT11 sera lue dans la broche numérique 5. Dans la broche 6, nous enverrons un signal à un transistor ou à un relais à l'aide duquel nous commençons à arrêter un appareil (par exemple, thermostat, courant alternatif, etc.). À des fins de démonstration, j'utiliserai une lumière LED pour montrer la mise hors/sous tension de l'appareil. Et voici comment ça marche

Voici comment je l'ai posé dans une planche perforée. Vous pouvez créer votre propre agencement sur la base du schéma de circuit.

Et voici comment cela fonctionne

Problèmes connus

  • Alimentation - La batterie se décharge en quelques heures dans les deux modules. Besoin de trouver une source d'alimentation efficace et portable. Je prévois d'utiliser des processeurs attiny à la place de pro mini dans tous les modules possibles. Il serait plus efficace sur le pouvoir. Mes articles précédents sur attiny peuvent être trouvés ici.
  • Concurrence I2C :si RPI2 envoie une demande de 2 fils à Arduino uno à la fois, l'un d'entre eux échoue. Je travaille sur un moyen d'éviter cela et j'essaie également de mettre en œuvre un mécanisme de nouvelle tentative.
  • Communication unidirectionnelle - À l'heure actuelle, le Hub lance une demande et le module y répond. Bien que cela fonctionne bien dans de nombreux scénarios, certains nouveaux modules peuvent nécessiter l'envoi de données au hub sans que le hub n'envoie de demande.
  • Gamme - J'ai gardé les modules dans la pièce voisine et j'ai pu recevoir correctement les données. Mais si vous souhaitez augmenter la portée, remplacez le nRF24L01 dans Hub par NRF24L01+PA+LNA qui a une antenne externe.
  • Sécurité - Étant donné que cela est développé en supposant qu'il appartient au développeur, je n'ai ajouté aucun mécanisme d'authentification. Si vous le souhaitez, vous pouvez utiliser le service Identity du service Azure Mobile pour intégrer l'authentification Microsoft, FB, Twitter, Google à l'application mobile et au hub.

Projets futurs

J'aimerais en faire une plate-forme ouverte permettant aux gens de mettre en œuvre leur propre système domotique. Je vais stabiliser le Hub et l'application mobile. Je voudrais ajouter beaucoup plus de modules à ce projet. La commande et la réponse vocales figurent également dans la feuille de route. En ce moment je travaille sur les modules ci-dessous

  • Capteur de fuite de gaz
  • Détecteur d'intrusion
  • Contrôleurs d'appareils (par exemple, contrôleur de machine à café, contrôleurs d'éclairage, etc.)
  • Ouvre-porte de garage
  • Quelques modules portables
  • Services Internet sans matériel (météo, application Azure Logic, rapport de stock, etc.)
  • Modules qui fonctionnent en dehors de la portée du Hub et communiquent avec lui via Internet (par exemple, suivi de voiture, suivi d'animaux, podomètre, etc.)

Tous ces modules combinés ensemble et fonctionnant comme une seule unité via Hub me donneront le système domotique que j'ai toujours voulu avoir. Je continuerai à ajouter les nouveaux modules en tant que projets séparés dans hackster. Tout le monde est invité à ajouter de nouveaux modules et à étendre. Mettra à jour la page wiki sur la façon d'ajouter de nouveaux modules au projet.

Code

Bitbucket

Schémas

WARAN.Hub.fzz PlantWaterer.fzz Moniteur de température.fzz

Processus de fabrication

  1. Applications de la domotique
  2. DOMOMATISATION RASPBERRY PI
  3. Dés numériques Arduino
  4. Contrôleur de jeu Arduino
  5. Interface domotique physique
  6. Jeu Pixel Chaser
  7. Système d'arrosage des plantes domestiques
  8. Lévitation électromagnétique répulsive Arduino
  9. Contrôleur domestique Arduino activé par Alexa