Anémomètre et girouette connectés

image principale Anémomètre et girouette connectés

Difficulté:

Un projet d’objet connecté à base d’ESP8266 pour serveur domotique


Dans ce tutoriel, je vous propose de réaliser un anémomètre connecté (avec sa girouette). Tous les éléments seront à réaliser par impression 3D. Pour rendre l’objet plus compact, j’ai opté pour un module ESP8266 Wemos D1 mini. La vitesse du vent sera mesurée à l’aide d’un capteur à effet hall (US1881). La direction du vent sera mesurée à l’aide d’un encodeur optique fabriqué à l’aide de 5 phototransistors. Les données pourront être récupérées sur un serveur domotique (par exemple jeedom) à l’aide du protocole MQTT.


Pour les débutants, c’est un projet très complet pour découvrir des nombreuses choses :
– Apprendre la conception à l’aide d’un logiciel de CAO. J’ai utilisé Autodesk Fusion 360 qui est gratuit pour les étudiants et les enseignants
– Passer de la conception à la réalisation par impression 3D.
– Réaliser un compte tour sans contact à l’aide d’un capteur à effet Hall
– Réaliser un encodeur optique de position angulaire à l’aide de DEL (Led) et de phototransistors
– Un peu de programmation Arduino/ESP8266
– Apprendre comment récupérer des données envoyées par l’objet sur un serveur domotique

Matériel :

Budget : Non défini

  • Pour réaliser cet objet connecté vous aurez besoin du matériel suivant :
  • – 2 aimants 3x6mm néodymes
  • – 5 Leds jaunes (ou rouge, ou verte)
  • – 5 phototransistors, par exemple Vishay TEPT4400
  • – 5 résistances 10 Kohms (brun – noir – orange)
  • – Une plaque perforée découpée à la dimension 46x42mm
  • – De la gaine thermo-rectractable diamètre 2,5mm
  • – Des fils de couleur 22AWG (0.2mm2)
  • – 4 roulements à bille 5mm x 10mm x5mm
  • – Une tige filetée diamètre 5mm x 105mm (axe girouette)
  • – Une tige filetée diamètre 5mm x 75mm (axe anémomètre)
  • – De la tige fileté diamètre 4mm. Environ 500mm à découper en 4 tiges de 125mm.
  • – 10 écrous M4
  • – 4 écrous M5
  • – 2 écrous frein M5
  • – 1 écrou M6
  • – 1 vis M6x30
  • – 3 vis M3*20
  • – 3 écrous M3
  • – Un capteur à effet hall US1881 (disponible ici)
  • – Une carte ESP8266 avec un module ESP-12E ou ESP-12F. Tous les fichiers STL à imprimer en 3D ont été conçus pour une Wemos D1 mini. (disponible ici)

Etape 1 : Conception 3D à l’aide d’Autodesk Fusion 360

Fusion 360 est un logiciel de CAO que vous pouvez utiliser gratuitement si vous êtes étudiant ou enseignant. Ce qui est dommage c’est qu’il y a encore peu de temps Fusion 360 était également gratuit pour les Makers et les petites entreprises…espérons qu’Autodesk reviendra en arrière. Pour récupérer Fusion 360, allez sur cette page http://www.autodesk.com/products/fusion-360/overview

Voici comment l’anémomètre est construit (du haut vers le bas). Une capture d’écran illustre chaque composant ou sous-ensemble
1. Une hélice composée de trois branches. L’axe de l’anémomètre est réalisé par une tige filetée de diamètre 5mm (facile à acheter en magasin de bricolage).
2. Le boitier supérieur permet de loger le module ESP ainsi qu’une batterie (dans la prochaine version).
3. L’axe de l’anémomètre est guidé par deux roulements à bille. Le 1er au niveau du capot supérieur, le second au niveau de la platine de liaison.
4. Sur l’axe de l’anémomètre, on viendra visser le support pour les 2 aimants
5. Le détecteur à effet Hall US1881 vient de loger sur un support qui permet de maintenir la Wemos en position
6. La platine de liaison permet :
– De relier les deux boitiers ensemble
– De fixer les 5 phototransistors permettant de déterminer la position de la girouette
– De guider les axes (anémomètre et girouette) à l’aide de roulements à bille.
7. Le boitier inférieur permet de positionner la plaque support pour les Led de l’encodeur
8. Le support permet de positionner et fixer les Led de l’encodeur optique de position
9. Le disque d’encodage de position vient se visser sur la tige filetée de l’axe de la girouette
10. La girouette est composée de deux demi-coques entre lesquelles vient de fixer la flèche

Cette première conception comporte encore pas mal de défauts (absence d’étanchéité, positionnement moyen des boitiers…) mais il est parfaitement fonctionnel.

J’ai exporté le modèle CAO dans les formats f3d (format propre à Fusion 360) et STEP. Si vous avez besoin d’un autre format, n’hésitez pas à me le demander dans les commentaires.

Etape 2 : Réalisation du circuit à base d’ESP8266

Pour la partie Arduino, je vous propose d’utiliser le module ESP8266 Wemos D1 mini qui coute environ 5€ mais vous pouvez choisir n’importe quel autre module NodeMCU. Il faudra modifier a conception du boitier pour tenir compte des dimensions de votre carte. Comme je n’aime pas trop attendre la fin de l’impression 3D, j’ai toujours tendance à trop compacter…

Le circuit est constitué de deux blocs :
– Le premier bloc constitue l’encodeur de position angulaire. On alimente 5 Leds directement sur la broche 3V de la Wemos (ce qui permet d’économiser 5 résistances et gagner en place). Le phototransistor fonctionne comme un interrupteur. Il passe à l’état Bas (LOW) lorsque suffisamment de lumière est captée. La plus grande broche est reliée au GND. Une résistance de 10 kohms est placée entre l’alimentation 5V et la plus petite broche sur lequel on viendra également récupérer le signal sur une entrée numérique de l’ESP (ou de l’Arduino).
– Le second circuit permet de mesurer la vitesse du vent en comptant le nombre de tour que réalise l’hélice de l’anémomètre. Pour cela on utilisera un capteur à effet hall US1881. Il est très facile à trouver sur ebay et ne coûte pas très cher (environ 1,80€ pièce). Il fonctionne également comme un interrupteur. Seul problème il faut “réinitialiser”, c’est à dire qu’il est nécessaire de ré-inverser le champ magnétique en faisant passer un second aimant dont les pôles sont inversés par rapport à l’autre. L’US1881 possède 3 broches dont voici le branchement (faces inclinées face à vous) :
* La broche de gauche au +5V
* La broche centrale doit être reliée au GND.
* La broche de droite permet de récupérer l’état du capteur sur une entrée numérique de l’ESP
* Reliez les deux broches extérieures par une résistance de 10 kohms
* Isolez les broches extérieures avec de la gaine thermo

Suivez le schéma de branchement pour fabriquer le circuit sur la plaque perforée préalablement découpée (largeur 46mm x hauteur 42mm). Je vous conseil de ne pas souder la Wemos directement sur la plaque perforée de manière à pouvoir la débrancher facilement du circuit en cas de problème. Le téléversement est quelque fois capricieux et il faut retirer la carte du circuit pour pouvoir le faire.

Etape 3 : Câblage de l’éclairage de l’encodeur angulaire

Soudez les Leds en série comme sur la photo. Utilisez de la gaine thermo-rectractable pour isoler les broches du circuit négatif (par exemple). Soudez deux fils d’environ 10cm pour l’alimentation des Leds. Collez les Leds. Attention au moment du collage. Les colles peuvent être conductrices, ne collez pas la led coté collerette.

Pour choisir la couleur des Leds, il faut regarder le spectre de sensibilité du phototransistor. Le Vishay TEPT4400 est le plus sensible à 580nm environ ce qui correspond au jaune mais son spectre très large permet d’utiliser presque n’importe quelle couleur de Led.
Documentation technique : http://www.vishay.com/photo-detectors/list/product-81341/

Procédez de même pour le circuit des phototransistors. La plus grande broche doit être reliée au GND (l’inverse d’une Led). Isolez au moins une broche à l’aide de gaine thermo pour chaque phototransistor. Terminez le circuit en venant souder chaque phototransistor sur la platine perforée. Commencez par le phototransistor du bit0 (par exemple en face du bras de fixation) puis continuez à souder les autres phototransistor en tournant dans le sens horaire.

Etape 4 : Programme Arduino (ESP8266)

Vous pouvez récupérer le programme Arduino de ce projet sur github à cette adresse https://github.com/projetsdiy/anemometre-connect-esp8266

Le programme permet dans cette version de réaliser les fonctions suivantes :
– Se connecter à votre réseau WiFi
– Se connecter à un Broker Mosquitto. Si vous découvrez, voici un article de présentation
– Mesurer la vitesse du vent durant 5 secondes
– Mesurer la direction du vent
– Publier à l’aide du protocole MQTT sur le broker Mosquitto la vitesse du vent en km/h, m/s ainsi que la direction du vent

Toutes les broches nécessaires se trouvent au début du programme dans des variables distinctes. J’ai également utilisé le repérage des broches de NodeMCU. Avant de téléverser le programme, n’oubliez pas de modifier les variables suivantes
#define wifi_ssid “SSID”
#define wifi_password “MOTDEPASSE”
#define mqtt_server “IPSERVEURMQTT”
#define mqtt_user “guest”
#define mqtt_password “guest”

Vous aurez peut être besoin d’ajouter les librairies ESP8266WiFi et pubsubclient à votre IDE Arduino.

Si vous découvrez la Wemos D1 mini, voici un article de présentation http://www.projetsdiy.fr/wemos-d1-mini-esp8266-test/

Si vous rencontrez des difficultés ou que vous avez besoin de réinstaller le firmware d’origine, vous pouvez aussi trouver des infos dans cet article http://www.projetsdiy.fr/esp-01-esp8266-flasher-firmware-origine/

Etape 5 : Fabrication des éléments par impression 3D

Les fichiers STL se trouvent également dans le projet github. Je possède un imprimante 3D Dagoma #discovery200. Si vous débutez en impression 3D et en CAO, voici un article pour vous aider à exporter vers Cura pour générer le fichier gcode http://www.projetsdiy.fr/dagoma-discovery200-impression-3d-fusion-360-cura/

L’anémomètre est constitué de 17 pièces à imprimer. Vous aurez besoin d’environ 62m de fils de diamètre 1,75mm (soit environ 183g) et un peu plus de 10 heures 30 minutes d’impression.

Etape 6 : Assemblage

Pour assemblez facilement l’anémomètre, suivez ces étapes
1. Assemblez les sous-ensembles
1.1 La flèche de la girouette en vissant les deux coques ainsi que la flèche. Passez l’axe (tige fileté diamètre 5) en le laissant dépasser de la hauteur d’un écrou M5 frein puis serrez. Vissez un écrou frein M5 en bas et bloquez la flèche par un second écrou
1.2 L’hélice de l’anémomètre. Commencez par insérer un écrou M5 dans le logement du support inférieur et 3 écrous M3. Insérez les hélices dans le logement. Refermez le boitier et fixez les hélices à l’aide de 3 vis M3. Vissez l’axe de l’anémomètre et bloquez le avec un écrou frein M5 (au dessus).
1.3 Insérez le premier aimant dans un logement. Prenez le second aimant et cherchez la face opposée. Insérez l’aimant dans le 2nd logement dans cette position. Si le capteur us1881 ne fonctionne pas c’est que la face n’est pas correcte.
1.4. Insérez un roulement dans le capot supérieur
1.5 Insérez l’axe de l’anémomètre dans le capot supérieur et vissez un écrou M5 pour l’axe de l’anémomètre dépasse de 52mm. Vissez le support d’aimants et bloquez le avec un autre écrou.
1.6 Insérez (en force) 2 roulements dans le support central et insérez ce dernier dans le logement de la plaque de liaison.
2. Insérez le roulement dans le logement du boitier de la girouette. Elle est montée serrée dans le logement.
3. Insérez l’axe de la girouette dans le boitier. Réglez la hauteur pour que l’axe viennent à la même hauteur que le bord supérieur du boitier
4.Utilisez 2 écrous M5 pour bloquer l’axe de la girouette dans cette position (vissez jusqu’au roulement)
5. Insérez le support de Leds dans le boitier en laissant sortir les fils d’alimentation.
6. Insérer 2 tiges fileté (diam. 4). Une de chaque coté du bras de fixation.
7. Vissez 2 écrous M4 pour maintenir le support de Led en position
8. Faites passer les fils d’alimentation des Leds par le trou de la platine de liaison.
9. Soudez les fils d’alimentation des Leds de l’encodeur, le pole positif sur le +3V de l’ESP8266.
10. Visser le disque d’encodage en laissant environ 2mm de filetage. Collez le disque sur l’axe à l’aide d’une colle forte
11. descendez la plaque de liaison contre le boitier de la girouette
12. Insérez le capteur à effet Hall dans son logement. Prenez garde à ne pas tordre les broches.
13. Insérez le boitier supérieur dans les tiges filetées et faites le descendre en insérant la carte électronique dans la glissière.
14. Mettez en place le capteur en faisant glisser le support sur la tige fileté
15. Terminez en mettant en place le bloc de maintient de la carte
16. Mettez en place le capot en insérant l’axe de l’anémomètre dans le roulement.
17. Mettez en place les 2 autres tiges filetées et vissez 4 écrous M4 pour fermer le boitier
18. Vissez l’arbre de fixation dans le support mural à l’aide d’un écrou et d’une vis M6

Ouf!

Etape 7 : Etalonnage de l’anémomètre et de la girouette

Pour étalonner l’anémomètre, le plus simple lorsque l’on a pas de soufflerie à la maison (!?!), c’est de prendre la voiture ! En mesurant plusieurs fois le nombre de rotation à différentes vitesses, on peut en déduire la vitesse du vent aux autres. J’en convient ce n’est pas d’une grès grande précision mais on reste dans le domaine du DIY après tout.
Voici donc les caractéristiques de cet anémomètre :
– Vitesse minimale du vent : environ 2m/s soit environ 8km/h
– Relation entre la vitesse de rotation et la vitesse du vent (en km/h) : V = ( nbrTour + 6,174 ) / 8,367 (avec un taux d’erreur d’environ 1,5%)
– Vitesse étalonnée jusqu’à 100 km/h

Pour étalonner la girouette, je n’ai pas encore mis en équation l’encodeur. Pour cette première version, je vous propose de repérer la position de l’encodeur par rapport à l’orientation réelle de la girouette. Utilisez la boussole de votre smartphone. L’avantage de cette méthode, c’est qu’il n’y a qu’un test à faire, donc c’est facile à programmer.
Pour découvrir comment fonctionne l’encodeur angulaire, lisez cet article plus détaillé http://www.projetsdiy.fr/encodeur-angulaire-optique-phototransistor-arduino-vishay-tept4400/

Etape 8 : Affichage des mesures sur jeedom à l’aide de MQTT

A chaque mesure la Wemos publie sur le broker Mosquitto plusieurs valeurs que l’on peut facilement récupérer sur jeedom. Pour plus de détail, je vous renvoi vers cet article qui explique étape par étape comment faire http://www.projetsdiy.fr/jeedom-mqtt-objets-connectes-domotique-diy/

Etape 9 : Conclusions et évolutions

J’espère que vous avez apprécié ce tutoriel. Cette première version comporte encore quelques défauts de jeunesse. Dans la prochaine version, j’aimerai améliorer les points suivants :
– La conception pour rendre l’anémomètre étanche
– Remplacer l’encodeur optique par un capteur magnétique moins gourmand en énergie que les Led et plus facile à programmer. Je suis tombé sur un os pour piloter l’alimentation des Leds avec un transistor IRF520. La tension d’alimentation des Leds est trop basse (2.3V), rendant la détection par phototransistor aléatoire. Ca permettrait également de faire fonctionner l’anémomètre sur batterie ou sur pile 9V en gérant le sleep mode de l’ESP.
– Et pourquoi pas se lancer dans un anémomètre par ultrason

N’hésitez pas à me contacter si vous avez des questions ou des suggestions.

A très bientôt pour un nouveau projet !

Sources :

http://www.projetsdiy.fr, http://www.projetsdiy.fr/projet-diy-anemometre-girouette-objet-connecte-esp8266


Bonjour, bon tutoriel Concernant la source d'alimentation de l'anemometre peut-on mettre une pile 9v ?

Bonjour, est ce que vous pourriez m'envoyer plus de photos du montage ? 

Bonjour,

je suis pret pour me lancé mais je me demande s'il y a une version plus récent étanche?

Ces tutoriels devraient vous plaire

vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.
vignette L’imprimante 3D pour 60€: EWaste
L’imprimante 3D pour 60€: EWaste
vignette Arduino et Porte automatique de poulailler
Arduino et Porte automatique de poulailler
avaatar Projetsdiy

Projetsdiy

Suivre

Vues: 10466
Mis en favoris: 14

Découvrez d'autres tutoriels de

Projetsdiy

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers