Anémomètre à ultrasons sur deux HC-SR04

Anémomètre ultrasonique

Le dispositif de ce type utilise le fait que l'échographie s'étend plus rapidement dans la direction dans laquelle le vent est valide. Bien entendu, un anémomètre à ultrasons mesure les trois composantes du vecteur éolien dans un espace tridimensionnel (Fig. 4.5). Le long de chaque axe, il y a deux paires d'émetteur "récepteur" à une distance de 0,1-0,5 m. L'émetteur envoie des ondes ultrasonores continues ou pulsées.

En fonction de la direction de la propagation du vent avec une onde à ultrasons lorsque la onde de distance passe rÉ. Entre l'émetteur et le récepteur est déterminé:

υ ultrason - La vitesse de propagation de l'onde ultrasonore, m / s; υ 1 - La vitesse de propagation de la projection de vecteur éolien sur l'axe jE. , Mme.

Délai de différence Distance de dépense rÉ. Entre l'émetteur et le récepteur, deux ondes ultrasonores sont les suivantes:

L'orientation des convertisseurs par rapport à la direction de la propagation du vent est illustrée à la Fig. 4.6.

Figure. 4.5. Anémomètre ultrasonique

Figure. 4.6. ( U. - le taux de propagation de l'onde ultrasonore; V - Taux de propagation du vent N - North S - South, W-West; E-est)

Méthodes mesure à distance Paramètres de vent

Radiosonde

Radiosonde - Un dispositif utilisé pour mesurer certains paramètres de vent et recevoir un récepteur d'informations. De plus, il contient des capteurs de température, une humidité et une pression atmosphérique. Évaluation de la position horizontale de radiosond par rapport au point avec lequel il fonctionnait est effectué en utilisant radar ou alors radar (À partir de la détection de la radio anglophone et de la variante - propriétaires de radio et définitions de distance) - Installations de détection et de détermination de l'emplacement des objets par radar. Ce type de techniques de télédétection implique l'utilisation d'ondes électromagnétiques dans une région de 0,1 cm à 2 m (qui correspond aux fréquences de 100 MHz à 50000 MHz). L'objet de l'étude (Radiosond) est irradié et le rayonnement réfléchi a des informations opérationnelles sur les coordonnées des radiosond et des paramètres de vent. La hauteur que le radiosond atteint est de 20 km et la durée du vol est de 90 à 120 minutes.

Sodar

Anémomètre ultrasonique destiné à une mesure à distance des paramètres de vent appelés (de l'anglais. DONC. Und détection et allant). La base du fonctionnement de cet appareil est la soi-disant effet Doppler : Lors de l'irradiation d'un objet se déplaçant à des vitesses υ, Vague ultrasonique d'une certaine longueur d'onde Λ La dispersion des vagues se produit et la fréquence (longueur d'onde) de l'onde ultrasonore dispersée dépend de la vitesse de l'objet. Décalage Doppler de la fréquence de l'onde ultrasonore dispersée à un angle Θ se déplacer à la vitesse υ , décrit par l'expression:

(4.13)

φ - angle entre la direction de la vitesse υ et la direction de la propagation de la vague ultrasonore.

Sodar, situé sur la surface de la Terre, envoie des impulsions ultrasonores (Fig. 4.7).

La fréquence des signaux reflétés de l'atmosphère acquiert le déplacement Doppler, dont la valeur est proportionnelle à la vitesse de propagation du vent. L'application Sodar permet de mesurer les paramètres de vent à travers chaque kilomètre d'une hauteur à 17 km au dessus du niveau de la mer.

Vitesse du vent, anémomètres à ultrasons mesurables, atteint 30 m / s.

Inconvénient des anémomètres à ultrasons La dépendance du taux de propagation d'ultrasons de la température, de l'humidité, de la pression atmosphérique, qui nécessite un étalonnage approprié de l'instrument.

De plus, l'équipement électronique augmente le coût des instruments de ce type.

Chargeur

Chargeur (De l'anglais. Détection de lumière et allant de la lumière) Contrairement à Sodar génère et registre les impulsions laser. Le principe de l'action de la lidar à la télécommande des paramètres du vent est de diffuser le rayonnement laser sur les aérosols d'air (poussière, gouttes d'eau, cristaux de poussière ou de saleté) se déplaçant à la vitesse du vent et à l'enregistrement ultérieur de le déplacement Doppler (voir 26.7 .3). Ces systèmes laser peuvent mesurer et évaluer la vitesse et la direction du mouvement éolien et de la turbulence de l'air à de grandes altitudes.

Les systèmes laser à fibres optiques développés ces dernières années se caractérisent par une sensibilité extrêmement élevée (10-12).

Satellites et roquettes

Les radios-ends modernes déterminent la vitesse et la direction du vent à l'aide du système de positionnement global (système de positionnement global anglais) - l'agrégat de moyens radioélectriques,

Figure. 4.7. Sodar

déterminez la position et la vitesse de l'objet de l'objet sur la surface de la Terre ou dans l'atmosphère.

Les paramètres du flux d'air à haute altitude sont estimés avec des fusées. Ainsi, en 2012, l'Agence spatiale américaine (NASA) a lancé cinq missiles avec un intervalle de 80 C pour étudier les flux d'air à grande vitesse dans les couches hautes atmosphériques. Le projet s'appelait Atrex (expérience de fusée de transport anormale). Début a eu lieu sur le territoire du centre d'essai sur l'île de Walops en Virginie.

À une altitude d'environ 80 km, la fusée a été lancée dans un réactif spécial (triméthyl-aluminium), qui réagit avec de l'oxygène, est accompagnée d'une lueur (produits d'une telle réaction - oxyde d'aluminium, dioxyde de carbone et vapeur d'eau - inoffensif). La surveillance permettra aux scientifiques d'explorer le flux d'air. Les flux à grande vitesse (des centaines de kilomètres à l'heure) sont le plus grand intérêt pour les scientifiques d'altitude de 100 à 11 km, c'est-à-dire presque à la frontière avec de l'espace. Les méthodes traditionnelles étudient ces flux sont difficiles, car la densité d'air à de telles hauteurs est assez faible.

Le sondage à distance du vent avec des satellites vous permet de construire une carte de pare-brise sur la surface de la Terre, ainsi que d'étudier les flux d'air dans l'atmosphère.

Détermination de la direction du vent

Déterminer la direction de l'utilisation du vent rabat ayant un type de plaque métallique, qui tourne autour de l'axe vertical. Mesurer simultanément la vitesse et la direction de l'utilisation du mouvement de l'air anémumètre.

Le nombre de contacts de la vis à air de ce dispositif se transforme en une séquence d'impulsions électriques, dont la fréquence est proportionnelle à la vitesse du vent et le décalage de phase dépend de la direction. Le transfert d'informations sur la direction du vent dans les appareils modernes est effectué à l'aide d'un potentiomètre (Fig. 4.8). La modification de la position de l'enregistrement en elle entraîne la modification correspondante du courant électrique traversant le stator du système de réception, ce qui entraîne la rotation du rotor de ce système et la flèche indicatrice.

La précision de la détermination de la direction du vent par le système potentiométrique est de ± 3

Figure. 4.8.

Augmenter la précision peut utiliser système Solosinov (Fig. 4.9). La rotation du rotor du capteur d'étanchéité provoque l'apparition d'un EMF, proportionnelle au sinus de l'angle de rotation, ce qui conduit à l'apparence d'un courant électrique dans le stator récepteur Agsine correspondant au champ magnétique, ce qui provoque le rotor de récepteur. connecté à l'indicateur.

Figure. 4.9

(Le pointeur de direction du vent) est conçu pour déterminer visuellement la direction du vent. Il se compose de bas tissus, qui a une forme d'un cône tronqué, un cadre formant et des attaches (Fig. 4.10). Installé sur le mât. Les indicateurs de vent sont utilisés dans les aéroports et les entreprises chimiques, où il y a un risque de fuites gazeuses.

Pour déterminer la direction dominante du vent s'applique rose du vent - Diagramme de vecteur caractérisant la vitesse et la direction du vent dans une localité spécifique selon de nombreuses années d'observations.

Figure. 4.10.

Figure. 4.11.

Il ressemble à un polygone qui a la longueur des rayons, divergeant du centre du diagramme dans différentes directions (rumbach) proportionnelles à

répétabilité des vents de ces directions (Fig. 4.11).

Une organisation météorologique internationale nécessite des dispositifs destinés à mesurer la direction du vent de manière à déterminer la direction du vent dans la vitesse de vélo à vent de 0,5 à 50 m / s avec une résolution de ± 20 à ± 5 °.

Les dispositifs météorologiques comprennent un dispositif de mesure de la vitesse du vent, appelé anémomètre. Traduit de l'ancienne définition grecque signifie littéralement "vétérinaire". Malgré le nom, l'appareil n'a été inventé qu'au 19ème siècle. Il a été inventé par un astronome d'Irlande John Robinson pour déterminer la vitesse du vent.

Pour lequel le périphérique est utilisé

À ce jour, l'anémomètre de périphérique peut être trouvé dans diverses branches d'activité:

  • Aux stations de météorologie qui fonctionnent pour observer la météo.
  • Dans les aéroports. Ils apprécient le service de vol de sécurité.
  • Déterminer la poussée dans les systèmes de ventilation dans les industries minières et le charbon.
  • Dans la construction, des anémomètres sont utilisés pour assurer la sécurité: le dispositif est fixé sur le dessus de la flèche de la grue. Lorsque la vitesse du vent est atteinte au-dessus du paramètre de travail spécifié, il est interdit.
  • DANS agriculture Cet appareil est utilisé lors du traitement des cultures avec protection chimique et engrais.

Il s'agit d'une liste des directions principales où le périphérique de mesure de la vitesse est utilisé. Espèces distinctes De plus, la direction du vent peut mesurer dans différents plans, la température de l'air. Unités de vitesse du vent - Mètres par seconde - sont utilisés dans des appareils de toutes sortes.

Dispositif et principe de fonctionnement

L'anémomètre vous permet de mesurer la vitesse et la direction du vent. Il attrape le débit d'air, après quoi traite les informations reçues et transmet à l'enregistreur.

Les principaux nœuds de la conception ne sont que de trois blocs:

  • Un bloc mesurant directement la vitesse de repos d'air. Pour parler plus précisément, l'appareil attire la perturbation des masses d'air, qui est formée à la suite du mouvement du flux d'air.
  • Un convertisseur qui sert à convertir des remboursements d'air au paramètre physique.
  • Le dispositif d'enregistrement qui reçoit un signal du convertisseur.

Une chaîne particulière est formée, sur chacune des étapes dont une unité distincte effectue son rôle.

Variété de modèles

En fonction du principe de fonctionnement, le dispositif de mesure de la vitesse du vent est fabriqué en trois versions:

  • Mécanique. En raison du mouvement de l'air, il y a une rotation d'éléments individuels. Cette catégorie comprend une tasse d'anémomètre et une aile (ou une lame). Ils diffèrent entre eux la conception d'un élément qui perçoit les flux d'air.
  • Chauffage (ou thermique). Leur conception comprend un élément chauffant (il s'agit généralement d'un fil rougeoyant simple). Sous l'influence des masses d'air en mouvement cet élément refroidi. L'appareil détermine le degré de réduction de la température.
  • Ultrasons, qui mesurent la vitesse du son. Son, en passant par le gaz mobile, a des vitesses différentes. S'il se déplace vers le vent, sa vitesse sera inférieure. Et au contraire, lorsque vous déplacez dans une direction avec le vent, sa vitesse sera supérieure à celle de l'air stationnaire.

Classification

Le dispositif de mesure de la vitesse du vent dans sa structure a un capteur qui les contacte directement avec le flux d'air. En fonction du type de ce capteur, mettez en surbrillance types suivants Anémomètres:

  • Rotation, dans laquelle les éléments structurels individuels commencent à tourner sous l'influence de la vitesse du vent.
  • Ultrasons, qui sont différemment appelés acoustiques.
  • Le chauffage, ils sont également appelés thermiques.

  • Optique, qui sont à son tour divisés en laser et doppler.
  • Dynamique, dont le principe de travail est basé sur le tube Pito Prandtle.
  • Flotter.
  • Vortex.

Ceci est une liste de périphériques pouvant être trouvés à l'heure actuelle.

Anémomètre d'aile

Cet appareil est capable de déterminer la vitesse du mouvement de l'air, qui se situe entre 0,5 et 45 m / s. De plus, ce dispositif permet de mesurer la température, qui se situe dans la plage de moins 50 à 100 degrés.

La conception de l'anémomètre est telle que le vent est perçu par une roue à palettes. Ceci est une légère lumière de lumière qui influences mécaniques protégé par une bague en métal. Le principe de son travail ressemble à un fan ou à un moulin. Sous l'action du vent, la roue commence à faire pivoter. Selon les roues engrenages, sa rotation est transmise aux flèches du mécanisme de comptage.

L'anémomètre est disposé manuel de telle sorte que le mécanisme de comptage soit situé à côté de la roue. En raison de cela, un obstacle est créé pour le vent, limité ainsi à la plage de travail. De tels dispositifs peuvent mesurer la vitesse du vent, qui ne dépasse pas 5 m / s. Ces dispositifs conviennent à la mesure du flux d'air dans les mines de ventilation, des pipelines, des conduits d'air, etc.

L'aile anémomètre numérique est conçue de manière à ce que le capteur soit intégré à l'instrument ou à distance. Grâce à cette conception, il n'y a pas de barrière pour le vent. Par conséquent, l'appareil mesure le flux, dont la vitesse peut atteindre 45 m / s.

Applications d'un type de tasse

L'anémomètre Craister est capable d'effectuer des mesures uniquement dans un plan, qui est situé perpendiculaire à l'axe de rotation. La conception de l'appareil est de 4 tasses sous la forme d'un hémisphère, qui sont habillés sur des rayons de rotor en forme de croix symétrique.

Les premières options sont apparues cet appareil Retour en 1846. Leur créateur est John Robinson. Il a reçu le nom en raison de la similitude externe des lames avec une tasse. Le médecin a supposé que la rotation des gobelets n'affecte pas leur taille. À son avis, la vitesse de rotation des tasses est trois fois inférieure à la vitesse du mouvement éolien. Plus tard, cette théorie a été niée. Il a été prouvé que l'appareil possède le coefficient, qui se situe entre 2 et 3,5.

En 1926, John Patterson a offert un rotor avec trois tasses. Il a été observé que le couple maximal des tasses a été obtenue à leur tour d'un angle de 45 degrés concernant le mouvement du vent.

Au début des années 90 du siècle dernier, Derek Weston a amélioré un instrument de coupe pour mesurer la vitesse du vent. Son affinement autorisé à mesurer en outre la direction du mouvement éolien. Il l'a atteint façon simple - Sur l'une des gobelets définissez la case à cocher. Lorsque la case à cocher est pivotée, le plancher de piège se déplace dans le vent et le second - contre.

Les instruments manuels occasionnels comptent le nombre de révolutions effectuées pour la période allouée. Dans des anémomètres améliorés, le rotor se lie à des tachymètres de diverses espèces. Ces instruments sont capables de montrer la vitesse du vent instantané et son changement en temps réel. Intervalle de mesure - de 0,2 à 30 m / s.

Appareils de chaleur

Le principe de fonctionnement de tels anémomètres est de déterminer la résistance électrique du fil. Cette valeur Varie en fonction de la température, qui est réduite en raison du débit d'air en mouvement. C'est comme sur une brise de journée chaude ensoleillée dans la peau.

La conception de l'anémomètre est un fil métallique d'incandescent (de platine, de nichrome, d'argent, de tungstène et d'autres métaux), qui est chauffé choc électrique à une température supérieure à la température ambiante.

Aux appareils ce type Il y a un inconvénient significatif - une faible résistance aux impacts mécaniques.

Anémomètres à ultrasons

Le principe de fonctionnement de ces instruments est basé sur la détermination de la vitesse du son dans un flux d'air en mouvement. C'est pourquoi cet anémomètre est également appelé acoustique. Lorsque le son se déplace dans un sens avec de l'air, sa vitesse augmente. Lors du déplacement vers le vent, la vitesse du son est réduite. En raison de cela, le moment de l'obtention d'une impulsion à ultrasons est mesuré. L'appareil est connecté à un ordinateur pour traiter les données obtenues.

Le capteur peut effectuer plusieurs fonctions. En fonction de leur quantité, plusieurs types de capteurs peuvent être distingués:

  • Deux dimensions, capables de déterminer la vitesse et la direction du vent.
  • Tridimensionnel, qui déterminent les trois composants du vecteur vitesse du vent.
  • Quatre dimensions, qui, en plus des indicateurs de l'espèce précédente, peuvent mesurer la température de l'air.

Les périphériques à ultrasons mesurent la vitesse du vent jusqu'à 60 m / s.

Précédemment a été fait. Il savait calculer la projection de la vitesse du vent sur la ligne entre le récepteur et l'émetteur. Pour obtenir le vecteur de vitesse du vent sur le plan (2D), la deuxième coordonnée est requise, que nous obtenons si nous ajoutons le deuxième capteur perpendiculaire au premier. Dans ce cas, vous pouvez réparer l'anémomètre Inpattern - il n'est pas nécessaire d'utiliser Vane et organisez en quelque sorte des contacts mobiles.

Première version

Dit - fait et soigneusement.

De la rupture de tuyaux en polypropylène, il a été soudé une croix. Tous les capteurs ont chuté et allongèrent les fils qui pavèrent à l'intérieur des tuyaux. La distance entre les capteurs s'est avérée 70 cm.

Le code du programme est tel.

Code de programme de la première version de l'anémomètre à deux axes

#Inclure. #Inclure. #Inclure. #define trig 4 #define echo 2 #define trig2 8 #define echo2 12 #define one_wire_bus 7 #define étapes DHT DHT; #Define dht21_pin 0 statique const floatfdist \u003d 0,6985; // m statique const floatfdist2 \u003d .713; // m // Configurez une instance d'onewire pour communiquer avec n'importe quel périphérique onewire (non seulement la température maximale de la température maximale) onewire onewire (one_wire_bus); // transmettez notre référence onewire à la température de Dallas. Capteurs de DallasTemperature (& onewire); Pinmode (echo, entrée); Pinmode (trig2, sortie); Pinmode (TRIG2, sortie); Pinmode (ECHO2, entrée); Serial.begin (57600); // Démarrez les capteurs de la bibliothèque.Begin ( ); Série.println ("x distance tds18820 tcalc tdht hum v");) non signé impulletse \u003d 0; Vide boucle () (// lire les données //serial.print ("DHT21, \\ T"); int chk \u003d dht.read21 (DHT21_PIN); flotteur dhttemp \u003d 10; flotteur DHTHUM \u003d 50; CASHIB_OK : // série.print ("ok, \\ t"); dhttemp \u003d dht.tempperature; dhthum \u003d dht.humidité; pause; défaut: série.Print ("erreur DHT, \\ t"); pause;) // DATA // SERIAL.PRINT (DHTHUM, 1); // série.Print (", \\ T"); //serial.println(httemp, 1); capteurs.RequestTempperatures (); // Envoie la commande pour obtenir des températures DS18820 float dist \u003d 0; flotteur dist2 \u003d 0; flotteur temp \u003d capteurs.getempcbyindex (0); // dhttempbyindex (0); // DHTTTEMP; non signé impulseme \u003d 0; non signé long impullette2 \u003d 0; int i \u003d 250; car (int i \u003d 0; i 0) (WD + \u003d 90;) sinon (WD + \u003d 270;) //serial.println ("x distance tds18820 tds18820 tdht hum v"); //Serial.println(String(ImpULsetime) + Char (9) + String (Impullettime2)); Série.println (chaîne (impullettime) + char (9) + chaîne (impullettime2) + char (9) + chaîne (dist, 5) + char (9) + chaîne (DIST2, 5) + Char (9) + Chaîne ( Temp) + Char (9) + Chaîne (TCALC) + Char (9) + Chaîne (DHTTTEMP) + Char (9) + Chaîne (Dhthum) + Char (9) + Chaîne (V) + Char (9) + Chaîne ( v2) + char (9) + chaîne (v3) + char (9) + chaîne (WD)); )

Les deux derniers chiffres donnent la vitesse horizontale souhaitée et la direction du vent. La direction est calculée sous la forme d'azimut envers le nord et est donnée en degrés. Rotation dans le sens des aiguilles d'une montre.

Hélas, les résultats m'ont déçu.


Lors de la moyenne de 25 mesures, le témoignage de l'air pacifique saute une moyenne de 1,5 m / s jusqu'à 1,5 m / s, tandis que les mesures sont émises environ une fois par seconde. Si vous êtes en moyenne 10 fois plus d'indications, la situation s'améliore, mais ne résout pas le problème radicalement. De plus, en juger par la carte de vitesse en deux axes, une paire de capteurs PHONEONE est significativement plus différente.
Très probablement le cas dans les fils, j'ai étendu les capteurs. Vous devrez refaire.

Deuxième version

Il y a une autre raison de tout refaire. Comme indiqué dans la première, la vitesse du son changera de 1 m / s lorsque la température est modifiée d'environ 1,5 ° C. Les erreurs de mesure sur les deux axes sont pliées. Il faut comprendre que les impulsions d'air chaud ou froid peuvent déformer de manière significative les lectures d'un tel anémomètre. Cela n'a aucun sens dans le témoignage de 4 m / s à un souffle léger d'une brise chaude.
Du diagramme de l'expérience préposée, on peut constater que même un changement lent de la température provoque une dérive de vitesse mesurée et la variation rapide de la température de 1 degré avec un saut a changé la vitesse du vent mesurée de 1,5 m / s, tandis que la Le capteur de température travaille lentement sur ce changement. Il est important de noter que cette expérience est passée à droite sur mon bureau et que le changement de température était naturel - je n'ai rien touché et n'a rien chauffé.

Puis le même principe vient à la rescousse que lors de la mesure de la distance. Si vous vous en souvenez, les capteurs de l'original HC-SR04 sont disposés ensemble. Les résultats ne dépendent pas de la présence de vent. Si la vitesse du son à une certaine distance est d'abord dans une direction, puis dans l'autre, la différence entre ces deux témoignages divisé de moitié et sera la vitesse du vent souhaitée dans la projection sur cet axe. Dans ce cas, la variation de la température de la plage de ± 25 ° C donne une erreur de ± 4%, ce qui n'est absolument pas critique et nous pouvons faire sans thermomètre. Et pourquoi avons-nous besoin d'un thermomètre? Si nous connaissons l'heure de transmettre le signal dans les deux sens, alors selon les formules de nous calculons facilement la température, ce qui signifie que vous pouvez clarifier la vitesse du vent.
Il n'y a qu'un seul petit snag - vous devez utiliser deux HC-SR04 sur un axe. Dans des échantillons industriels, les capteurs effectuent alternativement le rôle du récepteur et de l'émetteur. Dans notre cas, pour cela, vous devrez connecter les sakés directement à Arduino et générer de manière programmable 8 impulsions de 40 kHz sur un seul, après quoi il est possible de les prolonger d'un autre. Connaissant certaines difficultés sur ce chemin, il me semble plus facile d'acheter 2 capteurs de plus de 55 roubles et d'essayer de faire du sang bas. C'est ce que je ferai la prochaine fois. Entre-temps, sur deux capteurs, je ferai une mesure de la vitesse du vent sur un axe et une mesure de la température dans une telle configuration. Le principal problème ici pour éliminer les interférences, qui donnent une telle dispersion de témoignage dans l'air calme.

Conception

Armé d'un fer à souder. La conception a été sans pitié sur les composants. Nouvelle version J'ai décidé de ne pas faire si bien, mais en vain. Ne devinez jamais où vous trouverez où vous perdez. Il s'est avéré quelque chose comme ça.


Premièrement, le récepteur placé aussi près de la planche que possible, et l'émetteur n'a éteint que 20 cm. Le deuxième ensemble a tourné à 180 degrés et les sakées ont apporté par paire avec une bande. Plus il est précis de conserver l'alignement des deux paires de capteurs, mieux c'est. Idéalement, nous devons obtenir des indications absolument identiques de la vitesse du signal dans les deux directions de l'air pacifique. Les tests mortels ont confirmé notre théorie. Dans cette configuration, il y a peu d'interférences et d'indications très précises, quelle que soit la température, confirmée par le calendrier ci-dessous.


Au début, j'ai essayé de souffler simplement d'une paire bleue au noir. Mes poumons ne suffisent clairement pas. Mais un fait curieux - l'air dans les poumons réussis à se réchauffer à 1 °, ce qui aurait provoqué un saut de vitesse à 1,5 m / s, car DS18B20 Just n'a rien remarqué. Notez que mes poumons sont capables de donner seulement 0,5 m / s. Ensuite, j'ai allumé un grand ventilateur et tout envoyé du bleu au noir. On peut voir comment l'air plus froid des profondeurs de la pièce et même le DS18B20 a commencé à déterminer cette réduction, mais maintenant ses valeurs ne sont pas utilisées pour calculer la vitesse. Fait la découverte que mon ventilateur souffle à une vitesse d'environ 2 m / s. En outre, pendant la pause, nous voyons une augmentation progressive de la température et une excellente corrélation entre la température calculée et mesurée. À la fin, je pose le ventilateur d'autre part et j'ai reçu 2 m / s dans la direction opposée avec une chute de température. Hourra, camarades, ça marche!

Programme de calcul de la vitesse du vent

Code de programme de la deuxième version de l'anémomètre de deux capteurs à ultrasons

#Inclure. #Inclure. #Inclure. #Define trig 4 // hc-sr04 №1 #define écho 2 #define trig2 8 // hc-sr04 №2 #define echo2 12 #define one_wire_bus 7 // DS18B20 #define étapes DHT DHT; #Define DHT21_PIN 0 // DHT21 STATIQUE Const FloatFDist \u003d .2121; // m statique const floatfdist2 \u003d .2121; // m float tcalc \u003d 0; // Configurez une instance d'onewire pour communiquer avec n'importe quel périphérique onewire (non seulement la température maximale de la température maximale) onewire onewire (one_wire_bus); // transmettez notre référence onewire à la température de Dallas. Capteurs de DallasTemperature (& onewire); Pinmode (echo, entrée); Pinmode (trig2, sortie); Pinmode (TRIG2, sortie); Pinmode (ECHO2, entrée); Serial.begin (57600); // Démarrez les capteurs de la bibliothèque.Begin ( ); Série.println ("x distance tds18820 tcalc tdht hum v");) non signé impulletse \u003d 0; boucle vide () (float Temp \u003d 0; flotteur dhttemp \u003d 0; flotteur DHTHUM \u003d 50; // Lire les données DHT INT CHK \u003d DHT.READ21 (DHTTEP \u003d DHTLIB_OK) (DHTTTEMP \u003d DHT.TEMPERATURE \u003d DHT.Humidité;) Si (capteurs.getDevicecount ()\u003e 0) (capteurs.RequestTempperatures (); // Envoie la commande à obtenir des températures DS18820 Temp \u003d Sensors.getempcbyindex (0); // DHTTTEMP;) flotteur dist \u003d 0 ; Flotteur dist2 \u003d 0; non signé long impullette \u003d 0; non signé long impullette2 \u003d 0; int n \u003d 50; car (int i \u003d 0; i \u003d 0; i 0) (WD + \u003d 90;) sinon (WD + \u003d 270;) Serial.println (chaîne (impullettime) + char (9) + chaîne (impulsetime2) + char (9) + chaîne (dist, 5) + Char ( 9) + Chaîne (dist2, 5) + Char (9) + Chaîne (TEMP) + Char (9) + Chaîne (TCALC) + Char (9) + Chaîne (DHTTTEMP) + Char (9) + Chaîne (DHTHUM) + Char (9) + chaîne (m, 5) + char (9) + chaîne (V)); )

Le programme fonctionnera sans capteurs DHT-21 et DS18B20. DS18B20 Pour les calculs de ce code n'est pas impliqué nulle part - uniquement est affiché dans le terminal en tant que norme. Sans capteur d'humidité, la température sera calculée comme pour l'air avec une humidité de 50%. En pratique, cela fait une très petite erreur. Pour mesurer la vitesse du vent, ces capteurs n'ont aucune influence.

En fait, tout cela peut être pressé de deux HC-SR04. Pour obtenir le vecteur de vitesse du vent dans l'avion, vous devez ajouter 2 capteurs supplémentaires perpendiculaires à la première et selon les formules de la première version pour obtenir une vitesse et une direction complètes. Cela prendra soin dès que commander des capteurs supplémentaires arrivera.

P.s.

Les capteurs sont arrivés il y a longtemps, la moulinette de design a libéré 2 fois de plus et à la fin il a gagné comme il le devrait, mais n'a pas atteint le toit, alors n'atteignait pas ce anémomètre ultrasonique, alors je n'ai toujours pas écrit de suite, bien que le l'idée fonctionne.

P.p.s. 2018.

Par de nombreuses demandes, je pose le schéma final qui ne nécessite aucune bibliothèque (à l'exception de l'EEPROM standard) et fonctionne avec 4 capteurs. Code avec toutes sortes de types d'embouchements d'étalonnage intégré et de sauvegarde des valeurs d'étalonnage dans une mémoire non volatile. Et la chose la plus importante. Le problème décrit ci-dessus avec des erreurs sur l'un des axes n'a pas été connecté à des fils, mais avec une pièce dans une pièce avec des capteurs blocs pulsés Puissance informatique, moniteur, etc. (Leur système de conversion fonctionne à une fréquence proche de 40 kHz). Je me suis arrêté sur le problème de l'élimination du capteur dans la rue à l'écart de l'interférence (avec le transfert de données sur Bluetooth). Sinon, ça marche. Ceci est une version pour les capteurs saupoudrés, mais il y a un moyen de dispenser. Si vous revenez au projet - Mise en œuvre.
Pour ce code, quelle que soit la distance entre les capteurs. Besoin de mettre l'appareil dans l'espace sans vent (et sans bruit de pouls) Et à travers le terminal plusieurs fois pour donner 2 équipes:

La première est la température actuelle sur le thermomètre de référence (n'importe quelle rue), la seconde - dit le contrôleur qui maintenant la vitesse du vent est 0. Selon ces données, il calculera la distance entre les capteurs et les enregistrera dans EEPROM. Toutes les autres mesures seront repoussées de ces valeurs.

La vue finale de l'anémomètre pour 4 capteurs HC-SR04

// venteceed v.4 - anamomètre // copyright evgeny istomin [Email protégé] Le récepteur et l'émetteur sont séparés sur les extrémités opposées de la croix; dans le diagramme, la position des récepteurs pour le calcul correct de la direction et de la résistance du vent est décrite // hc-sr04 n ° 1 // nord ( 0 g) // o // | // | // HC-SR04 №2 o ------- | --------- O HC-SR04 №4 // West (270g) | Est (90 gr) // | // O // HC-SR04 №3 // Sud (180 g) // Lors du choix d'un matériau Crossst pour jouer http://tempperatures.ru/pages/tempperaturnyi_koefficient_lineinogo_rasshireniya // le Meilleur Choix Matériau - Tuba Invar 36h, mais le matériel habituel convient parfaitement :-) #define définit_distance 0,22 // distance approximative entre les capteurs mesurés par une règle, en mètres. #Define mes_pause 90 // pause entre les mesures pour amortir les réflexions. En réalité, vous avez besoin d'au moins 1, ms. #Define MES_OOVER 8 // Combien de mesures moyennées pour la température. #Define print_period 500 // Période de sortie Mesures dans la borne, MS #include #Define false 0 #define true 1 #define echo1 2 #define Echo2 Echo4 5 #define Trig1 6 // HC-SR04 №1 #define trig2 7 // HC-SR04 №2 #define trig3 4 // HC-SR04 №3 #Define trig4 9 // hc-sr04 №4 #define pow1 10 #define pow2 11 #define pow3 12 #define pow4 13 #define t_abs 273.15 // Température absolue à rayures HTTPS: //ru.wikipedia .org / wiki /% d0 % 90% D0% B1% D1% 81% D0% BE% D0% BB% D1% 8E% D1% 82% D0% BD% D1% 8B% D0% B9_% D0% BD% D1% 83% D0% BB % D1% 8C_% D1% 82% D0% B5% BC% BC% D0% BF% D0% B5% D1% 80% D0% B0% D1% 82% D1% 83% D1% 80% D1% 8B #Define print_loop print_period / (4 * (mes_pause)) // Combien de cycles complets ignorent avant la sortie de mesure sur le float Dévidist1 \u003d Terminal Define_Distance; Float défdist3 \u003d Défier_distance; Float transfdist2 \u003d définir_distance; Floatfdist4 \u003d Défier_distance; Float tcalc \u003d 0; // température de l'air (calculée) const float dhthum \u003d 50; //% de flotteur d'humidité m \u003d 0,02895; // molaire poids kg / mol https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BB%D1%8F%D1%80%D0%BD%D0%B0%D1% 8F_% D0% BC% D0% B0% D1% 81% D1% 81% D0% B0 Const Float R \u003d 8.31447; // Gaz universel permanent J / (mol * k) https://ru.wikipedia.org/wiki/%d0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1 % 81% D0% B0% D0% BB% D1% 8C% D0% BD% D0% B0% D1% 8F_% D0% B3% D0% B0% D0% B7% D0% Be% D0% B2% D0% B0 % D1% 8F_% D0% BF% D0% BE% D1% 81% D1% 82% D0% BE% D1% 8F% D0% BD BD% D0% BD% D0% B0% D1% 8F Const float P \u003d 761 * 133,3; // Appuyez sur PA. 101325 au niveau de la mer flottant x \u003d 1,4 * r / m; Flotteur c \u003d sqrt (x * (tcalc + t_abs)); // vitesse de vitesse m / s https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82% D1% 8C_% D0% B7% D0% B2% B2% D1% 83% D0% BA% D0% B0 Float Impulsetipe1 \u003d DévDist1 / C; flotteur impulsetime2 \u003d défdiste2 / c; flotteur impulsetime3 \u003d défdiste3 / c; float impulsetime4 \u003d défdiste4 / c; Nombre de caractères non signés \u003d 0; // vente de cycles //////////////////// //// //// /////////// // // / //////////////////////// //// ////diffuseur //// //// ///// /// // ///// //////////// // Filtera à flotteur simple (flotteur Y1, flotteur Y) (retour (MES_AVEGE - 1) * Y1 + Y) / MES_AOOver;) /// /////// ////////////////////////// ///// //// /// ///// ///// //// ///////////////////////// //// //// /// /////////// // Mesurer le délai en passant dans le son entre les capteurs, le point de flotteur (TRIG TRIG non signé, l'écho de caractère non signé, sans signé Char POW) (flotteur Y; denawrite (POW, HIGH); Délai d'écause (Trig, High); Retardmicroseconds (10); denadewrite (trigwe, faible); y \u003d pulpsin (écho, élevé); si (comptage\u003e print_loop) série.Print (chaîne (y, 0) + char (9)); denawrite (pow, faible); ; Retour y * 1e-6;); ////////////////////////// //// //// //// /////// // // // // // // // // ////////////////////////// //// /// /// /// ///.///// /// /// //// /////// // N'oubliez pas dans la mémoire flash de la distance entre les capteurs StoreDefDist () (EEPROM.UT (0, DFDDIST1); EEPROM.UT (1 * Tailleof (flotteur), DePDist2); EEPROM. mettre (flotteur), défdiste3); eeprom.put (3 * Taillefof (float), Défdist4);) ///////////////////// /////////////// /////////////////////////// ///// ///// // //////// /// /////////////// //// ////dix ///diffusion//diffusion ///./// /// /// /// / / / // / / Lisez la distance entre les capteurs à flotteur de la mémoire flash getdefdist (flotteur dd; eeprom.get (adresse, jj); si (DD<= 0) dd = DEFINE_DISTANCE; return dd; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// // расчет скорости звука в зависимости от температуры, давления и влажности void GetC(float t) { M = (28.95 - 10.934 * DHThum * 0.01 * (133.3 * 4.579 * exp(17.14 * t / (235.3 + t))) / P) / 1000; X = 1.4 * R / M ; c = sqrt(X * (t + T_ABS)); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { pinMode(Pow1, OUTPUT); pinMode(Pow2, OUTPUT); pinMode(Pow3, OUTPUT); pinMode(Pow4, OUTPUT); pinMode(Trig1, OUTPUT); pinMode(Trig2, OUTPUT); pinMode(Trig3, OUTPUT); pinMode(Trig4, OUTPUT); pinMode(Echo1, INPUT); pinMode(Echo2, INPUT); pinMode(Echo3, INPUT); pinMode(Echo4, INPUT); digitalWrite(Pow1, HIGH); digitalWrite(Pow4, HIGH); digitalWrite(Pow3, HIGH); digitalWrite(Pow2, HIGH); defDist1 = GetDefDist(0); // читаем из flash-памяти расстояния между датчиками defDist2 = GetDefDist(1 * sizeof(float)); defDist3 = GetDefDist(2 * sizeof(float)); defDist4 = GetDefDist(3 * sizeof(float)); Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("impT1\timpT3\timpT2\timpT4\tdist1\tdist3\tdist2\tdist4\tTcalc\tv1\tv2\tWD\tv3 " + String(PRINT_LOOP)); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { // период измерений = 1 / (4e-3 * (MES_PAUSE + 1)) impulseTime1 = measument(Trig1, Echo1, Pow1); impulseTime3 = measument(Trig3, Echo3, Pow3); impulseTime2 = measument(Trig2, Echo2, Pow2); impulseTime4 = measument(Trig4, Echo4, Pow4); //if (count > MES_OOVERCE) SERIAL.PRINT (String (ImpulseTime1 * 1E6) + Char (9)); Tcalc \u003d filtera (tcalc, sq (((défdist2 + défdist4 + défdiste1 + defdist3) / (impullettime1 + impulsetime3 + impulsetime2 + impullette4)) / x - t_abs); Si ((TCALC\u003e 70) | (TCALC< -50)) Tcalc = 0; GetC(Tcalc); float Speed_of_sound1 = defDist1 / impulseTime1 ; float Speed_of_sound2 = defDist2 / impulseTime2 ; float Speed_of_sound3 = defDist3 / impulseTime3 ; float Speed_of_sound4 = defDist4 / impulseTime4 ; float v1 = ((Speed_of_sound3 - Speed_of_sound1) / 2); float v2 = ((Speed_of_sound2 - Speed_of_sound4) / 2); float v3 = sqrt(sq(v1) + sq(v2)); int wd = int(atan(v2 / v1) * 180 / 3.1416); if (v1 < 0) { wd += 180; } else if (v2 < 0) { wd += 360; } if (count > Print_loop) (série.println (chaîne (C, 5) + Char (9) + Chaîne (TCALC) + Char (9) + Chaîne (V1) + Char (9) + Chaîne (V2) + Char (9) + Chaîne (WD) + char (9) + chaîne (V3)); Compte \u003d 0;) tandis que (Serial.Available ()\u003e 0) (Char pouce \u003d Serial.Lead (); // Format de l'équipe: T21 . 5 Si (pouce \u003d\u003d "T") (chaîne A \u003d série.Readstring (); tcalc \u003d A.Tofloat (); getc (tcalc);) // u - ajustement (installation sur 0). Format d'équipe: u Si ((pouce \u003d\u003d "T") | (pouce \u003d\u003d "u")) (défdiste1 \u003d impulsetipe1 * c; défdist2 \u003d impulsetime2 * c; défdicset3 \u003d impulsetime3 * c; impulsetime4 * C; STRANDEFDISTRISTRIST ();); ) Compter ++; ) //////////////////////// //// //// //// //////// /// /// ////////////////////////// //// //// // ///////// //////// ///////

Avez-vous aimé l'article? Partager avec des amis: