Etape 1: Le noeud de capteur
Construire le nœud de capteur
Nous allons commencer ce projet en construisant notre noeud capteur. Nous allons mettre ensemble le capteur de température tout d’abord, et puis une fois que nous avons testés qui et son travail nous incorporera la communication sans fil. La première étape consiste à s’assurer que vous avez tous les bibliothèques installées.
Les deux que vous avez besoin sont ici :
Installer ceux et assurez-vous que vous disposez d’un adaptateur FTDI et les pilotes sont correctement installés.
Une fois que c’est fait vous devriez lire ce guide de démarrage rapide pour le Moteino, il y a quelques renseignements utiles là.
Une fois cela fait, souder les broches d’en-tête sur la carte de Moteino car nous va être brancher directement sur une maquette et couper un morceau de fil à 6,83 (743mm) longtemps à utiliser comme notre antenne. Souder au trou d’antenne sur le Moteino. Voir les images sur cette page et le site Moteino pour référence. Une fois que ceux qui sont soudés et vous avez correctement interfacé avec le Moteino (essayez de télécharger le croquis de Blink avec la broche de LED la valeur 9), branchez-le sur la maquette, connectez l’alimentation et masse pour les bus de la maquette et nous pouvons commencer la télédétection.
La télédétection
Veuillez consulter le fichier expéditeur-temp.ino qui a le code pour cette partie
Pour la sonde de température, nous utilisons une thermistance. C’est un morceau simple, peu coûteux et assez précis du matériel à l’état solide. Nous allons être coller ce capteur dans un environnement chaud, humide et assez caustique, il est donc important qu’il est capable de résister à ces facteurs environnementaux.
Le capteur que nous utilisons est une 10kOhm époxyde scellé thermistance de Adafruit, qu’ils ont une excellente documentation. Le code que j’utilise est une version légèrement modifiée de la leur. Il est inutile de réinventer la roue, donc s’il vous plaît lire par le biais de leur documentation en plus de ce tutoriel pour plus d’informations sur ce capteur.
Le branchement est super simple, voir le schéma et les images liées à cette page. Nous allons utiliser les entrées analogiques 0.
Le code lui-même se compose principalement de mathématiques que vous n’avez pas besoin de s’inquiéter. La partie mathématique est bouclée dans sa propre fonction parce qu’il est préférable de ne pas le regarder. Le code de l’entrée analogique reprend 5 lectures un court laps de temps et en moyenne pour obtenir une lecture plus stable (ces capteurs peuvent être bruyants). Puis, il fait peu de magie pour transformer cette résistance en température qui nous imprimer le Serial Monitor.
Radio Communication
Veuillez mentionner l’expéditeur-node.ino qui a le code pour cette partie.
Une fois que votre température lisez correctement, nous aurons besoin d’un moyen de les envoyer au récepteur. Faire que, nous utilisons le module Radio RFM69, green chose soudé à l’arrière de votre Moteino. La première chose, assurez-vous que vous disposez d’une antenne soudée au port de l’antenne du Conseil Moteino. Sans l’antenne, le rayon de cette radio est de quelques pouces au lieu de quelques centaines de mètres. Informations sur l’antenne et la plage se trouvent sur le Moteino Site. Toutes les connexions sont déjà faits pour nous, donc nous pouvons simplement initialiser la bibliothèque et commencer à l’utiliser. Pour commencer, je dirais regardant les excellent code de Andy Sigler pour certains super simple envoyer/recevoir des exemples.
Mise en route
Dans le code jusqu'à présent, nous sentant la température. Ce que nous devons faire est de prendre la valeur de la sonde et l’envoyer à travers un autre Moteino qui va être à l’écoute des messages radio. Nous faisons cela par groupement jusqu'à cet élément de données dans un petit paquet et en le passant sur les ondes. Ce paquet est appelé « charge utile ». Une fois la « charge utile » atteint le récepteur, le récepteur envoie un petit message en disant « Reçu votre paquet, tout semble OK ». Cela s’appelle un accusé de réception (en désavantage numérique pour ACK dans le code). Si un accusé n’est pas reçu par l’expéditeur, il va attendre un petit moment et essayez à nouveau d’envoyer. Si elle essaye 5 fois et échoue, il abandonneront. C’est un moyen très important de la création de stabilité et la responsabilisation dans notre communication sans fil car nous avons besoin de savoir si nos messages sont reçus.
Mise sous tension
Pour alimenter le Moteino sans l’ordinateur, que nous allons utiliser une pile de 9 volts, attachée à la broche de VIN de la Moteino. Cette broche envoie la puissance pour le régulateur de tension, qui il étapes jusqu'à 3,3 v pour une utilisation sur la carte.
Consommation d’énergie
Ces nœuds de capteurs étant alimenté par piles, consommation d’énergie est un facteur très important de prendre en considération. Il s’agit d’un un peu au-delà de la portée de ce tutoriel, mais je vais discuter largement ici. Le circuit existant, comme vous le verrez devrait fonctionner correctement, comme c’est, mais il n’y a place pour des optimisations. Chacun des différents composants consomment une quantité d’énergie. Très vite, j’ai fait quelques mesures de courant avec une batterie de 9V alimentant le Moteino.
- un croquis vierge :
- 24mA * 9V = 0,216 watts
- avec le microcontrôleur de dormir (et la radio sur) :
- 16mA * 9V = 0,144 watts
- avec la radio à dormir (et le µC sur) :
- 7.5mA * 9V = 0,0675 watts
- avec radio et µC dormir :
- 4µA * 9V = 0,036 milliwatts
- avec le sommeil et la thermistance est branché :
- 0.16mA * 9V = 1,44 milliwatts
Vous pouvez voir ici que les plus gros porcs du pouvoir sont le microcontrôleur et la radio (évidemment). Tant de ceux que nous pouvons mettre en veille et de réduire la consommation d’énergie de façon spectaculaire. Malheureusement, nous sommes coincés avec la consommation de thermistance sans circuits certains plus avancés. Nous utilisons la bibliothèque faite par jeelabs qui a une grande fonction appelée Sleepy. Je l’utilise donc beaucoup, j’ai extrait et fait ma propre bibliothèque pour que je puisse utiliser juste qu’une fonction sans qu’aucun des autres choses. C’est ici, dans mon github. Sleepy fondamentalement juste remplace la fonction delay().
En fin de compte, nous nous retrouvons avec un circuit qui consomme un nominal ~ 1,5 mW à 9v. Une pile alcaline de type 9 volts batterie a une capacité de 565mAh, qui est de 5 watt heures. Notre capteur consomme à un taux de 0,0015 wattheures. Une bonne règle de base avec des batteries est que seulement 50 % de leur capacité nominale est réellement utilisable. Cela nous laisse avec 2,5 watt heure de capacité disponible. De ces estimations, nous devrions nous attendre à une durée de vie d’environ 1 600 heures, ou environ 2 mois, qui est tout à fait raisonnable pour la portée de ce projet. Ceci, bien sûr, ne prend pas en considération le taux d’autodécharge de la batterie.
Maintenant que nous avons un capteur qui peut vivre sur ses propres pour un laps de temps, il est temps de construire quelque chose qui reçoit ses messages.