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

Construire un réseau de capteurs sans fil abordable pour votre maison

Ce tutoriel vous apprendra à créer un réseau de modules de capteurs sans fil économiques. De nombreux modules sans fil prêts à l'emploi peuvent être trop chers pour une utilisation dans de multiples unités de capteurs. Bien que les modules Wi-Fi et Zigbee soient populaires et faciles à utiliser, leur coût peut rendre leur utilisation dans un réseau de capteurs impraticable. Il existe cependant des modules RF bas de gamme sans toutes les fonctionnalités coûteuses qui fonctionneront très bien pour ces usages. La plateforme Arduino peut utiliser des modules radio bas de gamme pour communiquer facilement et de manière fiable.

Une fois le matériel assemblé, vous exploiterez la plateforme Raspberry Pi pour publier les données sur le service Internet des objets de Xively, où vous pourrez suivre les valeurs dans le temps et déclencher des actions sur des conditions de seuil.

Ce projet comprend trois parties : deux unités émettrices et une unité réceptrice. Les émetteurs sont composés d'une carte Arduino, d'un capteur et d'un émetteur RF. L'unité réceptrice est composée d'une carte Arduino, d'un récepteur RF, d'un convertisseur de niveau logique et d'un Raspberry Pi.

Il existe une large gamme de cartes compatibles Arduino utilisables pour ce projet. L'exigence minimale pour la carte est deux broches GPIO numériques et une broche analogique. Sélectionnez une carte compatible Arduino qui correspond aux besoins de coût et de simplicité de ce projet.

Dans ce tutoriel, j'ai utilisé un ensemble de cartes Arduino Nano qui s'adaptent bien à une plaque d'essai et sont simples à programmer. Cependant, les versions 5V de l'Arduino Pro Mini ou du Trinket fonctionneront aussi bien et à un prix bien inférieur. Ceux-ci nécessitent toutefois un peu plus d'expérience pour programmer et utiliser. Choisissez judicieusement.

Les émetteurs sont des circuits relativement simples. Une seule broche est utilisée pour récupérer l'information du capteur de température et d'humidité et une broche pour envoyer ces données à l'émetteur RF. Le schéma de plaque d'essai est montré ci-dessous.

L'alimentation 9V se connecte au connecteur jack, rendant les rails inférieurs à 9V. Le régulateur de tension de l'Arduino produit 5V qui est sûr pour la radio et les capteurs, le rail d'alimentation supérieur du schéma.

Le capteur est livré avec une résistance de 10k ohm qui relie la broche de données à l'alimentation comme résistance de tirage, tandis qu'un autre fil la relie au GPIO D3.

Soyez prudent en suivant la configuration ci-dessous et assurez-vous de vérifier la fiche technique du capteur et du module RF pour garantir que les composants sont positionnés correctement dans la plaque d'essai et que les broches d'alimentation, de masse et de signal sont connectées aux bonnes broches. Le schéma Fritzing est inclus dans le paquet source pour plus de détails.

L'antenne est une partie importante de la carte car le module RF n'a pas d'antenne intégrée. J'ai utilisé un fil de liaison femelle vers mâle de 6 pouces branché dans la plaque d'essai et cela a fonctionné suffisamment bien pour permettre la réception depuis toutes les parties de ma maison et un peu à l'extérieur. Comme indiqué dans le schéma, 6,5 pouces est optimal pour cette antenne si vous avez besoin de portée supplémentaire.

Une note sur l'utilisation RF. Il existe différentes lois et règles sur l'utilisation des fréquences selon les pays. Assurez-vous d'être en conformité avec ces règles avant de diffuser. Cela dit, les signaux de ces modules sont à peine assez puissants pour sortir de votre maison. Dans des conditions parfaites, cependant, ces modules peuvent diffuser jusqu'à 150 mètres (500 pieds).

L'émetteur utilise deux bibliothèques qui ne sont pas fournies avec l'IDE Arduino. Téléchargez les bibliothèques comme décrit ci-dessous et décompressez-les dans votre répertoire de croquis dans un sous-répertoire nommé Libraries.

Ce tutoriel suppose que vous avez une certaine expérience avec Arduino et comment les programmer à l'aide de l'IDE Arduino. Sinon, il y a de très bonnes instructions sur le site officiel Arduino.

12345 #define MYID 1 //le numéro d'identification de cette carte. Changez ceci pour chaque carte que vous flashez. //L'ID sera transmis avec les données pour savoir quel appareil transmet #define TRANSPIN 3 //sur quelle broche transmettre #define DHTPIN 4 // quelle broche le DHT est connecté #define UNIT 0 // 0 pour Fahrenheit et 1 pour Celsius

La définition MYID est un ID numérique que l'émetteur utilise pour s'identifier de manière unique. Comme vous aurez plusieurs émetteurs à différents endroits, il est important d'avoir un ID unique pour chacun. Ce numéro sera utilisé à nouveau lors de la configuration du script récepteur.

La fenêtre Moniteur Série réinitialise l'Arduino, vous devriez donc voir une ligne de code à l'écran qui ressemble à :

12 Humidity: 44.00 % Temperature: 60.80 *F Sending Message: ID:1:TS:23143:TF:60.79:RH:44.00

Le message est composé de paires Nom:Valeur que le récepteur gérera. L'émetteur lira et diffusera son signal sur un intervalle aléatoire long. Les capteurs ne changent pas beaucoup ou fréquemment, donc diffuser plus souvent qu'une fois par minute n'apporte aucune valeur. L'attente aléatoire permet à plusieurs capteurs de coexister.

Même s'il y a collision et que le signal des deux émetteurs est perdu, l'intervalle aléatoire assurera que leurs prochaines diffusions ne se chevaucheront pas. La graine aléatoire pour cet intervalle est définie à partir d'un analogRead sur un port analogique inutilisé qui renverra des valeurs aléatoires pour garantir qu'aucun émetteur ne suit le même motif.

L'exemple de code générant la sortie ci-dessus est réglé pour utiliser Fahrenheit. Vous pouvez voir l'identifiant TF:60.79 dans la chaîne de message indiquant que mon laboratoire est effectivement juste en dessous de 61 degrés. Cependant l'humidité relative RH:44.00 est un confortable 44%. On pourrait déduire de l'environnement frais et humide que mon laboratoire est dans mon sous-sol. On aurait raison.

Les émetteurs sont réglés pour attendre 2 à 5 minutes entre les diffusions par défaut. Si vous souhaitez accélérer cela pour le débogage, modifiez la valeur delay() à la fin du croquis pour qu'elle soit plus comme 5000 (ms). Il est fortement recommandé de remettre cette valeur et de re-téléverser le code sur vos émetteurs quand vous êtes prêt pour une utilisation à plein temps.

La carte réceptrice sera responsable de recevoir le message diffusé sur son composant récepteur RF et d'envoyer ce message via des fils série au Raspberry Pi. La carte Arduino est utilisée pour recevoir le signal pour deux raisons très importantes. Le code VirtualWire utilise la nature temps réel de l'Arduino pour gérer la modulation et la démodulation du signal.

Cela signifie que l'unité réceptrice doit fonctionner à la même fréquence. De plus, il y a peu de place pour le gigue sur le processeur récepteur, auquel le Raspberry Pi est sujet, en raison de son système d'exploitation préemptif, non temps-réel. La comparaison des coûts d'un Arduino Pro Mini plus le module récepteur RF à celui d'un module Zigbee qui pourrait parler directement au Raspberry Pi a révélé que l'utilisation d'un Arduino externe restait assez économique.

À ce moment, n'attachez PAS les fils 5V et masse du Pi à la plaque d'essai. Gardez les fils de liaison à portée de main, mais vous ne voulez pas alimenter l'Arduino à la fois depuis le port USB et le Raspberry Pi.

Notez que le convertisseur de niveau logique dans la liste de matériel ci-dessus n'est pas exactement le même que celui dans la bibliothèque Fritzing, mais les broches sont bien étiquetées, juste à des endroits différents. Assurez-vous absolument que les bons fils sont connectés aux bonnes broches sur le convertisseur de niveau logique réel.

Ce composant est requis pour convertir le signal série 5V de l'Arduino en signal série 3.3V du Raspberry Pi et ne pas endommager le Pi. Voir l'image ci-dessous pour une aide supplémentaire.

Pour plus de détails : Building a Wireless Sensor Network in Your Home

Processus de fabrication

  1. Changer de réseau de capteurs sans fil : 6 considérations clés pour la migration technologique
  2. Comprendre les réseaux de capteurs sans fil faible puissance : Piloter des solutions IoT efficaces
  3. Capteur sans fil fiable pour longues allées – Intégration facile Raspberry Pi
  4. Déployer un réseau de capteurs sans fil dans un moulin à grain du 18e siècle
  5. Déploiement et gestion de réseaux de capteurs sans fil en entreprise
  6. Transfert de données magnétique sans fil Arduino + capteur 3D Infineon TLE493D
  7. Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
  8. Construisez un Stadiomètre Numérique : Suivez la Croissance avec Arduino et Capteur Laser
  9. Réseaux de capteurs sans fil longue portée robustes pour surveillance de données à distance