Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Привет! ????

Представляю мой новый проект – автоматическое управление отоплением и вентиляцией на базе Arduino Nano 3.0.

Довольно долго я бился над решением задачи создания оптимального микроклимата в ванной комнате, и наконец-то, благодаря знаниям, полученным в процессе изучения Arduino и различных датчиков температуры и влажности, мне это удалось! ???? 

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

Обогреватель то и дело перегревал воздух в дневное время, а если его отключить, то воздух становился неприемлемо холодным для ванной комнаты. То же самое и с влажностью.

Постоянно включенная вытяжка приводила к переохлаждению комнаты в ночное время, а днем, если вытяжку не включить, происходило чрезмерное оседание конденсата, о борьбе с которым я уже писал ранее.

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

А теперь предлагаю подробнее рассмотреть как все работает, включая программу (скетч) для Arduino!

Устройство системы

На передней панели системы управления отоплением и вентиляции находится двухстрочный дисплей LCD 1602 I2C, который отображает текущие значения температуры и влажности, а также позволяет просматривать меню установок прибора.

Красная и зеленая кнопки – кнопки управления (оказалось вполне достаточно двух кнопок для изменения настроек и управления устройством). Красный светодиод загорается при включении отопления, а зеленый – при включении вентиляции.

На левой стороне расположен датчик температуры и влажности DHT22 а также USB-порт модуля Arduino, который пришлось заклеить для лучшей сохранности.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino. Вид сбоку

На правой стороне устройства находится выключатель и система охлаждения, представляющая собой компьютерный вентилятор, работающий на вытяжку. Без него корпус системы нагревался (от встроенного блока питания и реле), что приводило к неверным показаниям датчика температуры, т.к. он расположен близко к корпусу.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino. Вид сбоку

Система контроля микроклимата работает от сети 220 вольт и подключена к ближайшей розетке.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino.

Заглянем внутрь корпуса. Сам корпус является обычной разветвительной коробкой. На его передней панели имеются 4 болта, открутив которые можно легко и быстро получить доступ к мозгам системы, а также к коммутационным реле, которые управляют нагрузкой.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino со снятой лицевой панелью

Внутри находится сборка из модуля ардуино нано 3.0, силовых реле с максимальным током до 10 ампер, и блоком питания на 9 вольт.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino. Вид изнутри

Панель управления подключена к основному модулю при помощи шлейфов.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Система для управления отоплением и вентиляцией на базе Arduino. Вид изнутри

Панель управления можно легко отсоединить от устройства для проведения профилактических работ или модернизации. Как уже упоминалось выше, в состав панели входит LCD модуль, 2 светодиода и 2 управляющие кнопки.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Панель управления системы контроля микроклимата на базе Arduino

Управляющий модуль сконструирован на монтажной плате и имеет разъемы для подключения датчика влажности и температуры DHT22, панели управления, нагрузки (4 разъема), а также источника питания. Первый, второй и четвертый разъемы работают в режиме ключа (замыкают и размыкают цепь). Третий разъем обеспечивает выход с напряжением 5 вольт для управления дистанционной розеткой.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Главный модуль системы контроля микроклимата на базе Arduino

Силовые элементы надежно припаяны при помощи медных проводов на обратной стороне монтажной платы. Логические элементы аккуратно спаяны меду собой, все реле управляются через транзисторы.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Главный модуль системы контроля микроклимата на базе Arduino. Монтажная плата

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

Корпус системы контроля микроклимата

Настенный конвектор, отлично подсушивающий влажный воздух, находится на противоположной стене от модуля управления микроклиматом.

Настенный конвектор, управляемый системой на базе Arduino

Обогреватель управляется при помощи дистанционной розетки, о которой уже говорилось в одной из прошлых публикаций.

Розетка с дистанционным управлением системы контроля микроклимата на базе Arduino

Управляющая программа (скетч для ардуино)

Теперь, пожалуй, самое интересное ???? Предлагаю вашему вниманию полный скетч для управления отоплением и вентиляцией на базе Arduino. Скажу сразу, что скетч модернизировался после первого запуска системы целых 3 раза. И на то были определенные причины.

Изначально температура измерялась каждые 2 секунды, и в зависимости от этого срабатывали правила включения и выключения электроприборов. Бывало так, что вытяжка включалась и выключалась каждые 2 секунды, в моменты колебания влажности или температуры на пограничных значениях.

Решением данной ситуации стало изменение алгоритма программы таким образом, чтобы измерения проводились 5 раз подряд (в течение 10 секунд), а затем для всех показателей вычислялось среднее значение, на основании которого применялись правила включения/отключения нагрузки. Это позволило избавиться от таких “скачков” с выключением вытяжки или батареи!

Итак, скетч под этим спойлером:

#include #include #include «DHT.h» #include #define DHTPIN 7 // номер пина, к которому подсоединен датчик DHT22 LiquidCrystal_I2C lcd(0x3f,16,2);   // Задаем адрес и размерность дисплея. DHT dht(DHTPIN, DHT22); //инциализация датчика DHT22 //служебные переменные int counter=0; //счетчик циклов String strOut=»»; //строка для вывода на дисплей float rh; //для считывания влажности float rt; //для считывания температуры float h=0; //для хранения усредненного значения влажности float t=0; //для хранения усредненного значения температуры String out_h=»—.—«; //строка для вывода влажности String out_t=»—.—«; //строка для вывода темературы //количество необходимых измерений для вычисления среднего значения #define measureCntMax 5 //количество произведенных измерений int measureCnt=0; String tiktak=»»;//для отображения процесса работы в виде мигающей справа на экране точки, чтобы понимать что устройство не зависло и производит измерения ///////////////////////////// //температура включения и выключения отопления по умолчанию float tempHeatOn=23.00; float tempHeatOff=26.00; //состояние обогревателя byte HeatState=0; //0 — обогрев выключен, 1 — обогрев включен //влажность включения и выключения вытяжки по умолчанию float humVentOn=65.00; float humVentOff=45.00; //состояние вентиляции byte VentState=0; //0 — вытяжка выключена, 1 — вытяжка включена int mode=0; //режим экрана и ввода с кнопок //0 — отображает значения температуры и влажности //1 — экран настройки температуры включения обогрева //2 — экран настройки температуры отключения обогрева //3 — экран настройки влажности включения вентиляции //4 — экран настройки влажности отключения вентиляции   //5 — служебное значение, по которому сбрасываем режим на 0 и сохраняем настройки!!!!! //6 — отображение текущих температурных параметров //7 — отображение текущих параметров влажности //предыдущее значение кнопок byte RbtnLastState=-1; //для красной byte GbtnLastState=-1; //для зеленой //время удержания кнопок int RHoldTime=0; //для красной int GHoldTime=0; //для зеленой void setup() {  pinMode(13,OUTPUT); //гасим штатный светодиод на 13 выводе  pinMode(2,OUTPUT); //реле 2, разъем 2 — сюда подключен второй вентилятор вытяжки  pinMode(3,OUTPUT); //реле 3, разъем 4 — запасной, в настоящее время не используется  pinMode(4,OUTPUT); //вывод 5 вольт на разъем 3 для дистанционного управления розеткой  pinMode(9,OUTPUT); //реле 1, разъем 1 — сюда подключен первый вентилятор вытяжки    pinMode(14, OUTPUT); //переключаем аналоговый вход A0 в режим цифрового вывода с номером D14  digitalWrite(14, LOW);  pinMode(15, OUTPUT); //переключаем аналоговый вход A1 в режим цифрового вывода — D15 (документация ардуино)  digitalWrite(15, LOW);    pinMode(5,INPUT); //настраиваем цифровой вход 5 на ввод  pinMode(8,INPUT); //настраиваем цифровой вход 8 на ввод  digitalWrite(5, HIGH); //подтягиваем резистор на вход 5  digitalWrite(8, HIGH); //подтягиваем резистор на вход 8    lcd.begin(); // Инициализация lcd               lcd.backlight();// Включаем подсветку  delay(100);  //выводим приветственный текст на дисплей  lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки  lcd.print(«>»); // Выводим текст  lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки  lcd.print(«>>> EANIK.RU

Читайте также:  Пневматическая зажигалка своими руками

Источник: https://eanik.ru/2018/05/19/microclimat-control-via-arduino/

Контроллер управления вытяжным вентилятором в ванной — самопал.pro

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Недавно столкнулся с тривиальной задачей — управление вытяжным вентилятором дома в ванной комнате. 

Казалось бы чего проще, подключил его к выключателю света и готово. Но, время работы света непостоянно и может быть недостаточно для уменьшения влажности, хотя данную проблему можно решить установкой таймера. К тому же, моим близким очень не нравится работающий вентилятор при принятии водных процедур, так как он «создает холодный ветер». 

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

  • Пришлось подключить к делу свое увлечение Arduino и несложными микроконтроллерами. 
  • Пораскинув мозгами сформулировал

Требования к устройству управления

  1. устройство управления должно работать в автоматическом режиме;
  2. вентилятор должен включаться от повышения влажности;
  3. включение вентилятора не должно зависеть от текущего уровня влажности в квартире;
  4. вентилятор должен работать, когда в ванной комнате никого нет;
  5. устройство управление должно быть максимально простым и дешевым;

Выбор элементной базы

  1. Прототип данного устройства создавался на отладочной плате Arduino Uno китайского производства:
    Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  2. Потом все переносилось в микроконтроллер Atmega328, прошитый стандартным ардуиновским загрузчиком.
  3. Конечное устройство создавалось по принципу «я тебя слепила из того что было». Все элементы были приобретены ранее на просторах интернета под различные проектики или выдраны из неработающих устройств:

В качестве источника питания подошел LED driver 3×1вт от светильника, который вполне справился с питанием импульсного стабилизатора LM2596.
В качестве корпуса была применена кроссовая коробочка от старой АТС.

Схема устройства

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

На индикатор CPS03621BR даташит найден не был, поэтому выводы находились при помощи батарейки методом тыка. Индикатор оказался с общим анодом. Схема расположения катодов:Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Вентилятор управляется при помощи симистора BT137.

Схему подключения взял с сайта avr.ru

  • Если кто-то вздумает повторять — ОСТОРОЖНО, на корпусе симистора напряжение 220В.
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Алгоритм работы

Микроконтроллер с периодичностью раз в 10 секунд меряет влажность и температуру.
Влажность циклически накапливается в архиве из 6 значений.

Если текущая влажность выше первой из архива более чем на 3% либо абсолютное значение влажности выше 85%, значит нужно включать вентилятор. Вентилятор включается на 20 минут при отсутствии света на фоторезисторе.

Кнопка принудительно включает вентилятор на 20 минут (если он не работает) или выключает (если работает).Все константы в алгоритме подбирались эксперементальным путем.

Индикатор циклически показывает текущую температуру, влажность и таймер обратного отчета.

Точка второго разряда горит, если требуется понижение влажности и мигает, если подана команда на включения вентилятора.

Полностью логику работы прибора можно описать конечным детерменированным автоматом.

Входной алфавит автомата состоит из следующих событий (в порядке приоритетов):

  • нажата кнопка ручного режима;
  • сработал датчик влажности;
  • горит свет;
  • не горит свет;
  • сработал таймер работы вентилятора.

Множество состояний:

  1. режим ожидания, вентилятор не работает, тайме отключен;
  2. требуется включение вентилятора, вентилятор не работает, таймер (при)остановлен;
  3. вентилятор работает в автоматическом режиме, таймер включен;
  4. вентилятор работает в ручном режиме, таймер включен;

Ну и таблица переходов состояний автомата:
Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Программирование

AVR-studio и прочих монстров я устанавливать не стал, а обошелся опять же тем, что было — IDE Arduino. 

Как подготовить контроллер для работы в среде ARDUINO IDE описано в этой статьеКонтроллер прошил на 8МГц с внутренним резонатором и отключенным контролем напряжения питания.

Скетч и библиотеки, использованные в проекте

Проблемы

Первой проблемой, с которой столкнулся в реализации — не работал датчик DHT11. На Arduino UNO все нормально, а на голом микроконтроллер не работает.

Проблема оказалась в частоте работы контроллера и таймингам протокола опроса DHT.

В контроллерах, работающих на частоте 8МГц в библиотеке DHT нужно обязательно указывать задержку «3» (третий параметр в конструкторе класса) DHT dht(dhtPIN, DHT11, 3);

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

Сперва встроенный подтягивающий резистор микроконтроллера на соответствующих выводах был заменен на внешний 10К. Помеха уменьшилась, но не исчезла совсем.

Контроллер периодически жил своей жизнью самостоятельно включая/выключая вентилятор. 

Тогда я реализовал программное подавление помехи — кнопка опрашивалась подряд 10 раз с задержкой 10мс и только при наличии всех 10 срабатываний признавалось нажатие кнопки. 

  1. Готовое устройство выглядит так:
  2. Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  3. Супруга посмотрела на унылую коробочку непонятного цвета и сделала ей «декупаж»
  4. Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  5. Два месяца эксплуатации контроллера прошло нормально и особо переделывать ничего не хочется.

Спустя два года эксплуатации разработана новая версия контроллера на ESP8266:

Список полезных ссылок:

  • Главный помощник устал.
  • Ветка на форуме с обсуждением данного проекта

Источник: http://samopal.pro/h-controller1/

Организация полива, обдува и освещения в Умной теплице на Ардуино

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками! Написано 11.12.2016 в 19:32 , Виктор Петин / Уроки Ардуино / 4

В предыдущих статьях по Умной теплтице (проект «Домашний цветок») «Умная теплица на Arduino- делаем первые шаги» и «Индикация показаний при проектировании Умной теплицы на Ардуино» мы реализовали функции мониторинга и вывода данных на дисплей и светодиоды. Сегодня мы добавим нашей Умной теплице функции управления. Нам необходимо организовать полив цветка, обдув, освещение. Выполнять данные операции будем по нажатии соответствующих кнопок.
Дополнительно к деталям, использовавшимся в предыдущих статьях ( нам понадобятся следующие:

  1. Relay shield на 4 реле – 1 шт;
  2. Вентилятор 12В – 1 шт;
  3. Мембранный насос 12В – 1 шт;
  4. Лампа освещения – 1 шт;
  5. Кнопка – 3 шт;
  6. Резистор 10 кОм – 3 шт.

Кнопки и резисторы имеются в каждом из наборов «Дерзай» («Базовый» и «Изучаем Arduino» ).
Мембранный вакуумный насос (рисунок 1) будем использовать для полива почвы. Он предназначен для всасывания воды из емкости. Рабочее напряжение 12В, потребляемый рабочий ток 0.5 – 0.7А, расход 1.5 л/мин.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Рисунок 2, 3. Замена шланга мембранного вакуумного насоса

При высоких температурах воздуха будем производить обдув цветка с помощью вентилятора. Вентилятор можно взять любой, я вытащил из старого системного блока, который работает от 12В (рисунок 4).

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Рисунок 4. Вентилятор

Искусственный свет для эффективного выращивания растений должен излучать спектр электромагнитного излечения аналогичный тому, который получают растения в естественной среде.

Если полной аналогии достичь сложно, то освещение должно удовлетворять хотя бы минимальные потребности. Для обеспечения наиболее комфортных условий для развития подбираются специальные лампы, имеющие различное влияние.

Рекомендуется использовать следующие лампы:

  • светодиодные фитолампы;
  • энергосберегающие лампы дневного спектра;
  • люминисцентные.

Насос, вентилятор, лампу подключать напрямую к Arduino нельзя! Будем управлять ими через реле. Будем использовать Relay shield (рисунок 5), который содержит 4 реле с необходимой обвязкой.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Рисунок 5. Relay shield
Теперь соберем на макетной плате схему, представленную на рисунке 6 (схема из предыдущей части с добавлением кнопок и реле).

Читайте также:  Подставка для ножей и столовых приборов своими руками

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Рисунок 6. Схема соединения для мониторинга параметров и ручного управления проекта «Домашний цветок»

Приступим к дописанию кода скетча. Создаем переменные типа Boolean (true – включено, false – выключено) для состояния трех реле:

status_pump – насос;
status_lamp – лампа;
status_fun – вентилятор.

В цикле loop() отслеживаем нажатие кнопок с проверяем на дребезг (процедура debounce()) и в случае нажатия кнопки изменяем статус соответствующей переменной и отправляем команду для изменения статуса соответствующего реле на противоположное:
включение/выключение насоса (полив почвы);
включение/выключение освещения;

включить/выключение вентилятора.

Источник: https://playarduino.ru/uroki-arduino/organizatsiya-poliva-arduino/

Самодельный инкубатор: Arduino

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

В прошлой части мы разобрались с печатью элементов инкубатора на 3D принтере, теперь посмотрим на аппаратную и программную составляющие.

Аппаратная часть

  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • В проекте использовались такие комплектующие:
  • Arduino UNO – ну тут все понятно, мозги системы.
  • LCD 1602 I2C – экран системы, брал сразу с модулем I2C, чтобы занимал меньше пинов на ардуине.

ИК приемник с пультом – не люблю возиться с кнопками, а тут вполне себе рабочее решение для управления системой. На Ali искать по запросу «IR Arduino».

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками! Управление осуществляется с пультика, через ИК приемник.

DS18B20 – температурный датчик в герметичном корпусе с хорошей точностью измерений.

DHT11 – датчик температуры и влажности, точность никакая, поэтому с него берем только показания влажности, учитывая погрешность ±10%.

Модуль с 4 реле – для управления светом и вентиляторами. На Ali искать по запросу «Relay shield».

Сервопривод SG90 – для вращения лотков, я взял на всякий случай два, но пока стоит только один. Лоток с 8 яйцами крутит без проблем.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Блок питания на 12В — вполне достаточно 2 ампер. Обычно такие используются для светодиодной подсветки. На Ali можно искать по запросу «12v 2a».

LM2596 — DC–DC преобразователь: 12 вольт для питания Ардуины многовато, могут быть сбои в работе. Чтобы не покупать второй блок питания, с помощью этого модуля понижаем напряжение с 12В до 9В и подаем на ардуину.

Вентиляторы использовал стандартные, компьютерные, размером 60 мм. Не покупал, снял 2 шт. со старого системного блока. На Ali искать по запросу «60mm fan», но имеет смысл дойти до ближайшего компьютерного магазина, там может быть дешевле.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками! Примерно так выглядит монтажная плата с тремя колодками. Фотка с другого проекта.

Поскольку на ардуине мало разъемов для питания +5В, землю и пин для подключения DS18B20 вывел на монтажную плату. К которой припаял 3 колодки и резистор на 4,7КОм.

Общая схема подключения, извиняюсь за качество. Ну и мог не угадать с цветами проводов, лучше уточнять для каждого компонента:

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Общая стоимость всех компонентов обошлась примерно в 1000 рублей, закупался на AliExpress. Заказ лучше делать в одном магазине, получается экономия на стоимости доставки.

Программная часть

Программа на самом деле предельно простая. Управление температурой осуществляется по принципу термостата: холодно – греем, тепло – не греем. Температурный режим, вращение лотков и вентиляция зависят от текущего дня. В общем, смотрите исходники: servo.zip

Поскольку инкубатор делал в подарок, к нему прилагается небольшая инструкция. Если чего не дописал здесь – читайте в инструкции: incubator.pdf.

Полноценно инкубатор пока не использовали, только тестовые запуски: греет быстро, температуру держит, вентиляцию включает своевременно. Когда будет закладка, напишу отдельно о ее результатах.

Источник: https://mxjournal.ru/blog/1378

Простой способ считать обороты кулера с помощью Arduino

Распиновка проводов кулера Сегодня о том, как считывать обороты компьютерного кулера с помощью его встроенного тахометра.

На фото обыкновенный компьютерный вентилятор с трехпроводным подключением. Два провода красный и черный это питание с массой, и желтый, по которому комп определяет с какой скоростью крутится пропеллер.

Работает этот выход довольно просто, выход соединяется с массой, когда крыльчатка находится в определенном положении, можно даже подключить тестер и посмотреть, как это происходит.

Только без питания ничего работать не будет, поэтому я его подключил к 5 вольтам от пальчиковых батареек.

 Конкретно этот кулер замыкает выход 2 раза на 1 оборот, соответственно к нему можно подключить оттягивающий резистор и снимать показания как с энкодера.

  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Схема подключения кулера к Arduino

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

+12 вольт подключается только к кулеру, к его красному проводу и никуда больше. Выход тахометра, желтый провод, подключается к нулевому прерыванию Arduino на UNO это второй вход и он же подтягивается резистором к ардуиновским 5 вольтам. Ну и, конечно же, у нас общая масса с кулером и его питанием. Теперь можно подавать питание.

Интересная статья:  Как сделать самому резистивную клавиатуру для arduino

Описание кода.

В коде заводим переменную

volatile int val;

и функцию обработчика прерываний, которая будет плюсовать к переменной единицу.

void rpm(){
 val++;
}

В setup конфигурируем прерывания, оно у нас CHANGE,

attachInterrupt(0, rpm, CHANGE);

то есть будет выполняться когда состояние на входе изменится и когда будет изменяться состояние на входе будет прибавляться единица к переменной val.

В цикле сбрасываем переменную на 0 и ждем пол секунды пока набежит значение, ждем пол секунды а не секунду  потому что прерывание срабатывает 2 раза за 1 импульс  от чего можно считывать в 2 раза чаще.

val = 0; // сбрасываем счетчик и ждем.
delay(500); // так как прерывание CHANGE, срабатывает два раза

После рассчитываем обороты в минуту и отправляем в serial, то есть количество импульсов в секунду множим на 60 и делим на 2, так как у нас 2 импульса за оборот. И еще отправляем значения из переменной val.

Serial.print((val*60)/2); // количество импульсов на 60 секунд и делим на количество импульсов на оборот
Serial.print(» rpm «);
Serial.print(val);
Serial.println(» val»);
Интересная статья:  Часы на Arduino используя DS3231
volatile int val;
void rpm(){
val++;
}
void setup() {
Serial.begin(9600);
attachInterrupt(0, rpm, CHANGE);
}
void loop() {
val = 0; // сбрасываем счетчик и ждем.
delay(500); // так как прерывание CHANGE, срабатывает два раза
// то и считываем каждые пол секунды.
Serial.print((val*60)/2); // количество импульсов на 60 секунд
// и делим на количество импульсов на оборот
Serial.print(» rpm «);
Serial.print(val);
Serial.println(» val»);
}

Так же можете посмотреть видео как подключить куллер к Arduino и определить его обороты.

Эта статья была добавлена при поддержке нашего спонсора, лучшего онлайн кинотеатра, Megogo.net. На котором можно поднять настроение себе и своим детям при просмотре мультфильмов бесплатно и онлайн. А самое главное там можно увидеть последние серии любимых мультиков ваших детей, таких как Маша и медведь, Фиксики, Барбоскины и другие.

Источник: https://cxemok.ru/arduino/153-prostoy-sposob-schitat-oboroty-kulera-s-pomoschyu-arduino.html

ArduMini.ru

  • Здравствуйте!
  • Как и обещал публикую свой проект блока управления вентилятора в ванной.
  • Для данного устройства были использованы:
  • — плата Arduino Pro mini;
  • — зарядное устройство 5В в качестве источника питания;
  • — релейный модуль «5V 1-Channel Relay Module Board for Arduino PIC STM32 Optocouple For Arduino MCU»;
  • — фотоэлемент «LM393 light Sensor Module», для определения момента включения и выключения света.
  • — датчик температуры и влажности DHT11.

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

Санузел у меня совмещенный. Поэтому алгоритм работы следующий.

1. Устройство должно включать вентилятор при достижении верхнего предела влажности и выключать его, если влажность опустилась меньше нижнего порога влажности.

Читайте также:  «колодец» из покрышек своими руками

2. При включении света  в ванной вентилятор доложен в любом случае выключатся — т.к. дома маленький ребенок и не хотелось чтобы вентилятор пугал ребенка, если нужно будет его покупать (как оказалось вентилятор не такой уж и страшный).

3. После того как свет выключился (посетитель покинул санузел) — вентилятор должен включится на заданный промежуток времени, для того чтобы освежить воздух.

Включение и выключение вентилятора происходит с помощью реле. Так же предусмотрена индикация причины включения вентилятора:

1. зеленый светодиод — человек покинул санузел.

2. красный светодиод — повышение влажности.

Схема устройства представлена на рисунке.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Схема блока управления вентилятора в ванной

Всё довольно просто. Фотоэлемент LM393 light Sensor Module при включении света устанавливает у себя на выходе логическую «1». Датчик DHT11 позволяет нам отслеживать влажность в помещении.

Скетч можно загрузить тут.

Основной блок программы следующий:

void loop()
{
DHT11.acquireAndWait();
hidr = DHT11.getHumidity(); // получаем сзначение влажности

NextLight = !digitalRead(LightPin);

if (NextLight == 1)
{
vent = 0;
Lightvent = 0;
if (NextLight != PrevLight) PrevLight = NextLight; // изменение состояния освещения
}
else
{
if (PrevLight == 1)
{
time_dif = millis() — LightcurMillis;//фиксируем время работы вентилятора из-за света
if (vent == 0)
{
vent = 1;
LightcurMillis = millis();
Lightvent = 1;
//if (NextLight != PrevLight) PrevLight = NextLight;
}
else if ((millis() — LightcurMillis) > period)
{
vent = 0;//если вентилятор работает больше времени работы после выключения света — выключаем вентилятор
Lightvent = 0;
if (NextLight != PrevLight) PrevLight = NextLight;

  1. }
  2. }
    //if (NextLight != PrevLight) PrevLight = NextLight;

if (!Lightvent && (hidr >= 40) )
{
vent = 1;//если влажность больше 40% включаем вентилятор
Hidrvent = 1;
}
else if (!Lightvent && (hidr < 37)) { vent = 0;//если влажность меньше 37% выключаем вентилятор Hidrvent = 0; } } //фиксируем состояное выходых пинов digitalWrite(VentPin, vent); digitalWrite(GreenLedPin, Lightvent);

digitalWrite(RedLedPin, Hidrvent);

//некоторая отладочная информация, можно удалить
Serial.print(«
Retrieving information from sensor: «);
Serial.print(«Read sensor: «);

//delay(100);

Serial.print(«Humidity (%): «);
Serial.println(DHT11.getHumidity(), 2);

Serial.print(«Temperature (oC): «);
Serial.println(DHT11.getCelsius(), 2);

Serial.print(«T: «);
Serial.println(vent);
Serial.print(«Lightvent: «);
Serial.println(Lightvent);
Serial.print(«Hidrvent: «);
Serial.println(Hidrvent);
Serial.print(«NextLight: «);
Serial.

println(NextLight);
Serial.print(«PrevLight: «);
Serial.println(PrevLight);
Serial.print(«time_dif: «);
Serial.println(time_dif);
Serial.print(«LightcurMillis: «);
Serial.println(LightcurMillis);
Serial.

print(«Millis: «);

  • Serial.println(millis());
  • delay(1000);
    }
  • Полный скетч вы можете посмоьреть по ссылке выше.
  • Внешний вид устройства.
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Внутренности
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Тут у нас БП на 5 вольт и модуль с реле.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!Тут фотоэлемент, датчик DHT11, светодиоды, Arduino Pro mini. Датчик DHT11, светодиоды и резисторы смонтированы на маленькой макетной платке. Всё закреплено клеевым пистолетом. Корпус куплен в Украине за 5 гривен. Резисторы тоже покупались в Украине. Все остальные элементы покупались на ebay у продавцов из Китая.

Устройство успешно работае у меня в санузле уже 2 месяца.

Из возможных доработок/изменений:

— т.к. устройство собрано в одном корпусе с блоком питания из зарядного устройства, которое греется, то возможна погрешность в определении влажности.

  1. — в качестве комутирующего элемента можно использовать полевой транзистор.
  2. Если у вас возникнут вопросы — пишите в коментариях постараюсь ответить.
  3. Скетч.

Источник: http://ardumini.ru/proekty/primenenie-arduino-v-vannoy.html

Вентилятор с помощью Ардуино, который зависит от температуры

Автоматический вентилятор Ардуино, который включается сам, когда температура в помещении достигнет определенной величины.

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

В этом уроке вы узнаете о вентиляторах с регулятором температуры на Ардуино, используя датчик и реле DHT22. Мы будем использовать датчик DHT22 для получения значения температуры и выведем это значение температуры на ЖК-дисплее. Затем мы проверим, будет ли значение температуры больше 35 или нет, если температура будет больше 35, тогда реле будет активировано и вентилятор начнет вращаться.

Нам понадобятся следующие детали для нашего проекта:

1 Arduino Uno
1 16×2 LCD / ЖК Дисплей
1 DHT22 датчик температуры и влажности
1 DC motor / Двигатель постоянного тока
1 9В батарейка
1 10K потенциометр
1 220 Ом резистор
Набор проводов
1 Макетная плата

Принципиальная схема вентилятора Ардуино

  • Принципиальная схема нашего вентилятора выглядит так:
  • Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!
  • Давайте разберемся с соединением всех деталей. Прежде всего сделайте подключение ЖК-дисплея к Ардуино следующим образом:
  • Подсоедините вывод VSS на ЖК-дисплее к земле Arduino.
  • Подключите контакт VDD к 5V Arduino.
  • Подсоедините вывод V0 к центральному выводу потенциометра 10K. Подключите два других контакта потенциометра к 5V и к земле.
  • Подсоедините штырь RS к контакту 2 Arduino.
  • Подключите контакт R/W к земле Arduino. Это поместит ЖК-дисплей в режим чтения.
  • Подключите контакт E (Enable) к контакту 3 Arduino.
  • Подключите контакты D4-D7 к контакту 4, 5, 6, 7 Ардуино.
  • Подключите контакт 15, который является положительным выводом подсветки светодиода на 5-контактный штырь через резистор 220 Ом.
  • Подключите контакт 16, который является отрицательным выводом подсветки светодиода к земле Arduino.

Затем подключите релейный модуль к Arduino. На стороне входа модуля реле выполните соединения следующим образом:

  • Подключите вывод VCC модуля реле к выводу 5V Arduino.
  • Подключите вывод IN модуля реле к выходу 9 Arduino.
  • Подключите вывод GND модуля реле к GND Ардуино.

На выходной стороне модуля реле подключите минус 9В-батареи к общему (C) модулю реле и подключите NC модуля реле к минусу вентилятора. Затем подключите плюс батареи к плюсу вентилятора.

В конце сделайте соединения для датчика температуры и влажности DHT22.

  • Подключите контакт 1 DHT22, который является выводом VCC, к 5V Ардуино.
  • Подключите контакт 2 DHT22, который является выводом данных к выходу 8 Arduino.
  • Подключите контакт 4 от DHT22, который является заземляющим контактом, к земле Arduino.

Скетч для Ардуино

Ниже вы можете скопировать и загрузить код в свою Ардуино Уно.

#include «DHT.h»
#include «LiquidCrystal.h»
LiquidCrystal lcd(7, 8, 9, 10, 11 ,12);
#define DHTPIN 6
#define DHTTYPE DHT22
DHT sensor(DHTPIN, DHTTYPE);
int relay_pin = 9;

void setup() {
lcd.begin(16,2);
sensor.begin();
pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, HIGH);
}
void loop() {
lcd.clear();
float t = sensor.readTemperature(); //считывание температуры с датчика
// Проверка, посылает ли датчик значения или нет
if (isnan(t)) {
lcd.print(«Failed»);
delay(1000);
return;
}
lcd.setCursor(0,0);
lcd.print(«Temp: «);
lcd.print(t);
lcd.print(» C»);
if (t > 35){
digitalWrite(relay_pin, LOW);
lcd.setCursor(0,1);
lcd.print(«Fan is ON «);
delay(10);
}
else{
digitalWrite(relay_pin, HIGH);
lcd.setCursor(0,1);
lcd.print(«Fan is OFF «);
}
delay(2000);
}

Объяснение кода

Прежде всего, мы включили библиотеки для датчика DHT22 и для ЖК-дисплея. Библиотеки помогут сделать код более простым.

Скачать все необходимые библиотеки для своих проектов вы можете на нашем сайте в разделе — Библиотеки.

#include «DHT.h»
#include «LiquidCrystal.h»

Затем мы инициализировали контакты к которым мы подключили ЖК-дисплей и датчик DHT22. После этого мы определили тип датчика DHT, который используется. Существует множество других типов датчиков DHT, таких как DHT11, поэтому здесь важно определить тип.

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

#define DHTPIN 8

#define DHTTYPE DHT22
DHT sensor(DHTPIN, DHTTYPE);

В функции настройки мы дали команду DHT22 и LCD, чтобы начать общение с Arduino. Затем мы объявили контакт реле как выходной вывод, потому что мы дадим напряжение от Ардуино к реле для активации реле. Реле работает обратно (High означает Low для реле).

lcd.begin(16,2);
sensor.begin();

pinMode(relay_pin, OUTPUT);
digitalWrite(relay_pin, HIGH);

В функции цикла мы очищаем ЖК-экран, а затем считываем значение температуры от датчика.

lcd.clear();
float t = sensor.readTemperature();

if (isnan(t)) {
lcd.print(«Failed»);
delay(1000);
return;
}

Затем мы печатаем значение температуры на ЖК-дисплее, и если значение температуры будет больше 35, тогда реле будет активировано, и вентилятор начнет вращаться.

lcd.setCursor(0,0);
lcd.print(«Temp: «);
lcd.print(t);
lcd.print(» C»);

if (t > 35){
digitalWrite(relay_pin, LOW);
lcd.setCursor(0,1);
lcd.print(«Fan is ON «);
delay(10);
}

На этом всё. Хороших вам проектов!

Как сделать автоматический вентилятор на arduino uno для рабочего стола своими руками!

Источник: https://ArduinoPlus.ru/ventiliator-arduino/

Ссылка на основную публикацию
Adblock
detector