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

Station météo sans fil Arduino

Composants et fournitures

Arduino Due
ou Arduino Mega.
× 1
3.2" TFT HX8357C
× 1
Module d'horloge temps réel DS3231
× 1
Capteur de température DHT22
× 1
SparkFun Transceiver Breakout - nRF24L01+
× 1
Planche à pain (générique)
× 1
Male-Header 36 Position 1 Row - Long (0,1")
7 broches
× 1
Câbles de raccordement (générique)
plusieurs
× 1
Arduino Nano R3
× 1
Xiaomi Powerbank
× 1

À propos de ce projet

Construire une station météo sans fil est une excellente expérience d'apprentissage. Lorsque vous aurez terminé de construire ce projet, vous aurez une meilleure compréhension du fonctionnement des communications sans fil, du fonctionnement des capteurs et de la puissance de la plate-forme Arduino. Avec ce projet comme base et l'expérience acquise, vous pourrez facilement construire des projets plus complexes à l'avenir.

Une station météorologique est un appareil qui collecte des données relatives à la météo et à l'environnement à l'aide de nombreux capteurs différents. Nous pouvons mesurer beaucoup de choses comme :

  • Température
  • Humidité
  • Vent
  • Pression barométrique
  • Indice UV
  • Pluie

Dans la station météo que nous allons construire, nous allons mesurer la température et l'humidité à deux endroits et afficher la date et l'heure actuelles. Construire une station météo est extrêmement simple. Mais un fabricant peut-il construire une unité avec un écran TFT couleur et des fonctionnalités qui correspondent à celles d'une unité commerciale ? La réponse est oui! Avec la puissance des logiciels et du matériel open source, on peut facilement construire cette impressionnante station météo !

Le projet se compose de deux parties :l'émetteur et le récepteur.

L'émetteur mesure la température et l'humidité, et envoie les données sans fil au récepteur. Le récepteur mesure la température et l'humidité, reçoit les données du capteur à distance et affiche tout sur un grand écran TFT couleur.

Construisons ce projet !

Étape 1 :Obtenez toutes les pièces

Les pièces nécessaires pour construire ce projet sont les suivantes :

  • Arduino Due ▶ http://educ8s.tv/part/ArduinoDue
  • Arduino Mega ▶ http://educ8s.tv/part/ArduinoMega
  • Arduino Nano ▶ http://educ8s.tv/part/ArduinoNano
  • Écran TFT 3.2" ▶ http://educ8s.tv/part/32TFT
  • DHT22 ▶ http://educ8s.tv/part/DHT22
  • NRF24L01 http://educ8s.tv/part/NRF24L01
  • DS3231 RTC http://educ8s.tv/part/DS3231
  • Planche à pain ▶ http://educ8s.tv/part/SmallBreadboard
  • Fils ▶ http://educ8s.tv/part/Wires
  • Épingles d'en-tête ▶ http://educ8s.tv/part/HeaderPins
  • Xiaomi Powerbank ▶ http://educ8s.tv/part/Powerbank

Le coût du projet est d'environ 40$. Vous pouvez réduire le coût du projet de 5$ si vous utilisez l'Arduino Mega au lieu de l'Arduino Due. J'ai choisi d'utiliser l'Arduino Due pour le récepteur car il est très rapide et il a beaucoup de mémoire. Cela va être très utile à l'avenir car nous ajouterons plus de fonctionnalités au projet.

Étape 2 :Capteur de température et d'humidité - DHT22

Le DHT22 est un capteur de température et d'humidité très populaire. Il est bon marché, facile à utiliser et les spécifications revendiquent une bonne précision et exactitude.

Les capteurs DHT sont constitués de deux parties :un capteur d'humidité capacitif et une thermistance. Il y a aussi une puce à l'intérieur qui effectue une conversion analogique-numérique et émet un signal numérique avec la température et l'humidité. Le signal numérique est assez facile à lire en utilisant n'importe quel microcontrôleur.

Caractéristiques du DHT22

  • Faible coût
  • Alimentation 3 à 5 V et E/S
  • Utilisation de courant max. de 2,5 mA pendant la conversion
  • Lectures d'humidité de 0 à 100 % avec une précision de 2 à 5 %
  • Lectures de température de -40 à 125 °C ± 0,5 °C de précision
  • Lent

La connexion avec Arduino est extrêmement simple. Nous connectons la broche du capteur avec le signe + à la sortie 5V ou 3,3V de l'Arduino. Nous connectons la broche du capteur avec le signe - à la TERRE. Enfin, nous connectons la broche OUT à n'importe quelle broche numérique de l'Arduino.

Pour utiliser le capteur DHT22 avec Arduino, nous devons utiliser la bibliothèque DHT.

https://github.com/adafruit/DHT-sensor-library

Étape 3 : le module d'horloge temps réel DS3231

Le module Horloge temps réel DS3231 est comme son nom l'indique une horloge temps réel. Grâce à sa batterie, il peut garder le temps pendant des années car sa consommation d'énergie est minimale.

Le coût du module est extrêmement bas; il coûte environ 2$ avec la batterie ! Nous allons l'utiliser pour garder le temps dans notre projet de station météo.

Étape 4 :NRF24L01+ :Modules sans fil

Le module NRF24L01 est un module émetteur-récepteur bidirectionnel à faible coût. Le coût de celui-ci est inférieur à 3$! Il fonctionne sur la bande 2,4 GHz et peut atteindre un débit de 2 Mbits ! Impressionnant n'est-ce pas ? Il utilise l'interface SPI pour communiquer avec Arduino, il est donc très facile à utiliser avec. Nous devons connecter 7 des 8 broches du module afin de le faire fonctionner avec Arduino.

Malheureusement, nous ne pouvons pas brancher le module dans la maquette, nous allons donc utiliser des fils mâle-femelle afin de connecter le module à Arduino. La broche numéro 1 du module est GND. Vous devez le connecter à Arduino Ground. La broche suivante est Vcc. Vous devez le connecter à la sortie 3.3V de l'Arduino Uno. Fais attention! Ne le branchez pas au 5V ou vous détruirez votre module ! La troisième broche est nommée CE et vous pouvez la connecter à n'importe quelle broche numérique de votre choix. Dans cet exemple, je vais le connecter à la broche numérique 7. La broche 4 est CS et vous pouvez également vous connecter à n'importe quelle broche numérique. Je vais me connecter à la broche numérique 8. La broche suivante est SCK qui va à la broche numérique 13 de l'Arduino Uno. La broche suivante est MOSI qui va à la broche numérique 11, et la dernière broche de MISO qui va à la broche numérique 12. C'est tout !

Afin d'être facile à utiliser, le module avec Arduino nous devons utiliser la bibliothèque suivante :https://github.com/TMRh20/RF24

Si vous n'avez pas encore utilisé les modules NRF24L01+, veuillez consulter la vidéo ci-jointe afin de voir comment l'utiliser en créant un projet simple. Cela vous aidera à comprendre son fonctionnement.

Étape 5 : Construire le transmetteur

Construisons d'abord l'émetteur. C'est très simple.

Pour l'émetteur nous utilisons :

  • Un Arduino Nano
  • Un capteur DHT22
  • Un module sans fil NRF24L01+
  • Une planche à pain
  • Quelques fils

Nous connectons la broche de sortie du capteur à la broche numérique 4 de l'Arduino Nano. Nous connectons le Ground et le Vcc et nous sommes prêts. Il ne nous reste plus qu'à connecter le module sans fil NRF24L01.

Veuillez le fixer à l'aide des épingles qui sont montrées dans la troisième image. Pour plus de détails, veuillez regarder la vidéo détaillée que j'ai jointe à l'étape précédente.

Ça y est, votre émetteur est prêt. Passons maintenant au récepteur.

Étape 6 : Construire le récepteur

Afin de construire le récepteur, nous avons besoin des pièces suivantes :

  • Un Arduino Due ou un Mega
  • Un module d'horloge temps réel DS3231
  • Un capteur de température et d'humidité DHT22
  • Un module sans fil NRF24L01+
  • Un écran TFT couleur 3,2"
  • Une planche à pain
  • 7 broches d'en-tête
  • Quelques fils

Au début, nous plions 7 broches d'en-tête et nous les plaçons sur certaines des broches Arduino Due. Nous en avons besoin d'un à la terre et d'un à 3,3V. Nous avons besoin de deux sur les broches I2C. Nous avons besoin des 3 broches numériques restantes de 6 à 8. Nous devons également souder trois fils aux broches SPI matérielles des broches Arduino Due. Nous avons besoin de MOSI, MISO et SCK. Vérifiez attentivement le schéma. Nous connectons les fils aux broches de l'en-tête et nous sommes prêts à attacher l'écran.

Connexion du DS3231

  • Broche VCC sur la sortie 3,3 V d'Arduino
  • Broche GND au GND d'Arduino et
  • Broche SDA (Serial Data Line) à la broche SDA d'Arduino et
  • Broche SCL (Serial Clock Line) vers la broche SCL d'Arduino

Connexion du capteur DHT22

  • Broche VCC sur la sortie 3,3 V d'Arduino
  • Broche GND au GND d'Arduino et
  • broche de sortie vers la broche numérique 8 d'Arduino

Connexion du module NRF24L01

  • Broche GND au GND d'Arduino
  • Broche VCC vers Arduino 3.3V
  • 3ème broche à la broche numérique 6 d'Arduino
  • 4ème broche à la broche numérique 7 d'Arduino
  • La 5ème broche à la broche SCK que nous avons soudée
  • 6ème broche à broche MOSI que nous avons soudée
  • La 7e broche à la broche MISO que nous avons soudée

Étape 7 :Le code de l'émetteur

Tout d'abord, nous devons télécharger la bibliothèque RF24 afin de nous faciliter la vie lorsque nous travaillons avec les modules sans fil NRF24L01. Nous avons également besoin de la bibliothèque DHT pour le capteur DHT22.

  • Bibliothèque DHT22 :https://github.com/adafruit/DHT-sensor-library

Voyons d'abord le code de l'émetteur. Il envoie une structure de données simple qui contient deux flotteurs, la température et l'humidité.

Afin d'établir un lien de communication, nous devons créer un « tuyau » entre les deux modules. Ce tuyau doit avoir une adresse. Les deux modules doivent écrire et lire à partir du même tube pour communiquer. C'est la première chose que nous définissons dans notre code. Nous définissons l'adresse du tuyau sur « 0 ». Ensuite, nous définissons le canal sur lequel nous voulons communiquer avec l'autre module. La puce NRF24L01 prend en charge 126 canaux différents. Les deux modules doivent utiliser le même canal pour communiquer entre eux. Dans cet exemple, j'utilise le canal 115. Ensuite, je définis que je veux utiliser la puissance d'émission maximale offerte par le module. Il utilise plus de puissance mais étend la portée de la communication. Ensuite, nous définissons le débit de données de la transmission. Je l'ai réglé sur 250Kbs, qui est le débit de données le plus bas possible afin d'obtenir une meilleure portée. L'étape suivante consiste à ouvrir le tuyau afin d'y écrire plus tard.

Dans la fonction de boucle, nous lisons les valeurs de température et d'humidité du capteur, nous enregistrons ces données dans la structure de données, puis nous envoyons la structure de données en écrivant la structure de données dans le tuyau. C'est ça. Vous pouvez trouver le code joint dans ce tutoriel.

FU361QHIQFCEYSE.ino

Étape 8 :Le code du destinataire

Voyons maintenant le code du récepteur. Nous avons besoin de 4 bibliothèques. Nous devons d'abord télécharger la bibliothèque pour l'affichage à partir de ce lien :

AFFICHAGE de la bibliothèque :https://github.com/Bodmer/TFT_HX8357_Due

Après avoir téléchargé la bibliothèque, vous devez ouvrir le fichier User_Setup.h. Commentez la ligne 13 et décommentez la ligne 14, car l'affichage que nous avons utilise le pilote HX8357C. Maintenant, nous pouvons continuer avec les 3 autres bibliothèques. Nous avons besoin d'une bibliothèque pour l'horloge temps réel, une pour le capteur DHT22 et enfin une pour le module sans fil.

  • NRF24L01 :https://github.com/TMRh20/RF24
  • DHT22 :https://github.com/adafruit/DHT-sensor-library
  • DS3231 :https://github.com/SodaqMoja/Sodaq_DS3231

Jetons un coup d'œil au code. La première chose que nous devons faire est de régler l'heure sur le module d'horloge temps réel s'il n'est pas déjà réglé. Pour ce faire, entrez la date et l'heure actuelles dans le setRTCTime fonction, décommentez le setRTCTime appelez la fonction sur la ligne 54 et téléchargez le programme sur Arduino. Maintenant, l'heure est réglée. Mais alors nous devons commenter setRTCTime appelez à nouveau la fonction et téléchargez à nouveau le programme sur Arduino.

Le code du récepteur fonctionne comme suit. Dans la fonction de configuration, nous initialisons tous les capteurs et les modules et nous imprimons l'interface utilisateur. Ensuite, à la fonction de boucle, nous vérifions en permanence les nouvelles données sans fil. S'il y a de nouvelles données, nous sauvegardons ces données dans des variables et les imprimons à l'écran. Nous lisons la température et l'humidité une fois par minute et nous ne mettons à jour l'affichage qu'en cas de changement des valeurs. De cette façon, nous réduisons encore plus le scintillement de l'affichage ! J'ai également préparé une version du code avec la température affichée en degrés Fahrenheit. Vous pouvez trouver les deux versions du code jointes sur ce tutoriel.

F053BTXIQFCEZ09.ino FNV3X4LIQFCEZ0C.ino

Étape 9 :Tester le projet

La dernière étape pour tout mettre sous tension et voir si tout fonctionne comme prévu. Si c'est le cas, en haut de l'écran, la date et l'heure actuelles sont affichées. Au bas de l'écran, vous pouvez voir la température et l'humidité de la télécommande et du capteur local.

Si aucune donnée n'est affichée pour le capteur à distance , rapprochez l'émetteur - il est peut-être hors de portée. Si le problème persiste, vérifiez encore une fois toutes les connexions - il doit y avoir quelque chose qui ne va pas.

Comme vous pouvez le voir, ce projet est une excellente démonstration de ce dont le matériel et les logiciels open source sont capables. En quelques heures, on peut construire un projet aussi impressionnant ! Bien sûr, ce n'est qu'un début. Nous pouvons ajouter beaucoup plus de fonctionnalités au projet. Je vais bientôt ajouter un bouton, afin que nous puissions afficher des graphiques, et avoir différents modes. Nous pouvons également ajouter plus de capteurs, d'enregistrement de données, de connexion Internet, etc. Nous utilisons l'Arduino Due, nous avons donc beaucoup de mémoire pour implémenter beaucoup plus de choses. J'aimerais avoir votre avis sur ce projet. Comment voulez-vous le voir évoluer ? Veuillez publier vos commentaires ou idées dans la section commentaires ci-dessous !

Si vous voulez plus de détails, regardez la vidéo YouTube dans l'introduction ou visitez mon site Web. Merci d'avoir jeté un coup d'œil !

Code

Github
https://github.com/adafruit/DHT-sensor-libraryhttps://github.com/adafruit/DHT-sensor-library
Github
https://github.com/TMRh20/RF24https://github.com/TMRh20/RF24
Github
http://AFFICHAGE : %20https://github.com/Bodmer/TFT_HX8357_Duehttp://DISPLAY :%20https://github.com/Bodmer/TFT_HX8357_Due
Github
https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

Processus de fabrication

  1. Station météo Raspberry Pi 2
  2. Station météo Raspberry Pi
  3. Weather Station V 2.0
  4. Dés numériques Arduino
  5. Iron Man
  6. Trouvez-moi
  7. Bras robotique Arduino imprimé en 3D
  8. Contrôle de l'humidificateur Arduino
  9. Station météo portable Arduino (AWS) à 10 $