Débitmètre d'air résidentiel piloté par Arduino : construction et monitoring
Composants et fournitures
![]() |
Arduino UNO | × | 1 |
![]() |
Fils de connexion (genériques) — 25 fils au total | × | 25 |
![]() |
Plaque d'essai (breadboard) | × | 1 |
![]() |
Potentiomètre rotatif 10 kΩ | × | 1 |
![]() |
Adafruit LCD RGB 16x2 avec rétroéclairage | × | 1 |
![]() |
Résistance traversante 220 kΩ | × | 1 |
| Capteur de tension Diymall DC 0-25V | × | 1 | |
| Amplificateur de signal AD620 (DROK) | × | 1 | |
| Anémomètre à coupelles | × | 1 |
Outils nécessaires
![]() |
Fer à souder (générique) |
À propos de ce projet
Contexte
Objectif : créer un débitmètre d'air utilisable en environnement résidentiel. Dans l'industrie CVC actuelle, les capteurs de débit d'air existants sont conçus pour applications industrielles : trop grands pour les registres résidentiels, ou incapables de mesurer les faibles débits des systèmes CVC domestiques.
Principe de fonctionnement
Pour générer un signal à partir du flux d'air, nous utilisons un anémomètre à coupelles. Des pales sur mesure ont été conçues sous Autodesk Inventor et imprimées en 3D pour optimiser la capture d'air. Un boîtier d'enceinte a aussi été imprimé en 3D.


La lecture du signal de l'anémomètre se fait via un capteur de tension. Ce signal doit être amplifié pour une lecture plus précise : l'amplificateur (AD620) multiplie la tension de sortie de l'anémomètre par 10 (gain réglable de 1,5 à 1000 selon tension d'entrée).
Un Arduino Uno lit le signal analogique du capteur de tension et pilote l'écran LCD. L'affichage visé est le débit en CFM (pieds cubes par minute).
Construction
Électronique
Commencez par l'anémomètre. Photos du dispositif :


Sur la "Vue du dessus", le point de fixation des pales est en L et fin — fragile à haute vitesse. Nous avons conçu de nouvelles pales : plus épaisses, fixation plus robuste. Objectif : réduire l'espace d'air entre pale et boîtier, augmenter l'air capté et la tension générée.

Analyse de contrainte sous Autodesk Inventor : les nouvelles pales sont bien plus résistantes à haute vitesse.


Fichiers STL des pales joints dans la section fichiers. NE MONTEZ PAS LES NOUVELLES PALES ENCORE.
Insérez l'anémomètre modifié dans le boîtier (fichiers STL fournis). Sans pales, faites glisser l'anémomètre par le trou du bas. Collez (colle forte) le bas de l'anémomètre sur deux disques de bois fins (magasin loisirs). Percez 4 petits trous à travers les disques et le boîtier ABS : un pour les fils, trois pour vis de fixation.

Câblage anémomètre → amplificateur :

Tous fils sur l'amplificateur sont mâle-mâle.
- Fil rouge → borne +S (droite), autre bout → fil rouge anémomètre
- Fil noir → borne -S (droite), autre bout → fil jaune anémomètre
- Isolation au ruban électrique recommandée


Amplificateur → alimentation (pile) :
- Fil jaune → GND (droite), autre bout → fil noir connecteur pile
- Fil blanc → Vln (droite), autre bout → fil rouge connecteur pile
Amplificateur → capteur de tension :
- Fil bleu → GND amplificateur, autre bout → VCC capteur tension
- Fil vert → Vout amplificateur, autre bout → GND capteur tension


Le capteur de tension se câble ensuite à l'Arduino (voir schéma dans section Schémas).
Finitions
Plaque de mousse comme "plafond" du boîtier ventilateur, collée. Électronique posée dessus, fermée par d'autres plaques de mousse.

Découpes dans la mousse pour accès aux alimentations 9V (Arduino et amplificateur).

Entonnoir en PVC (4 trapèzes), assemblé à la colle forte et mastic. Même méthode pour jonction entonnoir/boîtier. Bande d'étanchéité au grand bout (14"×14") pour joint sur la ventouse.

Calibration
Testé avec un générateur de débit connu. Le premier code affichait la tension brute sur LCD. À partir des données collectées, nous avons dérivé les équations pour afficher directement le CFM.


Deux courbes : débit initial et débit réel (légèrement inférieur à cause de l'entonnoir). Équation de meilleur ajustement pour le débit réel :
y = 1,1409x² + 44,958x
Le code utilise une fonction par morceaux en trois zones :
- CFM élevé : y = 1,1409x² + 44,958x
- CFM faible à moyen : y = 40x + 20 (meilleur ajustement sur cette plage)
- CFM nul : y = 0
Le code complet est dans la section Code.
Calibrez-le vous-même (optionnel)
Pour mesurer en m/s ou mph :
- Trouvez un moyen de connaître le débit réel (anémomètre portable du commerce)
- Placez l'anémomètre devant un ventilateur à vitesses variables
- Relevez la vitesse à chaque réglage
- Téléversez le "Code Capteur Tension" sur l'Arduino pour lire la tension de sortie
- Relevez la tension à chaque vitesse
- Tracez "Vitesse vs Tension" dans Excel (nuage de points)
- Utilisez la ligne de tendance pour trouver l'équation modélisant la relation
- Si non-linéaire, séparez en équations basses/hautes plages
- Remplacez les équations dans le "Code Débitmètre" et téléversez
Code
Code Débitmètre (C/C++)
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pins LCD
// Valeurs résistances du capteur de tension
float R1 = 30000;
float R2 = 7500;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = ((5.0 * sensorValue * (R1 + R2)) / (1024.0 * R2));
// Fonction par morceaux pour CFM selon tension
if (voltage > 1.0) {
// Zone CFM élevé
float cfm = (1.1409 * voltage * voltage) + 44.258 * voltage;
Serial.println(cfm);
lcd.print("CFM = ");
lcd.setCursor(0, 1);
lcd.print(cfm);
delay(1000);
lcd.clear();
delay(1000);
}
else if (voltage > 0.01) {
// Zone CFM faible à moyen
float cfm = (40.0 * voltage) + 20.0;
Serial.println(cfm);
lcd.print("CFM = ");
lcd.setCursor(0, 1);
lcd.print(cfm);
delay(1000);
lcd.clear();
delay(1000);
}
else {
// Ventilateur à l'arrêt
float cfm = 0;
Serial.println(cfm);
lcd.print("CFM = ");
lcd.setCursor(0, 1);
lcd.print(cfm);
delay(1000);
lcd.clear();
delay(1000);
}
}
Code pour Capteur Tension (C/C++)
Pour calibration personnelle :
float R1 = 30000;
float R2 = 7500;
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = ((5.0 * sensorValue * (R1 + R2)) / (1024.0 * R2));
Serial.println(voltage);
delay(1000);
}
Code Capteur Tension avec LCD (C/C++)
Pour afficher la tension sur LCD pendant calibration :
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float R1 = 30000;
float R2 = 7500;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = ((5.0 * sensorValue * (R1 + R2)) / (1024.0 * R2));
Serial.println(voltage);
lcd.print("V = ");
lcd.setCursor(0, 1);
lcd.print(voltage);
delay(1000);
lcd.clear();
delay(1000);
}
Pièces personnalisées et boîtiers
(Fichiers STL pour pales et boîtier anémomètre)
Schémas
Processus de fabrication
- Purificateurs d'air : conception, histoire et tendances futures
- Fabrication des bouteilles d'oxygène : des matières premières à l'assurance qualité
- Désodorisant d'air : des senteurs anciennes à la technologie moderne des diffuseurs à prise
- L'oxygène : de la découverte ancienne à la puissance industrielle moderne
- Systèmes de Climatisation : Conception, Fabrication et Tendances Futures
- Montgolfières : des frères Montgolfier au vol moderne
- Systèmes d'airbags : conception, histoire et innovations futures
- Jeu UFO Attack DIY avec Arduino UNO et Afficheur MAX7219
- Horloge 3D RGB Arduclock – Montre LED Bluetooth avec horloge temps réel






