Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Контроллер вентилятора шкафа AV

Компоненты и расходные материалы

Arduino Nano R3
× 1
Датчик температуры и влажности DHT11 (4 контакта)
× 1
Модуль реле постоянного тока 5 В
× 1

Об этом проекте

Мой AV-ресивер сильно нагрелся, поэтому я хотел добавить вентилятор в шкаф до наступления летней жары. Сначала я попытался найти источник постоянного тока 5-12 В на внешней стороне приемника, который включается только тогда, когда приемник включен, но смог найти только несколько мест внутри приемника. Я также хотел, чтобы вентиляторы поработали некоторое время после выключения приемника, и определение размеров конденсаторов для этого становилось непростым делом.

Комнатная температура 75F, температура шкафа 109F

Я посмотрел на вентиляторы с регулируемой температурой на Amazon, и все они оказались дороже, чем я думал, что они должны быть. Все они стоили более 30 долларов и были в основном просто вентилятором, датчиком температуры и реле ... Я заглянул в корзину с запчастями, и все это уже было.

Да, это должно сработать

Сначала я написал небольшой скетч для китайского Arduino Nano за 2 доллара. Добавлен датчик температуры DHT11 и реле 5 В постоянного тока, и все заработало отлично.

Быстрый прототип

Затем мне нужно было найти несколько старых вентиляторов для ПК, которые будут вращаться и подавать воздух всего на 5 В, так как я хотел, чтобы все это работало от старого зарядного устройства USB для телефона. Я нашел два 80-миллиметровых и один 120-миллиметровый вентиляторы, которые все еще перемещали достаточно CFM при 5 В и оставались ниже 200 мА, поэтому я отключил соединение Molex и подключил их как USB.

На макетной плате все работало, поэтому я добавил несколько светодиодов состояния и пьезозуммер для сигнализации о перегреве. Все это прекрасно вписывалось в небольшую коробку для проекта, которая у меня была.

Плотная посадка требует большого количества горячего клея, чтобы избежать шорт Красивый и компактный, гармонирует с остальной AV-аппаратурой Светодиоды состояния:вверху слева =питание (зеленый); внизу слева =температура в норме (зеленый); средний =вентиляторы включены (оранжевый); справа =перегрев (красный)

Контроллер выполняет POST при запуске, чтобы показать, что все вентиляторы, светодиоды и пьезоэлектрическая сигнализация работают.

Самотестирование при включении



Эскиз Arduino:


Контроллер измеряет среднюю температуру за 30 секундный интервал. Если температура превышает 95 ° F, вентилятор включается на 5 минут перед повторной проверкой. Если температура превышает 120F, тогда звучит сигнал тревоги, пока вентиляторы продолжают работать. Будильник звучит каждые 30 секунд, пока температура не опустится ниже 120 ° F.

Последовательный выход

На практике вентиляторы включаются примерно через 2 минуты после включения приемника и работают все время, пока он включен. После выключения медиацентра вентиляторы работают не менее 5 минут, прежде чем температура опустится ниже 95F. Пока не сработала сигнализация перегрева.

Если бы я закончил этот проект, я бы подумал о замене Arduino Nano на ATtiny85 и реле на MOSFET. Это будет гораздо меньший форм-фактор, а также позволит мне использовать ШИМ для управления скоростью вращения вентилятора.

Код

  • FanTempController
FanTempController C / C ++
Скетч Arduino, который использует показания средней температуры с датчика DHT11 для включения вентилятора через реле.
 // Контроллер температуры для шкафа A / V // Вентилятор управляется реле на 10 А, подключенным к 12 В (компьютер) или 5 В (USB) Fan // Пьезоэлектрическая сигнализация при альтернативном перегревеint FANTEMP =95; // Высокая температура, при которой вентилятор включается (90 * F) int ALARMTEMP =120; // Температура перегрева (120 * F) int FANLED =2; // Вывод вентилятора "на" LEDint TEMPOK =3; // светодиод, когда температура ниже FANTEMPint ALARMLED =4; // Индикатор тревоги int ALARMPIN =7; // Звуковой сигнал при перегреве // DHTPIN =8; (определено ниже) int FANPIN =9; // Реле для переключателя вентилятора # include "DHT.h" // Написано ladyada, общественное достояние # define DHTPIN 8 // DHT Sensor // Раскомментируйте любой тип, который вы используете! #Define DHTTYPE DHT11 // DHT 11 // # define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301) // Инициализируйте датчик DHT для нормального 16 МГц ArduinoDHT dht (DHTPIN, DHTTYPE); // ПРИМЕЧАНИЕ:для работы с более быстрым чипом, как Arduino Due или Teensy, // вам может потребоваться увеличить порог для количества циклов, который считается 1 или 0. // Вы можете сделать это, передав 3-й параметр для этого порога. Чтобы найти правильное значение, нужно // немного возиться, но в целом, чем быстрее процессор, тем // значение выше. По умолчанию для AVR 16 МГц установлено значение 6. Для // Arduino Due, который работает на 84 МГц, работает значение 30. // Пример инициализации датчика DHT для Arduino Due:// DHT dht (DHTPIN, DHTTYPE, 30); // Показания, используемые для averageconst int numReadings =10; // Устанавливаем переменные равными нулю avetemp =0; float temp =0; float checkdelay =0; void setup () {Serial.begin (9600); Serial.println («Монитор температуры запущен»); dht.begin (); pinMode (FANPIN, ВЫХОД); pinMode (ALARMPIN, ВЫХОД); pinMode (АВАРИЙНЫЙ, ВЫХОД); pinMode (ВЕНТИЛЯТОР, ВЫХОД); pinMode (ТЕМПОК, ВЫХОД); digitalWrite (FANPIN, HIGH); digitalWrite (ВЕНТИЛЯТОР, ВЫСОКИЙ); digitalWrite (АВАРИЙНЫЙ, ВЫСОКИЙ); digitalWrite (ТЕМПОК, ВЫСОКИЙ); for (int x =0; x <5; x ++) {// Тестовый сигнал тревоги (ALARMPIN, 220 * x, 75); задержка (100); } Serial.print («Тест вентилятора запущен (5 секунд)»); для (int x =0; x <5; x ++) {Serial.print ("."); задержка (1000); } Serial.println («Готово»); digitalWrite (FANPIN, LOW); digitalWrite (FANLED, LOW); digitalWrite (АВАРИЙНЫЙ, НИЗКИЙ); digitalWrite (ТЕМПОК, НИЗКИЙ); noTone (ALARMPIN); } void loop () {// Подождите несколько секунд между измерениями. задержка (2000); темп =0; Serial.print ("Температура в реальном времени:\ t"); для (int x =0; x 
 ALARMTEMP) {digitalWrite (ALARMLED, HIGH); Serial.print («Температура закончилась»); Серийный.печать (ALARMTEMP); Serial.println (", Тревога включена"); for (int x =0; x <3; x ++) {// Звуковой сигнал в течение 5 секунд (ALARMPIN, 660, 1000); // Вентилятор уже должен быть запущен из последнего цикла, в противном случае он запустится сразу после звукового сигнала delay (500); тон (АЛАРМПИН, 440, 1000); задержка (500); } noTone (ALARMPIN); checkdelay =30000; // переключаем обычную 5-минутную задержку на 30 секунд перед повторным прохождением цикла} else {digitalWrite (ALARMLED, LOW); Serial.print («Температура ниже»); Серийный.печать (ALARMTEMP); Serial.println (", будильник выключен"); checkdelay =300000; // Если температура не превышает 120 * F, вентилятор работает в течение 5 минут перед повторной проверкой температуры} // Включаем вентилятор, если шкаф теплый if (avetemp>
 FANTEMP) {digitalWrite (FANPIN, HIGH); digitalWrite (ВЕНТИЛЯТОР, ВЫСОКИЙ); digitalWrite (ТЕМПОК, НИЗКИЙ); Serial.print («Температура закончилась»); Серийный принт (FANTEMP); Serial.print (", Вентилятор включен (для"); Serial.print (checkdelay / 1000/60); Serial.println ("минуты)"); задержка (checkdelay); // включаем минимум на 5 минут (если не срабатывает будильник, то через 30 секунд цикл повторяется)} else {digitalWrite (FANPIN, LOW); digitalWrite (FANLED, LOW); digitalWrite (ТЕМПОК, ВЫСОКИЙ); Serial.print («Температура ниже»); Серийный принт (FANTEMP); Serial.println ("Вентилятор выключен"); // Когда вентилятор выключен, температура считывается каждые 30 секунд} Serial.println (); Serial.println (); } 

Схема


Производственный процесс

  1. Контроллер мощности ШИМ
  2. Файловый шкаф
  3. Вентилятор с регулируемой температурой
  4. Устранение проблем с вибрацией вентилятора
  5. Веб-контроллер DMX
  6. Устройство автоматизации задач видеоигры
  7. Игровой контроллер Arduino
  8. Unopad - MIDI-контроллер Arduino с Ableton
  9. Контроллер вакуумного люминесцентного дисплея
  10. Домашний контроллер Arduino, активированный Alexa