Anémomètres à faire soi-même (pour les enfants du groupe préparatoire). Anémomètre fait maison

Il y avait une tâche pour assembler un anémomètre pour un projet afin qu'il soit possible de prendre des données sur un ordinateur via une interface USB. L'article se concentrera davantage sur l'anémomètre lui-même que sur le système de traitement des données qui en découle :

1. Composants

Ainsi, pour la fabrication du produit, les composants suivants étaient nécessaires:
Souris boule Mitsumi — 1 pc.
Balle de ping-pong — 2 pièces.
Un morceau de plexiglas de la bonne taille
Fil de cuivre d'une section de 2,5 mm2 - 3 cm
Recharge pour stylo à bille — 1 pc.
Bâton de bonbons Chupa Chups - 1 pc.
Attache-câble — 1 pc.
Canon creux en laiton 1 pc.

2. Fabrication de la roue

3 morceaux de fil de cuivre de 1 cm de long chacun à un angle de 120 degrés ont été soudés à un canon en laiton. Dans le trou du canon, j'ai soudé un support d'un joueur chinois avec un fil au bout.

J'ai coupé le tube du bonbon en 3 parties d'environ 2 cm de long.

J'ai coupé 2 boules en deux et, à l'aide de petites vis du même joueur et de colle polystyrène (avec un pistolet à colle), j'ai fixé les moitiés de boule aux tubes de sucette.

J'ai mis les tubes avec les moitiés de la balle sur les morceaux de fil soudés et j'ai tout fixé dessus avec de la colle.

3. Fabrication de la pièce principale

L'élément porteur de l'anémomètre est une tige métallique d'un stylo à bille. Dans la partie inférieure de la tige (où le bouchon a été inséré), j'ai inséré le disque de la souris (encodeur). Dans la conception de la souris elle-même, la partie inférieure de l'encodeur reposait contre le corps de la souris, formant un roulement ponctuel, il y avait de la graisse, de sorte que l'encodeur tournait facilement. Mais il fallait fixer la partie supérieure de la tige, pour cela j'ai ramassé un morceau de plastique approprié avec un trou exactement au diamètre de la tige (un tel morceau a été découpé dans le système d'extension du chariot CD-ROMa). Il restait à résoudre le problème pour que la tige de l'encodeur ne tombe pas du palier ponctuel, j'ai donc soudé quelques gouttes de soudure sur la tige directement devant l'élément de retenue. Ainsi, la tige tournait librement dans la structure de retenue, mais ne tombait pas du palier.

La raison pour laquelle le circuit codeur a été choisi est la suivante : tous les articles sur les anémomètres artisanaux sur Internet décrivaient leur fabrication à partir d'un moteur à courant continu issu d'un lecteur, d'un CD-ROM ou d'un autre produit. Le problème avec de tels dispositifs est, d'une part, leur calibrage et leur faible précision aux faibles vitesses de vent, et d'autre part, la caractéristique non linéaire de la vitesse du vent par rapport à la tension de sortie, c'est-à-dire pour transférer des informations vers un ordinateur, il y a certains problèmes, vous devez calculer la loi de variation de tension ou de courant à partir de la vitesse du vent. Lors de l'utilisation d'un codeur, ce problème ne se pose pas, car la dépendance est linéaire. La précision est la plus élevée, car l'encodeur donne environ 50 impulsions par tour de l'axe de l'anémomètre, mais le circuit convertisseur est un peu plus compliqué, dans lequel se trouve un microcontrôleur qui compte le nombre d'impulsions par seconde sur l'un des ports et sorties cette valeur au port USB.

4. Essais et étalonnage

Un anémomètre de laboratoire a été utilisé pour l'étalonnage.

Une station météo ordinaire de marque domestique ou faite maison mesure deux températures: l'humidité (dans la pièce et à l'extérieur), la pression atmosphérique et dispose en outre d'une horloge avec un calendrier. Cependant, une vraie station météo a beaucoup plus - un capteur de rayonnement solaire, un pluviomètre et tout ce qui, en général, n'est nécessaire qu'à des fins professionnelles, à une exception près. Un anémomètre (vitesse et, surtout, direction) est un complément très utile pour une maison de campagne. De plus, les capteurs de vent de marque sont assez chers, même sur Ali Baba, et il est logique de rechercher des solutions faites maison.

Je dois dire tout de suite que si j'avais su à l'avance combien de travail manuel et d'argent dépensé pour des expériences mon idée entraînerait, peut-être que je n'aurais pas commencé. Mais la curiosité l'a emporté, et les lecteurs de cet article ont une chance d'éviter les pièges sur lesquels j'ai dû trébucher.

Pour mesures de la vitesse du vent(anémométrie) il existe des centaines de façons dont les principales sont :

fil chaud,
- mécanique - avec une hélice (plus précisément une roue) ou une roue horizontale à coupelles (anémomètre à coupelle classique) La mesure de la vitesse dans ces cas équivaut à mesurer la vitesse de l'axe sur lequel l'hélice ou la roue est fixée.
- ainsi que les ultrasons, qui combinent des mesures de vitesse et de direction.
Pour mesures de direction moins de façons :
- ultrasons mentionnés ;
- girouette mécanique avec suppression électronique de l'angle de rotation. Il existe également de nombreuses manières différentes de mesurer l'angle de rotation : optique, résistif, magnétique, inductif, mécanique. Soit dit en passant, vous pouvez simplement monter une boussole électronique sur l'arbre de la girouette - c'est juste des moyens fiables et simples (pour la répétition "au genou") de transmettre les lectures à partir d'un axe en rotation chaotique devront encore être recherchés. Par conséquent, nous choisissons davantage la méthode optique traditionnelle.

Lorsque vous répétez l'une de ces méthodes par vous-même, vous devez garder à l'esprit les exigences en matière de consommation d'énergie minimale et d'exposition 24 heures sur 24 (ou peut-être toute l'année ?) Au soleil et à la pluie. Le capteur de vent ne peut pas être placé sous le toit à l'ombre - au contraire, il doit être aussi éloigné que possible de tous les facteurs perturbateurs et "ouvert à tous les vents". L'emplacement idéal est le faîte du toit d'une maison ou, au pire, une grange ou un belvédère, éloigné des autres bâtiments et des arbres. De telles exigences impliquent une alimentation électrique autonome et, évidemment, un canal de transmission de données sans fil. Ces exigences sont dues à certaines "cloches et sifflets" de la conception, qui sont décrites ci-dessous.

À propos de la consommation électrique minimale

Au fait, quelle est la consommation électrique minimale ? Sur la base de piles AA domestiques ordinaires, la consommation moyenne du circuit ne devrait idéalement pas dépasser 1-2 mA. Calculez par vous-même: la capacité d'une pile alcaline AA décente est d'environ 2,5 à 3 Ah, c'est-à-dire qu'un circuit avec la consommation indiquée fonctionnera pendant environ 1 500 à 2 500 heures, soit 2 à 3 mois. En principe, ce n'est pas non plus beaucoup, mais relativement acceptable - vous ne pouvez pas faire moins: soit vous vous ruinez en piles, soit vous devrez utiliser des piles qui devront être chargées encore plus souvent que de changer de piles. Pour cette raison, lors de l'élaboration d'un tel circuit, nous sommes obligés d'attraper toutes les miettes: le mode d'économie d'énergie obligatoire, des circuits soigneusement pensés et la séquence d'actions dans le programme. De plus, nous verrons que dans la conception finale, je ne remplissais toujours pas les conditions requises et devais utiliser la batterie.


Une histoire informative sur la façon dont j'ai essayé de reproduire la méthode la plus moderne et la plus avancée - l'échographie, et j'ai échoué, je le raconterai une autre fois. Toutes les autres méthodes impliquent une mesure séparée de la vitesse et de la direction, nous avons donc dû bloquer deux capteurs. Après avoir étudié théoriquement les anémomètres à fil chaud, je me suis rendu compte que nous ne pourrions pas acheter un élément sensible prêt à l'emploi de niveau amateur (ils sont disponibles sur le marché occidental!), Mais pour l'inventer vous-même - pour vous impliquer dans le prochaine R&D avec la perte de temps et d'argent correspondante. Par conséquent, après réflexion, j'ai décidé de faire une conception unifiée pour les deux capteurs : un anémomètre à coupelle avec mesure optique de la vitesse de rotation et une girouette avec lecture électronique de l'angle de rotation basée sur un disque codeur (encodeur).

Conceptions de capteurs

L'avantage des capteurs mécaniques est qu'aucune R&D n'y est nécessaire, le principe est simple et clair, et la qualité du résultat ne dépend que de la précision de la conception soigneusement pensée.

Donc, il semblait théoriquement, en pratique, cela entraînait un tas de travaux mécaniques, dont certains devaient être commandés à côté, en raison du manque de tours et de fraiseuses à portée de main. Je dois dire tout de suite que je n'ai jamais regretté de m'être appuyé dès le début sur une approche capitalistique et de ne pas avoir clôturé des constructions à partir de matériaux improvisés.

Pour la girouette et l'anémomètre, il faut les pièces suivantes, qui doivent être commandées auprès d'un tourneur et d'un meunier (la quantité et le matériau sont indiqués pour les deux capteurs à la fois) :

Les essieux, notons-le, sont nécessairement tournés sur un tour: il est presque impossible de fabriquer un essieu avec une pointe exactement au centre sur un genou. Et le placement de la pointe exactement le long de l'axe de rotation est ici le facteur déterminant du succès. De plus, l'axe doit être parfaitement droit, aucune déviation n'est autorisée.

Capteur mécanique de direction du vent - girouette électronique

La base de la girouette (ainsi que le capteur de vitesse ci-dessous) est un support en forme de U en duralumin D-16, illustré sur le dessin en haut à gauche. Un morceau de PTFE est pressé dans l'évidement inférieur, dans lequel un évidement étagé est réalisé successivement avec des forets de 2 et 3 mm. Un axe est inséré dans cet évidement avec une extrémité pointue (pour une girouette - en laiton). D'en haut, il passe librement à travers un trou de 8 mm. Au-dessus de ce trou, une pièce rectangulaire du même fluoroplastique de 4 mm d'épaisseur est fixée au support avec des vis M2 de manière à ce qu'elle chevauche le trou. Un trou a été pratiqué dans le PTFE exactement le long de l'axe diamètre de 6 mm (situé exactement le long de l'axe commun des trous - voir le schéma de montage ci-dessous). Le fluoroplastique en haut et en bas joue ici le rôle de paliers lisses.


L'axe au point de frottement contre le photoplastique peut être poli et la zone de frottement peut être réduite en fraisant un trou dans le fluoroplastique. ( Voir à ce sujet ci-dessous UPD du 13/09/18 et du 05/06/19). Pour une girouette, cela ne joue pas un rôle particulier - un certain «retard» lui est même utile, et pour un anémomètre, vous devrez essayer de minimiser les frottements et l'inertie.

Parlons maintenant de la suppression de l'angle de rotation. L'encodeur Gray classique à 16 positions dans notre cas ressemble à ceci :

La taille du disque a été choisie en fonction de la condition d'isolation optique fiable des paires émetteur-récepteur les unes des autres. Avec cette configuration, les fentes de 5 mm de large sont également espacées de 5 mm, et les paires optiques sont espacées d'exactement 10 mm. Les dimensions du support sur lequel est fixée la girouette ont été calculées précisément sur la base d'un diamètre de disque de 120 mm. Tout cela, bien sûr, peut être réduit (surtout si vous choisissez des LED et des photodétecteurs du plus petit diamètre possible), mais la complexité de fabrication de l'encodeur a été prise en compte: il s'est avéré que les meuniers n'entreprennent pas un travail aussi délicat, donc il devait être coupé manuellement avec une lime aiguille. Et ici, plus la taille est grande, plus le résultat est fiable et moins il y a de tracas.

Le dessin d'assemblage ci-dessus montre comment le disque est fixé à l'essieu. Un disque soigneusement centré est fixé avec des vis M2 au manchon caprolon. La douille est placée sur l'axe de sorte que l'écart en haut soit minimal (1-2 mm) - de sorte que l'axe tourne librement dans la position normale, et lorsqu'il est retourné, la pointe ne tombe pas de la douille à la bas. Des blocs de photodétecteurs et d'émetteurs sont fixés au support en haut et en bas du disque, plus précisément sur leur conception ci-dessous.

L'ensemble de la structure est placé dans un boîtier en plastique (ABS ou polycarbonate) 150×150×90 mm. Assemblé (sans capot ni girouette), le capteur de direction ressemble à ceci :

Notez que la direction nord sélectionnée est indiquée par une flèche et devra être respectée lors de la réinstallation du capteur.

La girouette proprement dite est fixée au sommet de l'axe. Il est fabriqué sur la base du même axe en laiton, dans la coupe du côté émoussé duquel une tige en tôle de laiton est soudée. À l'extrémité pointue, un filetage M6 est coupé à une certaine longueur et un contrepoids rond moulé en plomb est fixé dessus à l'aide d'écrous:

La charge est conçue de manière à ce que le centre de gravité tombe exactement sur le point de fixation (en le déplaçant le long du fil, vous pouvez obtenir un équilibre parfait). La girouette est fixée à l'axe à l'aide d'une vis inox M3, qui traverse un trou dans l'axe de la girouette et se visse dans le filetage taillé dans l'axe de rotation (la vis de fixation est visible sur la photo ci-dessus). Pour une orientation précise, le sommet de l'axe de rotation présente un évidement semi-circulaire dans lequel se trouve l'axe de la girouette.

Capteur de vitesse du vent - anémomètre à coupelle à faire soi-même

Comme vous l'avez déjà compris, la base du capteur de vitesse à des fins d'unification a été choisie de la même manière que pour la girouette. Mais les exigences de conception ici sont quelque peu différentes : afin de réduire le seuil de démarrage, l'anémomètre doit être aussi léger que possible. Par conséquent, en particulier, l'axe pour celui-ci est en duralumin, le disque avec des trous (pour mesurer la vitesse de rotation) est de diamètre réduit :

Alors qu'un codeur Gray à quatre bits nécessite quatre optocoupleurs, un capteur de vitesse n'en a besoin que d'un. 16 trous sont percés le long de la circonférence du disque à égale distance, donc une révolution du disque par seconde équivaut à 16 hertz de la fréquence provenant de l'optocoupleur (plus de trous sont possibles, moins sont possibles - la seule question est la échelle de recalcul et économies d'énergie pour les émetteurs).

Un capteur fait maison s'avérera toujours assez grossier (le seuil de départ est d'au moins un demi-mètre-mètre par seconde), mais il ne peut être réduit que si la conception est radicalement modifiée: par exemple, mettez une hélice au lieu de un plateau tournant pour tasses. Dans un plateau tournant à coupelles, la différence des forces de résistance à l'écoulement qui détermine le couple est relativement faible - elle est obtenue uniquement en raison de la forme différente de la surface qui rencontre le flux d'air venant en sens inverse (par conséquent, la forme des coupelles doit être aussi profilée que possible - idéalement, c'est un demi-œuf ou une balle). L'hélice a beaucoup plus de couple, peut être beaucoup plus légère et, enfin, la fabrication elle-même est plus simple. Mais l'hélice doit être installée dans le sens du flux d'air - par exemple, en la plaçant au bout d'une même girouette.

La question des questions en même temps : comment transmettre les lectures d'un capteur qui tourne aléatoirement autour d'un axe vertical ? Je n'ai pas pu le résoudre, et à en juger par le fait que les conceptions de gobelets professionnels sont encore répandues, il n'est en aucun cas résolu d'un demi-coup (nous ne prenons pas en compte les anémomètres portatifs - ils sont orientés manuellement en fonction de l'air flux).

Ma version de l'anémomètre à coupelle est basée sur un disque laser. La vue de dessus et de dessous est montrée sur la photo:



Les gobelets sont fabriqués à partir du fond des biberons "Agusha". Le fond est soigneusement coupé, et tous les trois - à la même distance, de sorte qu'ils aient un poids égal, réchauffés localement au centre (en aucun cas ne chauffez pas le tout - il se déformera de manière irréversible!) Et le verso du manche en bois de la lime se plie vers l'extérieur pour la rendre plus profilée. Vous répéterez - faites le plein de bouteilles plus grandes, sur cinq ou six pièces, vous pourrez probablement faire trois tasses plus ou moins identiques. Dans les coupelles fabriquées, une fente est pratiquée sur le côté et elles sont fixées le long du périmètre du disque à 120 ° l'une par rapport à l'autre à l'aide d'un adhésif-scellant étanche. Le disque est strictement centré par rapport à l'axe (je l'ai fait à l'aide d'une rondelle métallique fermée) et est fixé sur le manchon caprolon avec des vis M2.

Conception générale et installation de capteurs

Les deux capteurs, comme déjà mentionné, sont placés dans des boîtiers en plastique 150 × 150 × 90 mm. Le choix du matériau du boîtier doit être abordé de manière réfléchie : l'ABS ou le polycarbonate ont une résistance suffisante aux intempéries, mais le polystyrène, le plexiglas, et plus encore le polyéthylène, ne fonctionneront certainement pas ici (et il sera également difficile de les peindre pour les protéger du soleil ). S'il n'est pas possible d'acheter une boîte de marque, il est préférable de souder vous-même le boîtier à partir d'une feuille de fibre de verre, puis de le peindre pour le protéger de la corrosion et lui donner un aspect esthétique.

Un trou de 8-10 mm est pratiqué dans le couvercle exactement au point de sortie de l'axe, dans lequel un cône en plastique est collé avec le même adhésif-scellant, découpé dans le bec d'une bombe aérosol avec du mastic de construction ou de la colle:

Pour centrer le cône le long de l'axe, fixez un morceau de bois sur le fond du couvercle avec une pince, marquez-y le centre exact et approfondissez un peu avec une mèche bêche de 12 mm en réalisant un évidement annulaire autour du trou. Le cône doit y entrer exactement, après quoi il peut être enduit de colle. Vous pouvez en plus le fixer en position verticale le temps de la solidification avec une vis M6 avec un écrou.

Le capteur de vitesse lui-même recouvre l'essieu avec ce cône comme un parapluie, empêchant l'eau de pénétrer dans le boîtier. Pour une girouette, il est intéressant de placer en plus un manchon au-dessus du cône, ce qui comblera l'écart entre l'axe et le cône de l'écoulement direct de l'eau (voir photo de la vue générale des capteurs ci-dessous).

Les fils des optocoupleurs sont connectés à un connecteur D-SUB séparé (voir photo du capteur de direction ci-dessus). La pièce d'accouplement avec le câble est insérée à travers un trou rectangulaire dans la base du boîtier. Le trou est ensuite recouvert d'un couvercle avec une fente pour le câble, ce qui empêche le connecteur de tomber. Les supports Dural sont vissés à la base du boîtier pour la fixation en place. Leur configuration dépend de l'emplacement des capteurs.

Une fois assemblés, les deux capteurs ressemblent à ceci :

Ici, ils sont montrés déjà installés en place - sur la crête du belvédère. Veuillez noter que les évidements pour les vis de fixation du couvercle sont protégés de l'eau par des bouchons en caoutchouc humides. Les capteurs sont installés strictement horizontalement en fonction du niveau, pour lequel il a fallu utiliser des revêtements en morceaux de linoléum.

Partie électronique

La station météo dans son ensemble se compose de deux modules : une unité à distance (qui sert à la fois aux capteurs de vent et prend également des mesures à partir d'un capteur de température et d'humidité externe) et le module principal avec des écrans. L'unité distante est équipée d'un émetteur sans fil pour l'envoi de données installé à l'intérieur (l'antenne dépasse du côté). Le module principal reçoit les données de l'unité distante (le récepteur est placé sur un câble dans une unité séparée pour faciliter l'orientation), et prend également des lectures du capteur de température et d'humidité interne et affiche tout cela sur les écrans. Un composant séparé de l'unité principale est une horloge avec un calendrier qui, pour la commodité de la configuration générale de la station, est desservie par un contrôleur Arduino Mini séparé et possède ses propres affichages.

Module déporté et circuit de mesure des capteurs de vent

Les LED IR AL-107B ont été choisies comme photoémetteurs. Ces LED vintage, bien sûr, ne sont pas les meilleures de leur catégorie, mais elles ont un corps miniature d'un diamètre de 2,4 mm et sont capables de faire passer du courant jusqu'à 600 mA par impulsion. Soit dit en passant, lors des tests, il s'est avéré qu'un échantillon de cette LED vers 1980 de sortie (dans un boîtier rouge) a environ deux fois l'efficacité (exprimée dans la plage de fonctionnement fiable du photodétecteur) que les spécimens modernes achetés chez Chip -Profond (ils ont un corps vert jaunâtre transparent). Il est peu probable que les cristaux aient été meilleurs en 1980 qu'ils ne le sont maintenant, mais qu'est-ce qui ne plaisante pas ? Peut-être, cependant, la question est dans des angles de diffusion différents dans les deux conceptions.

Un courant continu d'environ 20 mA a été passé à travers la LED dans le capteur de vitesse (résistance de 150 Ohm lorsqu'il est alimenté par 5 volts) et dans le capteur de direction - un courant pulsé (méandre avec un rapport cyclique de 2) d'environ 65 mA ( le même 150 Ohm lorsqu'il est alimenté en 12 volts). Le courant moyen à travers une LED du capteur de direction est d'environ 33 mA, au total à travers quatre canaux - environ 130 mA.

En tant que photodétecteurs, des phototransistors L-32P3C dans un boîtier d'un diamètre de 3 mm ont été choisis. Le signal a été prélevé sur un collecteur chargé d'une résistance de 1,5 ou 2 kOhm à partir d'une alimentation de 5 V. Ces paramètres ont été choisis pour qu'à une distance de ~ 20 mm entre le photoémetteur et le récepteur, un signal logique pleine grandeur à 5 -les niveaux de volt sans amplification supplémentaire arriveraient immédiatement à l'entrée du contrôleur. Les courants figurés ici peuvent vous sembler démesurément importants, compte tenu de la puissance minimale requise mentionnée ci-dessus, mais comme vous le verrez, ils apparaissent à chaque cycle de mesure pendant quelques millisecondes au maximum, de sorte que la consommation totale reste faible.

La base de montage des récepteurs et des émetteurs était les sections du canal de câble (vu sur la photo des capteurs ci-dessus), découpées de manière à former des «oreilles» à la base pour le montage sur le support. Pour chacune de ces coupes, une plaque en plastique a été collée sur le couvercle de verrouillage de l'intérieur, de largeur égale à la largeur du canal. Les LED et les phototransistors ont été fixés à la distance requise dans les trous percés dans cette plaque afin que les fils soient à l'intérieur du canal et que seuls les renflements à l'extrémité des boîtiers dépassent à l'extérieur. Les conclusions sont soudées conformément au schéma (voir ci-dessous), les conclusions externes sont faites avec des coupes d'un fil multicolore flexible. Des résistances pour les émetteurs du capteur de direction sont également placées à l'intérieur du canal, une conclusion générale en est tirée. Après le dessoudage, le couvercle s'enclenche, toutes les fentes sont scellées avec de la pâte à modeler et en plus avec du ruban adhésif, qui ferme également le trou du côté opposé aux fils, et toute la structure est remplie d'époxy. Les conclusions externes, comme vous pouvez le voir sur la photo des capteurs, sont émises vers le bornier fixé à l'arrière du support.

schéma l'unité de traitement du capteur de vent ressemble à ceci :

À propos de l'origine de l'alimentation 12-14 volts, voir ci-dessous. En plus des composants indiqués sur le schéma, l'unité à distance contient un capteur de température et d'humidité, qui n'est pas représenté sur le schéma. Le diviseur de tension connecté à la borne A0 du contrôleur est conçu pour contrôler la tension de l'alimentation dans le but d'un remplacement rapide. La LED connectée à la broche 13 traditionnelle (broche 19 du boîtier DIP) est super brillante, pour sa lueur normale et non aveuglante, une fraction de milliampère de courant suffit, ce qui est assuré par la valeur inhabituellement élevée du 33 résistance kΩ.

Le circuit utilise un contrôleur Atmega328 nu dans un boîtier DIP, programmé via Uno et installé sur une prise. De tels contrôleurs avec un chargeur de démarrage Arduino déjà écrit sont vendus, par exemple, dans Chip-Dip (ou vous pouvez écrire vous-même le chargeur de démarrage). Il est commode de programmer un tel contrôleur dans un environnement familier, mais, dépourvu de composants sur la carte, il est, d'une part, plus économique, et d'autre part, il prend moins de place. Un mode d'économie d'énergie à part entière pourrait être obtenu en se débarrassant également du chargeur de démarrage (et en écrivant généralement tout le code en assembleur :), mais ici ce n'est pas très pertinent, et la programmation est inutilement compliquée.

Dans le diagramme, des rectangles gris encerclent les composants liés séparément aux canaux de vitesse et de direction. Considérez le fonctionnement du système dans son ensemble.

Le fonctionnement du contrôleur dans son ensemble est contrôlé par le temporisateur chien de garde WDT activé en mode d'appel d'interruption. WDT sort le contrôleur du mode veille à des intervalles définis. Dans le cas où le temporisateur est réinitialisé dans l'interruption appelée, il n'y a pas de redémarrage à zéro, toutes les variables globales restent à leurs valeurs. Cela vous permet d'accumuler des données de réveil en réveil et de les traiter à un moment donné - par exemple, en faire la moyenne.

Au début du programme, les déclarations suivantes de bibliothèques et de variables globales sont faites (afin de ne pas encombrer le texte d'exemples déjà volumineux, tout ce qui concerne le capteur de température-humidité est publié ici):

#inclure #inclure #inclure . . . . . #define ledPin 13 //LED pin (PB5 pin 19 ATmega) #define IR_Pin 10 //IRLU transistor control (PB2 pin 16 Atmega) #define in_3p 9 //Entrée récepteur bit 3 #define in_2p 8 //Entrée récepteur bit 2 # définir in_1p 7 //bit d'entrée du récepteur 1 #define in_0p 6 //bit d'entrée du récepteur 0 #define IR_PINF 5 //(PD5,11) sortie pour la fréquence IR LED #define IN_PINF 4 //(PD4,6) entrée de détection de fréquence volatile temps long non signé = 0 ; //Période d'activation du capteur float ff ; // valeurs de fréquence du capteur de vitesse pour la moyenne des char msg ; //compte d'octets de message envoyé = 0 ; // compteur int batt ; //pour faire la moyenne de l'octet de batterie wDir ; // tableau des directions du vent byte wind_Gray=0; // octet de code de direction du vent
Les procédures suivantes sont utilisées pour lancer le mode veille et WDT (réveil toutes les 4 secondes) :

// mettre le système en veille void system_sleep() ( ADCSRA &= ~(1<< ADEN); //экв. cbi(ADCSRA,ADEN); выключим АЦП set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна sleep_mode(); // система засыпает sleep_disable(); // система продолжает работу после переполнения watchdog ADCSRA |= (1 << ADEN); /экв. sbi(ADCSRA,ADEN); включаем АЦП } //**************************************************************** // ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; if (ii >9) ii=9 ; bb=ii & 7; si (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<Le capteur de vitesse délivre la fréquence d'interruption du canal optique, l'ordre de grandeur est d'unités-dizaines de hertz. Il est plus économique et plus rapide de mesurer une telle valeur au bout d'un certain temps (c'était l'objet de la publication de l'auteur "Evaluation des méthodes de mesure des basses fréquences sur Arduino"). Ici, une méthode est choisie via la fonction modifiée pulseInLong(), qui ne lie pas la mesure à certaines sorties du régulateur (le texte de la fonction periodInLong() se trouve dans la publication indiquée).

Dans la fonction setup(), les directions des broches sont déclarées, la bibliothèque de l'émetteur 433 MHz et le temporisateur de surveillance sont initialisés (la ligne pour IN_PINF est, en principe, superflue et insérée pour la mémoire) :

Void setup() ( pinMode(IR_PINF, OUTPUT); //pour sortir pinMode(IN_PINF, INPUT); //détection de fréquence de sortie pour entrer pinMode(13, OUTPUT); //LED vw_setup(1200); //Vitesse de connexion VirtualWire vw_set_tx_pin(2); //D2, PD2(4) Broche de transfert VirtualWire // Serial.begin(9600); // Port série à surveiller lors du débogage setup_watchdog(8); //WDT period 4 c wdt_reset(); )
Enfin, dans la boucle principale du programme, on lit d'abord la tension à chaque réveil (toutes les 4 secondes) et on calcule la fréquence du capteur de vitesse du vent :

Void loop() ( wdt_reset(); // réinitialiser la minuterie digitalWrite(ledPin, HIGH); // allumer la LED pour contrôler batt=analogRead(0); // lire et enregistrer le code de batterie actuel /*=== fréquence === = */ digitalWrite(IR_PINF, HIGH); //allumer la LED IR du capteur de vitesse float f=0; //variable pour la fréquence ttime=periodInLong(IN_PINF, LOW, 250000); //attendre 0.25 sec // Serial.println(ttime); //pour le contrôle pendant le débogage if (ttime!=0) (//en cas d'absence de fréquence f = 1000000/float(ttime);) //calculer la fréquence du signal en Hz digitalWrite(IR_PINF, LOW); / /éteindre la LED IR ff=f; //enregistrer la valeur calculée dans un tableau. . . . .
Le temps de combustion de la LED IR (consommant, rappelons-le, 20 mA) ici, comme vous pouvez le voir, sera maximum en l'absence de rotation du disque capteur et est d'environ 0,25 seconde dans cette condition. La fréquence minimale mesurable serait donc de 4 Hz (un quart de tour de disque par seconde à 16 trous). Comme il s'est avéré lors de l'étalonnage du capteur (voir ci-dessous), cela correspond à environ 0,2 m/s de vitesse du vent. Nous soulignons qu'il s'agit de la valeur minimale mesurable de la vitesse du vent, mais pas de la résolution et non du seuil de départ (qui être beaucoup plus élevé). En présence de fréquence (c'est-à-dire lorsque le capteur tourne), le temps de mesure (et, par conséquent, le temps de combustion de la LED, c'est-à-dire la consommation de courant) diminuera proportionnellement et la résolution augmentera.

Suivi de procédures qui sont effectuées tous les quatre réveils (c'est-à-dire toutes les 16 secondes). À partir des quatre valeurs accumulées, nous transmettons la valeur de fréquence du capteur de vitesse non pas la moyenne, mais le maximum - comme l'expérience l'a montré, il s'agit d'une valeur plus informative. Par commodité et uniformité, chacune des grandeurs, quel que soit son type, est convertie en un entier positif d'une taille de 4 décimales avant transmission. La variable count garde une trace du nombre de réveils :

//toutes les 16 secondes, nous calculons la moyenne de la batterie et déterminons la //valeur de fréquence maximale à partir de 4 valeurs : si (compte==3)( f=0 ; //valeur de fréquence pour (octet i=0 ; i<4; i++) if (fVient ensuite la définition du code Gray de la direction. Ici, pour réduire la consommation, au lieu de constamment sur les LED IR, une fréquence de 5 kHz est appliquée simultanément aux quatre canaux via un transistor à effet de champ clé utilisant la fonction tonalité (). La détection de la présence d'une fréquence sur chacun des digits (broches in_0p - in_3p) est effectuée par une méthode similaire à l'anti-rebond lors de la lecture des indications d'un bouton enfoncé. D'abord, dans la boucle, nous attendons de voir si la sortie est haute, puis nous la vérifions après 100 µs. 100 µs est une demi-période d'une fréquence de 5 kHz, c'est-à-dire que s'il y a une fréquence au moins à partir de la deuxième fois, nous arriverons à nouveau à un niveau élevé (juste au cas où, nous répétons quatre fois) et cela signifie que c'est définitivement là. Nous répétons cette procédure pour chacun des quatre bits du code :

/* ===== Vent Gris ==== */ //direction : ton(IR_Pin,5000);//fréquence 5 kHz vers transistor booléen oui = faux ; octet i=0 ; while(!yes)( //digit 3 i++; boolean state1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_3p)); if (i> 4 ) break; //essayez quatre fois) if (yes) wDir=1; sinon wDir=0 ; oui = faux ; je=0 ; while(!yes)( //digit 2 i++; boolean state1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_2p)); if (i> 4 ) break; //essayez quatre fois) if (yes) wDir=1; sinon wDir=0 ; oui = faux ; je=0 ; while(!yes)( //bit 1 i++; boolean state1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_1p)); if (i> 4 ) break; //essayez quatre fois) if (yes) wDir=1; sinon wDir=0 ; oui = faux ; je=0 ; while(!yes)( //bit 0 i++; état booléen1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // délai de 100 microsecondes yes=(state1 & !digitalRead(in_0p)); if (i> 4 ) break; //essayez quatre fois) if (yes) wDir=1; sinon wDir=0 ; pas de tonalité(IR_Pin); //désactivez la fréquence //collectez-la dans un octet en code Gray : wind_Gray=wDir+wDir*2+wDir*4+wDir*8 ; // traduction directe en binaire. code entier vent_G=vent_Gray*10+1000 ; // ajouter jusqu'à 4 dés. décharges. . . . .
La durée maximale d'une procédure sera en l'absence de fréquence sur le récepteur et est égale à 4 × 100 = 400 microsecondes. La durée de combustion maximale des LED à 4 directions sera lorsqu'aucun récepteur n'est allumé, c'est-à-dire 4 × 400 = 1,6 millisecondes. L'algorithme, d'ailleurs, fonctionnera de la même manière si, au lieu d'une fréquence dont la période est un multiple de 100 μs, vous appliquez simplement un niveau haut constant aux LED. En présence d'un méandre au lieu d'un niveau constant, on économise simplement la nourriture de moitié. Nous pouvons économiser encore plus si nous faisons passer chaque LED IR par une ligne séparée (respectivement, par une sortie de contrôleur séparée avec son propre transistor clé), mais cela complique le circuit, le câblage et le contrôle, et un courant de 130 mA pendant 2 ms chaque 16 secondes - cela, vous voyez, c'est un peu.

Pour terminer, transmission de données sans fil. La méthode la plus simple, la moins chère et la plus fiable a été choisie pour transmettre les données de l'emplacement des capteurs à l'affichage de la station météo : un couple émetteur/récepteur à une fréquence de 433 MHz. Je suis d'accord que la méthode n'est pas la plus pratique (en raison du fait que les appareils sont conçus pour transférer des séquences de bits, et non des octets entiers, vous devez exceller dans la conversion des données entre les formats requis), et je suis sûr que beaucoup voudront discuter avec moi en termes de sa fiabilité. La réponse à la dernière objection est simple : « vous ne savez tout simplement pas comment les cuisiner ! ».

Le secret est qu'il reste généralement les coulisses des diverses descriptions d'échange de données sur le canal 433 MHz : ces appareils étant purement analogiques, l'alimentation du récepteur doit être très bien nettoyée de toute ondulation parasite. Le récepteur ne doit en aucun cas être alimenté par le régulateur 5V interne de l'Arduino ! L'installation d'un régulateur de récepteur séparé à faible puissance (LM2931, LM2950 ou similaire) juste à côté de ses sorties, avec des circuits de filtrage d'entrée et de sortie appropriés, augmente considérablement la portée et la fiabilité de transmission.

Dans ce cas, l'émetteur fonctionnait directement à partir d'une tension de batterie de 12 V, le récepteur et l'émetteur étaient équipés d'antennes standard faites maison sous la forme d'un morceau de fil de 17 cm de long.(Je vous rappelle que seul un monoconducteur le fil convient aux antennes, et il est nécessaire de placer les antennes dans l'espace parallèlement les unes aux autres.) Un paquet d'informations de 24 octets de long (en tenant compte de l'humidité et de la température) sans aucun problème a été transmis en toute confiance à une vitesse de 1200 bps en diagonale à travers un terrain de jardin de 15 acres (environ 40 à 50 mètres), puis à travers trois murs en rondins dans la pièce ( dans lequel, par exemple, un signal cellulaire est reçu avec beaucoup de difficulté et pas partout). Des conditions pratiquement inaccessibles pour toute méthode standard 2,4 GHz (telle que Bluetooth, Zig-Bee et même Wi-Fi amateur), malgré le fait que la consommation de l'émetteur est ici d'un misérable 8 mA et uniquement au moment de la transmission réelle, le reste du temps, l'émetteur consomme de vrais sous. L'émetteur est structurellement placé à l'intérieur de l'unité distante, l'antenne dépasse horizontalement du côté.

Nous combinons toutes les données en un seul paquet (dans une station réelle, la température et l'humidité y seront ajoutées), composé de parties uniformes de 4 octets et précédées de la signature «DAT», l'envoyons à l'émetteur et complétons tous les cycles:

/*=====Transmetteur=====*/ Chaîne strMsg="DAT" ; //signature - données strMsg+=volt ; //joindre une batterie à 4 chiffres strMsg+=wind_G ; //attache vent 4 bits strMsg+=fi; //attache fréquence 4 bits strMsg.toCharArray(msg,16); //traduction de la chaîne dans un tableau // Serial.println(msg); //pour contrôler vw_send((uint8_t *)msg, strlen(msg)); // envoie le message vw_wait_tx(); // attendez que le transfert soit terminé - un must ! retard(50); //+ juste au cas où, delay count=0 ; //réinitialise le compteur )//end count==3 else count++; digitalWrite(ledPin, BAS); //nous éteignons le signal LED system_sleep(); //système - pour dormir) //fin de boucle
La taille des paquets peut être réduite si l'on abandonne l'obligation de représenter chacun des différents types de valeurs sous la forme d'un code uniforme de 4 octets (par exemple, pour un code Gray, bien sûr, un octet suffit). Mais dans un souci d'universalisation, j'ai tout laissé tel quel.

Alimentation électrique et caractéristiques de conception de l'unité distante. La consommation de l'unité distante est calculée comme suit :

20 mA (émetteur) + ~20 mA (contrôleur avec circuits auxiliaires) pendant environ 0,25 s toutes les quatre secondes - 40/16 = 2,5 mA en moyenne ;
- 130 mA (radiateurs) + ~20 mA (régulateur avec circuits auxiliaires) pendant environ 2 ms toutes les 16 secondes - 150/16/50 ≈ 0,2 mA en moyenne ;

En jetant sur ce calcul la consommation du contrôleur lors de la lecture des données du capteur de température-humidité et pendant le fonctionnement de l'émetteur, nous amenons hardiment la consommation moyenne à 4 mA (avec un pic d'environ 150 mA, attention !). Les piles (qui, soit dit en passant, nécessiteront jusqu'à 8 pièces pour alimenter l'émetteur avec une tension maximale !) devront être changées trop souvent, c'est pourquoi l'idée est née d'alimenter la télécommande à partir de piles 12 volts pour un tournevis - J'en avais juste deux de plus. Leur capacité est encore inférieure au nombre correspondant de piles AA - seulement 1,3 A heures, mais personne ne prend la peine de les changer à tout moment, en gardant la seconde chargée prête. Avec la consommation indiquée de 4 mA, la capacité de 1300 mA heures est suffisante pour environ deux semaines, ce qui n'est pas trop gênant.

Notez que la tension d'une batterie fraîchement chargée peut aller jusqu'à 14 volts. Dans ce cas, un stabilisateur d'entrée de 12 volts a été installé - afin d'éviter les surtensions dans l'alimentation de l'émetteur et de ne pas surcharger le stabilisateur principal de cinq volts.

L'unité à distance dans un boîtier en plastique approprié est placée sous le toit, un câble d'alimentation de la batterie et des connexions aux capteurs de vent y sont connectés au niveau des connecteurs. La principale difficulté est que le circuit s'est avéré extrêmement sensible à l'humidité de l'air : par temps de pluie, après quelques heures, l'émetteur commence à tomber en panne, les mesures de fréquence montrent un désordre complet et les mesures de tension de la batterie indiquent "la météo sur Mars". .

Par conséquent, après avoir débogué les algorithmes et vérifié toutes les connexions, le boîtier doit être soigneusement scellé. Tous les connecteurs à l'entrée du boîtier sont enduits de mastic, il en va de même pour toutes les têtes de vis qui dépassent, la sortie antenne et le câble d'alimentation. Les joints du corps sont enduits de pâte à modeler (en tenant compte du fait qu'ils devront être séparés) et collés en plus sur le dessus avec des bandes de ruban adhésif. C'est une bonne idée de renforcer soigneusement les connecteurs utilisés à l'intérieur avec de l'époxy : par exemple, le module de télécommande DB-15 indiqué sur le schéma n'est pas étanche à l'air en soi, et l'air humide s'infiltrera lentement entre le cadre métallique et la base en plastique.

Mais toutes ces mesures en elles-mêmes ne donneront qu'un effet à court terme - même s'il n'y a pas d'aspiration d'air froid et humide, l'air sec de la pièce se transforme facilement en humide lorsque la température à l'extérieur du boîtier baisse (rappelez-vous le phénomène appelé "point de rosée").

Pour éviter cela, il est nécessaire de laisser une cartouche ou un sac avec un déshydratant - gel de silice à l'intérieur du boîtier (les sacs avec celui-ci sont parfois mis dans des boîtes avec des chaussures ou dans certains emballages avec des appareils électroniques). Si le gel de silice est d'origine inconnue et a été stocké pendant une longue période, il doit être calciné dans un four électrique à 140-150 degrés pendant plusieurs heures avant utilisation. Si le boîtier est correctement scellé, le dessicant ne devra pas être changé plus souvent qu'au début de chaque saison estivale.

Le module principal

Dans le module principal, toutes les valeurs sont reçues, décodées, si nécessaire, converties conformément aux équations d'étalonnage et affichées.

Le récepteur est sorti du corps du module principal de la station et placé dans une petite boîte avec des oreilles pour la fixation. L'antenne est sortie à travers un trou dans le couvercle, tous les trous du boîtier sont scellés avec du caoutchouc brut. Les contacts du récepteur sont acheminés vers un connecteur RS-4 domestique très fiable, du côté du récepteur, il est connecté via un segment d'un câble AV à double blindage :

Un signal est prélevé sur l'un des noyaux du câble et l'alimentation est fournie via l'autre sous la forme de 9 volts "bruts" à partir de l'adaptateur secteur du module. Le type de stabilisateur LM-2950-5.0, ainsi que les condensateurs de filtrage, sont installés dans un boîtier avec un récepteur sur une carte séparée.

Des expériences ont été menées pour augmenter la longueur du câble (juste au cas où - et si cela ne fonctionnait pas à travers le mur?), Dans lesquelles il s'est avéré que rien ne change sur une longueur allant jusqu'à 6 mètres.

Il n'y a que quatre écrans OLED : deux jaunes servent les données météorologiques, deux horloges vertes et un calendrier. Leur placement est indiqué sur la photo:

Veuillez noter que dans chaque groupe, l'un des affichages est du texte, le second est graphique, avec des polices créées artificiellement sous la forme d'images de glyphes. Ici, nous ne nous attarderons pas sur la question de la sortie d'informations sur les écrans à l'avenir, afin de ne pas gonfler le texte déjà long de l'article et des exemples : en raison de la présence d'images de glyphes qui doivent être affichées individuellement (souvent en listant simplement options à l'aide d'une instruction case), les programmes de sortie peuvent être très lourds. Pour plus d'informations sur la façon de gérer ces affichages, consultez le post de l'auteur "Mode graphique et texte des affichages Winstar", qui comprend un exemple d'affichage pour la sortie des données de vent.

Diagramme schématique. Pour faciliter la configuration, l'horloge et ses affichages sont desservis par un contrôleur Arduino Mini séparé et nous ne les analyserons pas davantage ici. Le schéma de connexion des composants à l'Arduino Nano, qui contrôle la réception et la sortie des données météorologiques, est le suivant :

Ici, contrairement au module à distance, la connexion des capteurs météorologiques est illustrée - un baromètre et un capteur de température et d'humidité interne. Vous devez faire attention au câblage d'alimentation - les écrans sont alimentés par un stabilisateur 5 V séparé de type LM1085. Il est également naturel d'alimenter les affichages d'horloge à partir de celui-ci, cependant, dans ce cas, le contrôleur d'horloge doit également être alimenté à partir de la même tension, et via la sortie 5 V, et non Vin (pour le Mini Pro, ce dernier s'appelle CRU). Si vous alimentez le contrôleur de la montre de la même manière que Nano - avec 9 volts via la sortie RAW, son régulateur interne entrera en conflit avec le 5 volts externe, et dans ce combat, bien sûr, le plus fort gagnera, c'est-à-dire LM1085, et la Mini restera complètement sans alimentation. De plus, afin d'éviter toutes sortes de problèmes, avant de programmer le Nano et surtout le Mini (c'est-à-dire avant de brancher le câble USB), l'adaptateur externe doit être débranché.

Sur le stabilisateur LM1085, lorsque les quatre écrans sont connectés, environ un watt de puissance sera libéré, il doit donc être installé sur un petit radiateur d'environ 5-10 cm2 à partir d'un coin en aluminium ou en cuivre.

Réception et traitement des données. Ici, je reproduis et commente uniquement les fragments de programme liés aux données de vent, concernant d'autres capteurs quelques mots plus loin.

Pour recevoir un message sur le canal 433 MHz, nous utilisons la méthode standard décrite dans de nombreuses sources. Nous connectons la bibliothèque et déclarons les variables :

#inclure . . . . . intvolt ; // tension de la batterie dans le code entier conditionnel float batt ; //valeur réelle - octet de tension de batterie wDir ; //direction en code gray uint16_t t_time = 0; //intervalle de temps de réception char str; //chaîne pour les données uint8_t buf ; //variable pour le message reçu uint8_t buflen = VW_MAX_MESSAGE_LEN ; // longueur maximale du message reçu. . . . .
Il y a une particularité à la taille du buffer buflen : il ne suffit pas de déclarer sa valeur (VW_MAX_MESSAGE_LEN) une fois en début de programme. Comme cette variable apparaît par référence dans la fonction de réception (voir ci-dessous), la taille de message par défaut doit être mise à jour à chaque cycle. Sinon, en raison de la réception de messages corrompus, la valeur de buflen sera raccourcie à chaque fois, jusqu'à ce que vous commenciez à obtenir des bêtises au lieu de données. Dans les exemples, ces deux variables sont généralement déclarées localement dans la boucle loop(), de sorte que la taille du tampon est mise à jour automatiquement, mais ici, nous répéterons simplement l'affectation de la valeur souhaitée au début de chaque boucle.

Dans la procédure de configuration, nous effectuons les réglages suivants :

Void setup() ( delay (500); //to power down display pinMode(16,INPUT_PULLUP); //pin for button vw_setup(1200); //VirtuWire connection speed vw_set_rx_pin(17); //A3 VirtualWire receiver pin. . . . .
Avant d'accepter quelque chose, l'intervalle de temps t_time qui s'est écoulé depuis la dernière réception est vérifié. S'il dépasse des limites raisonnables (par exemple, 48 secondes - trois fois le temps de répétition des messages de l'unité externe), cela est perçu comme une perte du capteur et est en quelque sorte indiqué sur l'écran :

Void loop() ( vw_rx_start(); // Prêt à recevoir buflen = VW_MAX_MESSAGE_LEN; // taille du tampon à chaque fois si ((int(millis()) - t_time) > 48000) // si t_time n'a pas été mis à jour depuis plus plus de 48 secondes (<отображаем прочерк на дисплее>)//end sensor not found if (vw_have_message()) ( //attend la réception if (vw_get_message(buf, &buflen)) // Si les données sont reçues ( vw_rx_stop(); //arrête de recevoir pendant un certain temps t_time = millis( ); / /update t_time for (byte i=0;i<3;i++) // Получить первые три байта str[i]= buf[i]; str="\0"; if((str=="D")&&(str=="A")&&(str=="T")) { //сигнатура принята //принимаем данные: for (byte i=3;i<7;i++) // извлечь четыре байта аккумулятора str= buf[i]; // упаковать их в строку volt=atoi(str); //преобразовать в целое число volt=(volt/10)-100; //удаляем добавки до 4-х байт batt=float(volt)/55.5; //преобразуем в реальный вид напряжения в вольтах //и пока храним в глобальной переменной for (byte i=7;i<11;i++) // извлечь четыре байта направления str= buf[i]; // упаковать их в строку int w_Dir=atoi(str); //преобразовать в целое число w_Dir=(w_Dir-1000)/10; //возвращаем к исходному виду wDir=lowByte(w_Dir); //младший байт - код Грея <выводим направление на дисплей через оператор case> . . . . .
Coefficient 55,5 - conversion de la valeur du code ADC en tension réelle, sa valeur dépend de la tension de référence et des valeurs des résistances du diviseur.

Soit dit en passant, le code Gray a une particularité : l'ordre des bits y est sans importance, le code conserve toutes ses propriétés pour toute permutation. Et puisque, lors du décodage, nous considérons toujours chaque cas séparément ici, les bits peuvent être considérés dans n'importe quel ordre et même confondus lorsqu'ils sont connectés. C'est une autre question s'ils voulaient en quelque sorte rationaliser cette question - par exemple, créer un tableau de valeurs de direction ("s", "ssz", "sz", "zsz", "z", etc.), et à la place de considération individuelle, chaque variante extrait les désignations par numéro dans ce tableau. Ensuite, il faudrait convertir le code Gray en binaire ordonné, et l'ordre des bits jouerait un rôle important.

Et enfin, nous extrayons la valeur de vitesse et fermons toutes les déclarations :

Pour(octet i=19;i<23;i++) // Получить четыре байта частоты str= buf[i]; // упаковать их в строку int wFrq=atoi(str); //преобразовать в целое число wFrq = (wFrq-1000)/10; //удаляем добавки до 4-х байт wFrq=10+0.5*wFrq;//скорость в целом виде с десятыми <отображаем ее на дисплее поразрядно>)//end if str=DAT )//end vw_get_message ) //end vw_have_message(); . . . . .
Ici 10+0.5*wFrq est l'équation d'étalonnage. 10 dm/s (c'est-à-dire 1,0 mètre par seconde) est le seuil de démarrage, et 0,5 est le facteur de conversion fréquence/vitesse (en dm/s). Avec une valeur nulle de la fréquence d'entrée, cette équation donne 10 dm/s, il faut donc faire particulièrement attention à afficher non pas 1 m/s, mais une valeur nulle. Vous pouvez calibrer le capteur de vitesse à l'aide de l'un des anémomètres portables les moins chers et d'un ventilateur de bureau. N'essayez pas de déterminer expérimentalement le seuil de départ - il sera beaucoup plus précis si vous marquez deux ou trois points de la droite d'étalonnage de la vitesse V à partir de la fréquence F : V = Vp + K × F à différentes vitesses d'écoulement, puis le seuil de démarrage sera déterminé automatiquement comme la valeur Vp (l'ordonnée du point d'intersection de cette droite avec l'axe des vitesses).

Il reste une chose à faire avant de fermer la boucle principale. Nous avons la tension de la batterie, mais vous n'avez pas besoin de l'afficher tout le temps - prenez simplement de la place. Pour cela, le bouton Kn1 est nécessaire - en cliquant dessus, nous remplaçons temporairement (jusqu'à la prochaine mise à jour des données) la ligne température-humidité externe par la valeur de tension :

Si (digitalRead(16)==LOW)( //bouton enfoncé<выводим напряжение на дисплей, затирая значение температуры-влажности>)//délai du bouton de fin (500); )//fin de boucle
J'avais un bouton, comme on peut le voir sur le schéma, avec un contact inverseur, mais rien ne m'empêche d'en installer un normal avec un fermant, en le connectant à l'alimentation via une résistance. Vous pouvez également ajouter à cela le clignotement de symboles sur l'écran au cas où la tension de la batterie descendrait en dessous, par exemple, de 10 volts, comme signe qu'il est temps de la changer.

En conclusion, à propos des capteurs météorologiques. Le SHT-75 a été utilisé comme capteur extérieur - le seul capteur amateur que j'ai trouvé qui ne nécessite pas d'étalonnage et affiche des valeurs réelles de température et d'humidité dès la sortie de la boîte (d'où son prix élevé).

Une bibliothèque pour le connecter peut être trouvée.

Le SHT-75 est conçu de manière assez stupide : le substrat métallique de la carte conduit très bien la chaleur, il faut donc la sortir complètement du boîtier. Sinon, la présence d'un seul contrôleur ATmega328 avec un régulateur d'alimentation dans un boîtier fermé suffit à chauffer le capteur de quelques degrés à travers le substrat de la carte même si sa tête est déplacée à l'extérieur. Mon circuit avec capteurs de vent, avec ses courants de 20-130 mA (même si le courant est négligeable en millisecondes) a chauffé le SHT-75 degrés de cinq, il a donc été retiré et installé séparément sur une plaque en plastique dépassant du boîtier sur le côté .

Les données du SHT-75 sont prises par le même contrôleur que les données des capteurs de vent et envoyées depuis le module distant dans un seul paquet via un canal sans fil de 433 MHz. Ils sont également convertis en une chaîne de 4 octets pour la prétransmission.

Pour mesurer la température et l'humidité à l'intérieur de la pièce, le banal DHT-22 a été choisi - comme la portée y est petite par rapport à la rue, le capteur à utiliser ne fait aucune différence (sauf, bien sûr, le DHT-11, qui ne devrait pas être utilisé du tout en aucune circonstance, dans le but pour lequel il a été conçu, il est tout simplement inutilisable). La température du DHT-22 a été corrigée en fonction des mesures avec un thermomètre à mercure (elles coïncidaient complètement avec le SHT-75 !), et l'humidité a été légèrement ajustée par rapport au SHT-75. Les corrections sont entrées juste avant l'indication sur l'afficheur.

Soit dit en passant, le DHT-22 doit également être retiré du boîtier avec des écrans - sinon il va inévitablement chauffer et mentir. Je le fixe sur un support en plastique au fond du boîtier, à une distance de dix millimètres de celui-ci. Cette circonstance, soit dit en passant, comme je le soupçonne, est l'une des raisons (en dehors du manque d'étalonnage individuel) pour lesquelles toutes les stations météorologiques domestiques de marque RST et Oregon mentent sans vergogne dans leurs lectures, ayant une propagation même avec elles-mêmes (un capteur interne externe) de deux ou trois degrés et jusqu'à dix pour cent d'humidité.

Baromètre ne présente aucun problème, car presque tous ceux disponibles dans le commerce sont fabriqués sur la même base - la puce microélectromécanique (MEMS) BMP180 ou ses modifications. Mon expérience personnelle avec la variante moins courante basée sur LPS331AP a été négative : une bibliothèque est plus difficile à trouver, et pour couronner le tout, un conflit a été trouvé avec d'autres périphériques sur le bus I2C. Les lectures du baromètre peuvent devoir être ajustées sur le site d'installation - chaque 10-12 mètres de hauteur au-dessus du niveau de la mer réduit la pression de 1 mm Hg. De l'art. Par conséquent, une certaine valeur devra être soustraite des lectures (ou ajoutée) pour que la valeur de pression corresponde aux lectures de la station météo officielle de la région.

Je ne donne pas tous les programmes de la station météo dans leur intégralité - ils sont plutôt encombrants et vous ne pourrez toujours pas répéter la conception en tête-à-tête. Si quoi que ce soit, frappez sur le PM.

Mise à jour du 30/06/17.Énergie solaire installée. Trousse d'ici :
le panneau solaire
manette
batterie
Tous ensemble + livraison à Moscou dans les 2,5 tyr. Fonctionne parfaitement.
Une méthode intéressante pour calculer la puissance d'une batterie solaire et d'une batterie, qui est proposée par des consultants de ce site. Un exemple de calcul pour 3 W de consommation électrique (j'en ai beaucoup moins), je cite :
"3W fois 24h et divisé par 6 = 12Ah est la capacité minimale de la batterie
3W multiplié par 24h et divisé par 3h = 24W est la puissance minimale de la batterie solaire.
Sans commentaires.
Dans mon cas, la capacité résultante de la centrale solaire est dix fois supérieure à celle requise dans les pires conditions météorologiques. Par conséquent, dans le contrôleur de capteur, vous ne pouvez pas trop vous soucier des économies d'énergie et appliquer toutes les fréquences de lecture et de moyenne nécessaires.

Mise à jour du 13/09/18. Pendant près de deux saisons d'exploitation, les forces et les faiblesses de la station se sont révélées. Les points faibles sont, tout d'abord, que le cycle de mise à jour des lectures de 16 secondes (sur quatre séries de mesures), comme il l'était à l'origine, est trop long. L'installation d'une batterie solaire avec une batterie tampon a permis de ne pas penser à l'économie d'énergie et de jouer avec le temps de cycle. En conséquence, le cycle a été fixé à 8 secondes (quatre mesures en deux secondes).
Parmi les améliorations mécaniques, un palier de butée solide a été introduit sous la pointe du capteur de vitesse (oui, j'ai été averti de son besoin à l'époque, mais je n'ai pas compris comment le faire à l'époque). Après un certain temps, l'axe du capteur a complètement traversé le support fluoroplastique et le seuil de démarrage a fortement augmenté (d'ailleurs, cela n'a pas du tout affecté la sensibilité de la girouette). Par conséquent, le support a été remplacé par un palier de butée en acier inoxydable, dans lequel un petit évidement a été réalisé avec un foret fin. J'ai le pressentiment que plus tard je devrai inventer autre chose avec la pointe qui, comme tout l'axe, est en duralumin. Mais je l'ai reporté jusqu'au moment où le capteur devrait encore être refait: le disque laser, pris comme base de conception, est devenu nuageux à cause du soleil en deux saisons et a commencé à se fissurer.

Mise à jour du 06/05/19.
A propos de l'altération du capteur (girouette laissée identique). Le capteur de vitesse a dû être refait à la fois à cause de l'axe usé et à cause du disque laser devenu inutilisable. La conception de base reste la même, mais le nouveau disque laser est peint à la bombe avec de la peinture dorée. La solution pour la pointe de l'axe a été trouvée sous la forme suivante. Dans l'axe duralumin, un évidement a été percé exactement au centre, et une coupe de 3 mm du haut d'un robinet chinois y a été insérée sur une seconde colle. Le dessus du robinet est un cône bien centré avec un angle d'environ 70-80 degrés, il a en outre été poli avec du papier de verre zéro puis avec de la pâte GOI. Comme base, j'ai utilisé la tête d'une vis M3 en acier inoxydable avec une fente sciée, dans laquelle une petite dépression est marquée au centre avec un foret ordinaire D = 2 mm. Cette vis a été vissée directement dans un évidement du PTFE, scié par l'axe avant que le centrage ne soit assuré.
La pointe de l'axe a été lubrifiée avec de la graisse graphite pour se protéger de la corrosion (puisque les propriétés inoxydables du taraud me sont inconnues). Après quelques broyages, le seuil de départ a tellement diminué qu'il est devenu impossible de le mesurer avec un anémomètre propriétaire, dans lequel le seuil est d'environ 0,3-0,5 cm / s. D'après des données indirectes (en construisant une droite à partir de deux points), un seuil de 0,3 m/s a été volontairement retenu, bien qu'il soit probablement un peu inférieur.

Le principal changement dans les algorithmes de calcul concerne également les capteurs de vent, et j'ai trouvé utile de mettre cela dans .


Les vents vont des brises légères aux grains soudains et en rafales qui apportent la destruction et la mort. Les vents les plus forts sont les ouragans. Ces vents de force ouragan se forment au-dessus des océans sous les tropiques lorsque d'énormes masses d'air sont aspirées dans les zones de basse pression. Les nuages ​​​​d'orage entourent souvent le centre (ou l'œil) d'un ouragan à des vitesses plus rapides qu'un train de chemin de fer.

Vous n'avez peut-être jamais connu de vents d'ouragan, mais où que vous viviez, vous avez probablement connu des journées calmes et venteuses. Fabriquez un anémomètre, l'instrument le plus simple pour mesurer la vitesse du vent, et enregistrez la force du vent dans votre région par une journée venteuse.

Tu auras besoin de:

Broche en bois épaisse
fines tiges de bois
corde et fil à plomb
tasse de yaourt
ruban adhésif (étanche)
punaises
carton coloré
tube en cuivre
la colle
les ciseaux

1. Prenez une épingle en bois épaisse et insérez-la fermement dans le tube en cuivre. Ce sera le support de l'anémomètre.

2. Demandez à un adulte de vous aider à percer un trou dans le support. Le diamètre du trou doit correspondre à l'épaisseur de l'une des fines tiges. Faites une fente à une extrémité de cette fine tige. Insérez-le dans le rack et fixez-le comme indiqué sur l'image.

3. Découpez la pointe de la flèche et l'empennage dans du carton et fixez-la aux extrémités d'une fine tige.

4. Découpez un quart de cercle dans du carton de couleur et fixez-le à la flèche avec du ruban adhésif.

5. Prenez un grand verre de yaourt. Collez-le à une extrémité de la deuxième tige de bois mince.

6. Demandez à un adulte de vous aider à percer un petit trou à l'autre extrémité de la deuxième tige, puis épinglez-la ou clouez-la au sommet du poteau. Assurez-vous que la tige est libre de tourner.

7. Choisissez un endroit approprié pour l'observation en extérieur. Enfoncez un tube de cuivre dans le sol, puis insérez-y un poteau. Fixez la crémaillère dans la position souhaitée à l'aide de la punaise. Installez le rack strictement verticalement, en accrochant un fil à plomb à la flèche (vous pouvez utiliser un écrou comme fil à plomb). Le fil à plomb doit être strictement parallèle au rack.

Le vent fait tourner l'aiguille de l'anémomètre pour qu'elle pointe dans la direction d'où souffle le vent.
La tasse de yaourt et la tige se lèveront avec elle. Plus le vent est fort, plus la tige du pointeur monte haut.

Échelle de Beaufort

Il s'agit d'une échelle de mesure de la vitesse du vent, basée sur des observations de la nature. L'échelle a été inventée par l'amiral anglais Sir Francis Beaufort il y a près de 200 ans.

La vitesse du vent sur les cartes météo est indiquée par le nombre de tirets sur l'icône de force du vent.

Vitesse du vent Caractéristique verbale Signes d'estimation de la vitesse du vent
Mme km/h score
Beaufort
0,0-1,5 0,0-1,8 0 Calme La fumée monte verticalement ou presque verticalement, les feuilles sont immobiles
0,6-1,7 1,9-5,1 1 Vent calme La direction du vent est déterminée par la fumée
1,8-3,3 5,2-11,7 2 Légère brise Le mouvement du vent est ressenti par le visage, les feuilles bruissent
3,4-5,2 11,8-18,7 3 vent faible Les feuilles et les fines branches des arbres se balancent constamment, le vent agite des drapeaux légers, la mer est recouverte d'une onde lumineuse continue.
5,3-7,4 18,8-26,6 4 vent modéré Le vent soulève la poussière, met en mouvement les fines branches des arbres, sur des vagues séparées apparaissent parfois des "agneaux" blancs qui disparaissent rapidement
7,5-9,8 26,7-35,3 5 Brise fraîche D'épaisses branches d'arbres se balancent ; "les agneaux" sont visibles sur chaque vague
9,9-12,4 35,4-44,0 6 Vent fort Les branches épaisses des arbres se balancent, les fils télégraphiques bourdonnent, les "agneaux" sur les vagues sont plus longs (5-10 sec.)
12,5-15,2 44,1-54,7 7 vent fort Les cimes des arbres se balancent, les grosses branches se plient, il n'est pas pratique d'aller contre le vent. Vagues écumantes sur la mer
15,3-18,2 54,8-66,0 8 Vent très fort Le vent brise les branches fines et les branches sèches des arbres, ce qui rend difficile le déplacement
18,3-21,5 66,1-77,5 9 Tempête Le vent renverse cheminées et tuiles. Il est très difficile d'aller contre le vent.
21,6-25,1 77,6-90,2 10 Gros orage Destructions importantes, arbres déracinés
25,2-29,0 90,3-104,4 11 Tempête violente Grande destruction : abattre des poteaux télégraphiques, des wagons
Plus de 29,0 Plus de 104,4 12 Ouragan Détruit des maisons, cause de grandes destructions

Mon nouvel anémomètre. L'anémomètre s'est avéré pas petit, le générateur est un disque, le diamètre de la vis est de 0,5 m.L'anémomètre est de type horizontal avec une hélice à six pales. L'article contient une description détaillée avec photos et vidéos

Nouvel article sur le sujet + photo et vidéo - Anémomètre android + microphone

Enfin, il est venu à l'anémomètre. Ayant déjà fait trois éoliennes, je ne sais toujours pas exactement quel vent et combien donnent mes éoliennes. Maintenant, il n'y a qu'une seule éolienne en fonctionnement, ma plus aboutie, bien qu'elle soit toute assemblée "sur le genou". J'imagine grossièrement la force du vent et peux faire la distinction entre un vent de 5 m/s et 10 m/s, mais je souhaite tout de même connaître plus précisément la vitesse du vent afin de déterminer la puissance de l'éolienne.

Pendant plusieurs jours, de temps en temps, j'ai pensé à fabriquer un anémomètre avec quelque chose, mais jusqu'à présent, rien de sensé n'a émergé des déchets disponibles à la maison. J'ai trouvé deux petits moteurs d'un lecteur DVD, mais ils sont douloureusement minuscules et il est difficile de trouver des lames pour un arbre mince.

Un ventilateur de voiture a attiré mon attention, ils sont généralement installés dans des camions. C'est celui que je l'ai torturé. Démonté et démonté le moteur. J'ai cassé les pales de l'hélice et il ne restait que la base - la partie centrale, qui est posée sur l'arbre. Ensuite, j'ai réfléchi aux lames à fixer dessus, j'ai essayé les fonds de bouteilles et de canettes en plastique, mais je n'ai pas aimé tout cela.

Ensuite, j'ai trouvé un morceau de tuyau en PVC d'un diamètre de 5 cm et d'une longueur de 50 cm, j'en ai fait 4 lames, j'ai juste coupé le tuyau dans le sens de la longueur en deux moitiés, et les moitiés, chacune en deux parties, se sont avérées 4 lames. Dans la base, qui est restée de la vis native, j'ai percé 4 trous pour fixer les lames, et j'ai également fait 4 trous dans les lames. Il a tordu le tout en boulons et a obtenu une hélice à quatre pales - savonius (la première verticale "sérieuse").

Eh bien, j'ai trouvé les fils de la longueur requise, épissé 5 mètres de câble d'antenne et 8 mètres de celui habituel. J'ai immédiatement connecté les fils afin de mesurer les paramètres en tenant compte de la longueur du fil, car les données peuvent différer si les mesures sont prises sur un fil de mètre, ou sur 13 m.

Ensuite, j'ai trouvé un morceau de tube métallique d'environ 80 à 90 cm de long, je l'ai plié avec la lettre Z et j'ai enroulé le moteur. Ce tube fixera l'anémomètre au mât. Il n'y a rien de compliqué, vous pouvez utiliser n'importe quel matériel à portée de main.

Eh bien, comme j'ai entièrement assemblé l'anémomètre, je l'ai installé sur ma moto pour le calibrer. Ci-dessous sur la photo, vous pouvez voir comment cela a été fait, tout est primitif et simple. Sur le miroir des primates avec du ruban électrique, un compteur de savon, en général, fixait tout en quelque sorte afin de libérer mes mains pour contrôler la moto.

Cette journée d'automne est très réussie du fait de l'absence quasi totale de vent, qui, soit dit en passant, a servi de montage rapide de l'anémomètre, une telle journée ne devrait pas disparaître. Je ne voulais pas aller sur l'asphalte, car avec un engin incompréhensible devant la moto, j'attirerais l'attention sur moi, alors j'ai décidé de rouler à travers les champs le long des plantations forestières.

J'ai fait des allers-retours et dans différentes directions et j'ai enregistré les lectures du multimètre sur le téléphone à différentes vitesses. L'anémomètre a démarré à une vitesse de 7 km/h, et j'ai progressivement roulé en va-et-vient à différentes vitesses à partir de 10 km/h et le maximum de 40 km/h, c'était possible plus, mais les chemins de terre sont très accidentés et vous pouvez n'accélère pas beaucoup.

>

Après pokatushek, de telles données ont été dessinées. Le multimètre a montré à 10km/s =0.06V, à 20km/h=0.12V, à 30km/h=0.20V, à 40km/h=0.30V.

Ensuite, à l'aide d'une calculatrice, j'ai calculé des lectures pour des vitesses de vent intermédiaires.

Volts - vitesse du vent m / s.

Les données supérieures à 11 m/s ont été calculées en dessinant sur une feuille de papier un graphique de croissance de la tension en fonction de la vitesse du vent, qui a continué en douceur jusqu'à 15 m/s. Le même jour, ou plutôt le soir, j'ai installé un anémomètre sur le mât de l'éolienne. Il a abaissé le moulin à vent et attaché l'anémomètre en dessous. J'ai temporairement tiré le tuyau sur un fil et l'ai enveloppé en plus avec du ruban électrique, il s'est avéré solide. Eh bien, alors j'ai soulevé le tout en place et maintenant il y a un anémomètre sur le mât à côté de l'éolienne, qui démarre à 3 m / s et indique régulièrement la vitesse du vent.

>

>

Ci-dessous sur la photo, une éolienne déjà surélevée avec un anémomètre fixe. Je n'ai pas pris de photos plus en détail, car il n'y a rien de compliqué là-bas, et il n'y a rien à répéter. Un anémomètre peut être assemblé à partir de n'importe quoi, de presque n'importe quel moteur. Bien sûr, il est plus pratique de calibrer en voiture. Là et confortable, et plus pratique, et le compteur de vitesse est plus précis. Mais j'ai opté pour une moto, et cela a également semblé bien fonctionner, j'espère que si le compteur de vitesse ment, alors pas beaucoup.

>

C'est tout pour l'instant, c'est la première version de cet anémomètre, et je ne pense pas la dernière. En attendant, je vais attendre le vent et savoir ce que donne mon éolienne. Eh bien, je vais compléter cet article avec ces données. Peut-être qu'il y a quelque chose à refaire...

Une addition

Il y avait du vent et j'ai testé l'anémomètre. Les premières observations de la force du vent et la lecture de l'ampèremètre du générateur ont clairement montré à quel point le vent était instable. Ici en bas, comme le mât n'est pas haut, il se compose principalement de courtes rafales, dont la durée ne dépasse pas deux ou trois secondes, et en quelques secondes le vent peut varier fortement.

Une vis d'anémomètre non chargée réagit brusquement à chaque rafale et changement de vitesse du vent. Et la vis chargée de cette éolienne est encore en retard dans les réactions, et à cause de cela, des données non synchrones dans les lectures. Aujourd'hui, le vent est de 3 à 7 m / s, l'anémomètre a vraiment capté quelques rafales jusqu'à 10 m / s, mais elles ont duré moins d'une seconde et l'éolienne n'a tout simplement pas pu y répondre.

Après un certain temps d'observation, certaines valeurs moyennes de l'intensité du courant de l'éolienne ont été tirées à un certain vent. La vis commence à partir de 3,5-4 m / s, en chargeant 0,5 A à 4 m/s, 1 A à 5 m/s, 2,5 A à 6 m/s, 4 A à 7 m/s, 5 A à 8 m/s. Ces données sont moyennées, car l'ampèremètre est stot analogique, et je peux me tromper jusqu'à 0,5 A dans les lectures de courant de l'éolienne.

Ça aurait dû être quelque chose comme ça

Étapes de fabrication du capteur lui-même :

L'affaire a fait ceci : j'ai pris un morceau de tuyau carré et j'y ai découpé une fenêtre pour pouvoir ensuite y monter le remplissage (au fait, j'ai découpé la fenêtre avec la température, mais je voulais vraiment le faire que je me suis levé et que je suis allé scier). Ensuite, j'ai soudé une plaque à l'intérieur (support de roulement interne), puis soudé le fond (support de roulement inférieur). Quand j'ai décidé de faire le haut, j'ai décidé de faire un toit en pente - pour cela, j'ai découpé quatre triangles et je l'ai soigneusement saisi, puis je l'ai fait bouillir complètement et j'ai ainsi fait une visière pointue. Ensuite, il l'a serré dans un étau et, avec une perceuse de 0,5 mm plus petit que le diamètre du roulement, a percé un trou vertical dans le couvercle inférieur et dans ceux du milieu, tous deux pour les roulements. De sorte que les roulements en acier avec un étirement ont été ajustés par un balayage. Les roulements s'adaptent comme il se doit. Ensuite, il y a inséré un clou de 100 ku légèrement poli, tout en plaçant une rondelle en plastique avec 4 fentes dessus au milieu de la fenêtre. J'ai coupé un fil au bas de l'ongle et j'ai vissé la roue dessus.

J'ai fabriqué la roue comme suit: j'ai soudé trois clous à l'écrou avec une électrode à deux, puis les ai coupés et coupé les fils aux extrémités desquels j'ai vissé les moitiés de la boule.

Un porte-canne hexagonal en acier inoxydable a été soudé au corps. Le boîtier lui-même a été peint deux fois avec de l'émail blanc, de sorte qu'il ne rouille certainement pas.

J'ai décidé de ne pas inventer de vélo, mais de le faire comme dans une souris d'ordinateur, il y a une rondelle en plastique avec quatre fentes sur l'axe de rotation, lorsque la roue tourne, elle tourne et la rondelle scintille sur le capteur, qui est attaché sur le capot avant et lorsque le capot est vissé, c'est comme une fois qu'il devient tel que la rondelle fendue tourne et que le flux lumineux de la LED au phototransistor entre et sort. C'est tout ... ici vous avez des impulsions, et elles peuvent être comptées et avoir le nombre de tours par seconde.

Leddiodno - capteur phototransistor sorti de l'imprimante, il y en a en vrac.

D'abord fabriqué à partir de balles de tennis

J'ai dû modifier légèrement l'appareil. Sur la turbine des balles de tennis, il a démarré avec un vent de 5m/s. des balles ont été achetées dans un magasin de jouets pour enfants d'un diamètre de 55 mm. Commence à 2m/s et mesure jusqu'à 22m/s, j'en ai assez.

Une fois le capteur prêt. Nous devions faire de l'électronique.

La première option était la technologie LUT maison + un masque vert de Chine, qui sèche sous la lumière ultraviolette.

55 sur la photo correspond aux tours par seconde. Il fallait en quelque sorte traduire en m / s. J'ai longtemps pensé comment, j'ai même eu deux anémomètres, anciens de l'URSS et chinois pour 50 $, mais il y a eu des problèmes de vérification, car le vent souffle en rafales et ne souffle pas de manière stable.

Par conséquent, j'ai trouvé ceci : un jour de congé, papa et moi avons trouvé 2 km de route plate à l'extérieur de la ville sans voitures, sans vent et en plantant des arbres des deux côtés (papa conduisait et j'étais assis à mi-chemin devant la fenêtre) et faisons des allers-retours. Tout d'abord, j'ai configuré le repère de l'URSS et les anémomètres chinois, je me suis assuré qu'ils affichent tous les deux la même chose et correctement, car si vous divisez la vitesse sur le compteur de vitesse de la voiture par 3,6, vous obtenez le chiffre que les anémomètres ont montré en m / s. Papa roulait à la même vitesse et les instruments indiquaient le même vent. C'est ainsi que j'ai testé mon appareil. Papa a ajouté +5 km par heure à chaque fois, et j'ai noté un nouvel indicateur (rpm). Les mesures ont été prises trois fois. Lorsque nous roulions à plus de 80 km/h (22 m/s), mon anémomètre ne pouvait plus tourner et le chiffre se figeait, car il ne mesure pas plus de 22 m/s...

Soit dit en passant, les Chinois ont montré jusqu'à 28 m / s. Cue de l'URSS jusqu'à 20 m/s. Lorsque je l'ai installé dans un endroit avec un programme modifié, j'ai de nouveau vérifié avec les Chinois que tout se passait bien.

Maintenant, il est modifié pour Arduino.

Les plans sont de visser cela dans le système de maison intelligente afin que vous puissiez entrer et gérer les charges dans la maison à partir de votre smartphone, surveiller la température dans la maison (ceci est pertinent pour moi, c'est juste que parfois le gaz est éteint dans l'hiver et c'est bien de voir quelle température) il y aura un capteur de gaz, et en plus il y aura affichage de la vitesse du vent près de la maison.

Vidéo de travail

Résultats des travaux pour l'hiver

s-st --- heures pour l'hiver
0 m/s --- 511,0
1 m/s --- 475,0
2 m/s --- 386,5
3 m/s --- 321,2
4 m/s --- 219,0
5 m/s --- 131,5
6 m/s --- 63,3
7 m/s --- 32,5
8 m/s --- 15,4
9 m/s --- 9,1
10 m/s --- 5,0
11 m/s --- 3,5
12 m/s --- 2,2
13 m/s --- 1,3
14 m/s --- 0,8
15 m/s --- 0,5
16 m/s --- 0,5
17 m/s --- 0,2
18 m/s --- 0,0
19 m/s --- 0,1


D'après les résultats de deux hivers, j'ai vu que mes vents n'étaient pas forts et que l'éolienne ne serait pas efficace, j'en ai donc fabriqué une petite avec des pales de 50cm. puissance de crête de 150 watts. Je me suis juste assuré qu'au moins une ampoule économique brillait lorsque la lumière disparaissait.

Maintenant un peu sur Arduino.

J'ai trouvé un schéma de la souris sur Internet, il illustre bien le fonctionnement de mon système.

Sur la base du diagramme de la souris, j'ai fait le schéma suivant.

Les impulsions proviennent du phototransistor vers l'Arduino, et il les perçoit comme des pressions sur les boutons.

L'algorithme du programme est le suivant : nous considérons le nombre d'appuis sur un bouton en une seconde, nous avons donc la fréquence de rotation. Pour convertir cette fréquence en m/s. à l'époque où je l'ai fait sur Atmel, j'ai fait un algorithme pour calculer la fréquence en m / s. Ça ressemblait à ça :

ob_per_sec=0 ; // Variable dans laquelle tombe la fréquence des tours par seconde.

int speed_wind=0 ; // La valeur ira ici après que la fréquence ait été convertie en m/s.

entier speed_wind_max=0 ; // La valeur maximale de la lecture du vent m/s va ici.

entier speed_wind_2=0 ; // Nombre de secondes depuis le début du programme avec une vitesse de vent de 2 m/s.

entier speed_wind_3=0 ; // Nombre de secondes depuis le début du programme avec une vitesse de vent de 3 m/s.

entier speed_wind_4=0 ; // Nombre de secondes depuis le début du programme avec une vitesse de vent de 4 m/s.

entier speed_wind_5=0 ; // Nombre de secondes depuis le début du programme avec une vitesse de vent de 5 m/s.

…………………………………………………………..

entier speed_wind_22=0 ; // Nombre de secondes depuis le début du programme avec une vitesse de vent de 22 m/s.

si (ob_per_sec >0 && ob_per_sec<4) { speed_wind=2; speed_wind_2++;}

si (ob_per_sec >4 && ob_per_sec<7) { speed_wind=3; speed_wind_3++; }

si (ob_per_sec >7 && ob_per_sec<11) { speed_wind=4; speed_wind_4++; }

si (ob_per_sec >11 && ob_per_sec<15) { speed_wind=5; speed_wind_5++; }

si (ob_per_sec >15 && ob_per_sec<18) { speed_wind=6; speed_wind_6++; }

si (ob_per_sec >18 && ob_per_sec<23) { speed_wind=7; speed_wind_7++; }

si (ob_per_sec >23 && ob_per_sec<27) { speed_wind=8; speed_wind_8++; }

si (ob_per_sec >27 && ob_per_sec<30) { speed_wind=9; speed_wind_9++; }

…………………………………………………………..

si (ob_per_sec >60 && ob_per_sec<67) { speed_wind=22; speed_wind_22++; }

if (speed_wind> speed_wind_max)( speed_wind_max = speed_wind ;)// vérifie et écrase si la valeur maximale est supérieure à la précédente écrite.

Et afficher la valeur.

Si nécessaire, vous pouvez alors voir combien de minutes le vent a soufflé à une certaine vitesse, pour cela vous devez afficher la variable (avec l'indice de vitesse nécessaire) speed_wind_№ (mais divisez-la par 60 pour obtenir les minutes.).

Je l'ai fait dans mon programme : lorsqu'un certain bouton est enfoncé, toutes les variables sont affichées à tour de rôle, de speed_wind_1 à speed_wind_22.

Chargement...Chargement...