Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôleur de ventilateur d'armoire AV

Composants et fournitures

Arduino Nano R3
× 1
Capteur de température et d'humidité DHT11 (4 broches)
× 1
Module de relais CC 5 V
× 1

À propos de ce projet

Mon récepteur AV était très chaud, alors je voulais ajouter un ventilateur d'armoire avant la chaleur estivale. Au début, j'ai essayé de trouver une source CC 5-12 V à l'extérieur du récepteur qui n'est alimentée que lorsque le récepteur est allumé, mais je n'ai pu trouver que quelques endroits à l'intérieur du récepteur. Je voulais également que les ventilateurs fonctionnent pendant un certain temps après la mise hors tension du récepteur, et le dimensionnement des condensateurs pour cela commençait à devenir difficile.

Température ambiante 75F, température de l'armoire 109F

J'ai regardé les ventilateurs à température contrôlée sur amazon et ils semblaient tous plus chers que je ne le pensais. Ils coûtaient tous plus de 30 $ et n'étaient essentiellement qu'un ventilateur, une sonde de température et un relais... J'ai regardé dans mon bac de pièces et j'avais déjà tout ça.

Oui, ça devrait le faire

J'ai d'abord rédigé un petit croquis pour un Arduino Nano chinois à 2 $. Ajout d'un capteur de température DHT11 et d'un relais 5v DC et cela a fonctionné à merveille.

Prototype rapide

Ensuite, j'ai dû trouver de vieux ventilateurs de PC qui tournaient et déplaceraient l'air sur seulement 5 V, car je voulais que le tout soit alimenté par un ancien chargeur de téléphone USB. J'ai trouvé deux ventilateurs de 80 mm et un de 120 mm qui bougeaient encore assez de CFM à 5 v et restaient sous 200 mA, alors j'ai coupé la connexion molex et les ai câblés en USB.

Tout fonctionnait sur la maquette, j'ai donc fini par ajouter des LED d'état et un buzzer piézo pour une alarme de surchauffe. Tout s'intègre parfaitement dans une petite boîte à projets que j'avais.

La coupe ajustée nécessite beaucoup de colle chaude pour éviter les shorts Agréable et compact, et se fond dans le reste de l'équipement AV LED d'état :en haut à gauche =alimentation (vert); en bas à gauche=temp OK (vert) ; milieu =ventilateurs allumés (orange) ; droite=surchauffe (rouge)

Le contrôleur passe par un POST de démarrage pour montrer que tous les ventilateurs, voyants et alarme piézo fonctionnent.

Auto-test de mise sous tension



Esquisse Arduino :


Le contrôleur prend la température moyenne sur une période de 30 secondes. S'il fait plus de 95F, le ventilateur démarre pendant 5 minutes avant de vérifier à nouveau. Si la température est supérieure à 120 F, l'alarme retentit pendant que les ventilateurs continuent de fonctionner. L'alarme retentit toutes les 30 secondes jusqu'à ce que la température revienne en dessous de 120 F.

Sortie série

En pratique, les ventilateurs démarrent environ 2 minutes après la mise en marche du récepteur et fonctionneront tout le temps qu'il est allumé. Après avoir éteint le media center, les ventilateurs fonctionnent pendant au moins 5 minutes avant que la température ne descende en dessous de 95F. Jusqu'à présent, l'alarme de surchauffe n'a pas été déclenchée.

Si je devais terminer ce projet, j'envisagerais de remplacer l'Arduino Nano par un ATtiny85 et le relais par un MOSFET. Ce serait un facteur de forme beaucoup plus petit et me permettrait également d'utiliser PWM pour contrôler la vitesse du ventilateur.

Code

  • FanTempController
FanTempControllerC/C++
Croquis Arduino qui utilise la lecture de température moyenne d'un capteur DHT11 pour allumer un ventilateur via un relais.// Contrôleur de température pour armoire A/V// Le ventilateur est contrôlé par un relais 10A connecté à un 12v (ordinateur) ou 5v (USB) Ventilateur// Alarme piézo pour alerte de surchauffe alternative FANTEMP =95 ; // Température élevée à laquelle le ventilateur s'allume (90*F)int ALARMTEMP =120; // Température de surchauffe (120*F)int FANLED =2; // Broche pour le ventilateur "on" LEDint TEMPOK =3; // LED lorsque la température est inférieure à FANTEMPint ALARMLED =4; // LED d'alarme int ALARMPIN =7; // Alarme sonore de surchauffe// DHTPIN =8; (défini ci-dessous) int FANPIN =9 ; // Relais pour le commutateur de ventilateur#include "DHT.h" // Écrit par ladyada, domaine public#define DHTPIN 8 // Capteur DHT// Décommentez le type que vous utilisez !#define DHTTYPE DHT11 // DHT 11 //# définir DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301) // Initialiser le capteur DHT pour un dht ArduinoDHT normal de 16 mhz (DHTPIN, DHTTYPE); // REMARQUE :pour travailler avec une puce plus rapide, comme un Arduino Due ou Teensy, vous// devrez peut-être augmenter le seuil pour les nombres de cycles considérés comme 1 ou 0.// Vous pouvez le faire en passant un 3ème paramètre pour ce seuil. C'est un peu// de bidouiller pour trouver la bonne valeur, mais en général plus le CPU est rapide plus la valeur// est élevée. La valeur par défaut pour un AVR 16mhz est une valeur de 6. Pour un// Arduino Due qui fonctionne à 84mhz une valeur de 30 fonctionne.// Exemple pour initialiser le capteur DHT pour Arduino Due://DHT dht(DHTPIN, DHTTYPE, 30);// Lectures utilisées pour averageconst int numReadings =10;// Définir les variables sur zerofloat avetemp =0; float temp =0;float checkdelay =0; void setup() { Serial.begin(9600); Serial.println("Temp Monitor Started"); dht.begin(); pinMode(FANPIN,SORTIE); pinMode(ALARMPIN,SORTIE); pinMode (ALARME, SORTIE); pinMode (FANLED, SORTIE); pinMode(TEMPOK,SORTIE); digitalWrite(FANPIN, ÉLEVÉ); digitalWrite (FANLED, ÉLEVÉ); digitalWrite (ALARMÉ, ÉLEVÉ); digitalWrite(TEMPOK, HAUT); for(int x =0; x <5; x++){ // Tester la tonalité d'alarme (ALARMPIN, 220 * x, 75); retard (100); } Serial.print("Test du ventilateur démarré (5 secondes) "); for(int x =0; x <5; x++){ Serial.print("."); retard(1000); } Serial.println("Terminé"); digitalWrite(FANPIN, LOW); digitalWrite(FANLED, LOW); digitalWrite (ALARME, FAIBLE); digitalWrite(TEMPOK, LOW); pas de tonalité(ALARMPIN); }void loop() { // Attendre quelques secondes entre les mesures. retard (2000); température =0 ; Serial.print("Temps en temps réel :\t"); for (int x =0; x ALARMTEMP) { digitalWrite(ALARMLED, HIGH); Serial.print("La température est dépassée "); Serial.print(ALARMTEMP); Serial.println(", L'alarme est activée"); for(int x =0; x <3; x++){ // Sonne l'alarme pendant 5 secondes (ALARMPIN, 660, 1000); // Le ventilateur devrait déjà fonctionner depuis la dernière boucle, sinon, il démarrera juste après le déclenchement de l'alarme delay(500); tonalité (ALARMPIN, 440, 1000); retard (500); } noTone(ALARMPIN); délai de contrôle =30000 ; // Bascule le délai normal de 5 minutes sur 30 secondes avant de recommencer la boucle } else { digitalWrite(ALARMLED,LOW); Serial.print("La température est inférieure à "); Serial.print(ALARMTEMP); Serial.println(", L'alarme est désactivée"); délai de contrôle =300000 ; // À moins que la température ne dépasse 120*F, le ventilateur fonctionne pendant 5 minutes avant que la température ne soit à nouveau vérifiée }// Allumez le ventilateur si l'armoire est chaude if (avetemp> FANTEMP) { digitalWrite(FANPIN, HIGH); digitalWrite (FANLED, ÉLEVÉ); digitalWrite(TEMPOK, LOW); Serial.print("La température est dépassée "); Serial.print(FANTEMP); Serial.print(", Fan is on (for "); Serial.print(checkdelay / 1000 / 60); Serial.println(" minutes)"); délai (délai de vérification); // s'allume au moins 5 min (à moins que l'alarme ne se déclenche, elle se boucle après 30 secondes) } else { digitalWrite(FANPIN,LOW); digitalWrite(FANLED,LOW); digitalWrite(TEMPOK,HIGH); Serial.print("La température est inférieure à "); Serial.print(FANTEMP); Serial.println(", Le ventilateur est éteint"); // Lorsque le ventilateur est éteint, Temp est lu toutes les 30 secondes } Serial.println(); Serial.println(); }

Schémas


Processus de fabrication

  1. Contrôleur d'alimentation PWM
  2. Classeur
  3. Ventilateur à température contrôlée
  4. Résoudre les problèmes de vibration du ventilateur
  5. Contrôleur DMX Web
  6. Périphérique d'automatisation des tâches de jeux vidéo
  7. Contrôleur de jeu Arduino
  8. Unopad - Contrôleur MIDI Arduino avec Ableton
  9. Contrôleur d'affichage fluorescent à vide