Ардуино: модуль реле. Модуль реле для arduino: компоненты и схема сборки

Мигать светодиодом и тому подобное — это конечно здорово, но захотелось сделать что-нибудь действительно более-менее стоящее, что можно применить в быту. Наверное самое простое — включать и выключать мощные потребители тока — лампочки, ве нтиляторы, насосы, магнитофоны и т.п. Для этого нам и поможет Реле-Shield. Существуют готовые решения, куча схем в инете. Но приятней сделать своими руками.

Вот. Теперь можно приступать к запайке компонентов. Первым делом перемычки и мелкие элементы (резисторы, диодная сборка, транзисторы).

Самое хлопотное — запайка штырьков-коннекторов.... Но, как-то справился:) Значит и вы сможете. Главное, что бы не было "соплей", "коротышей" и "непропая" :)
Вот несколько фото готового изделия. Скажем так, не выставочный вариант, но все же...
Кстати, снизу видны SMD диоды, стоящие параллельно обмоткам реле. Трансформатор закреплен двумя проволочками.

И заливаем тестовый скейтч:

/*
Test Home made rele Shield (Ghost D. 2012)
Используем цифровые выводы № 7 и №8
*/

void setup() {
//
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}

void loop() {
digitalWrite(7, HIGH); // Включаем первое реле
delay(2000); // ждем
digitalWrite(8, HIGH); //Включаем второе реле
delay(2000);
digitalWrite(8, LOW); // Выключаем второе реле
delay(2000);
digitalWrite(7, LOW); // выключаем первое реле
delay(2000); //
}

Наш новый шилд щелкает релюшками. Вуаля!!!

P.S. В моем варианте, в ходе тестирования, достаточно сильно греется трансформатор. То ли на БП (откуда я его выковырял) неверно была указана информация (типа 300 мА), то ли с ним какая-то неприятность...

Я давно хотел автоматизировать процесс просушки ванной комнаты после купания. У меня было много обзоров, посвящённых теме влажности. Решил внедрить в жизнь (так сказать) один из методов борьбы с ней. Кстати, зимой в ванной и бельё сушим. Достаточно вытяжной вентилятор включить. Но следить за вентилятором не всегда сподручно. Вот и решил поставить автоматику на это дело. Первый опыт внедрения оказался неудачный. Обзор был. Но я не сдался…

Когда въехал в новую квартиру, почти сразу поставил в вытяжку вентилятор с обратным клапаном. Вентилятор необходим, чтобы просушивать ванную комнату после купания. Обратный клапан нужен для предотвращения попадания в квартиру посторонних запахов от соседей (когда вентилятор молчит). И такое бывает. Вентканалы у всех индивидуальные, но цемент при кладке видно экономили. Сквозь щели, вероятно, запах и проходит.
Вентиляторы у меня есть различных вариантов. Есть простые, есть с таймером (регулировкой временнОго интервала), как на фото.


Именно таким и пользовался до сего дня.
В данном конкретном случае (у кого нет вентилятора с таймером) всё можно сделать на программном уровне.
Так как живу в многоквартирном «муравейнике», то единственное место для сушки белья – это балкон. В ванной может и затухнуть. Для сушки необходима либо низкая влажность, либо циркуляция воздуха. Выполнение обоих условий – лучший вариант. Вентилятор должен был решить эту проблему. Поначалу именно так и делал. Главное не забыть его выключить. Во время работы вентилятора необходимо приоткрывать малость окошко. Про школьную задачку с бассейном и двумя трубами напоминать не надо? Чтобы воздух выходил в вытяжку, необходимо, чтобы он откуда-то входил в квартиру. У кого окна деревянные, а не пластиковые, проблем не будет. Щелей хватит. А вот с пластиковыми квартира превращается в террариум.
Тут я и задумался об автоматизации процесса. Именно для этого я и заказал датчики.
Печальным опытом реализации своей идеи я уже делился. Вот тот модуль. Он работать не может в ПРИНЦИПЕ. Но без дела не останется. И ему будет применение.


(Напряжение питания: 5В. Максимальная нагрузка: 10А 250В переменного и 10А 30В постоянного тока). Использую как блок реле. Для обычного вентилятора этого достаточно.
Схему модуля я тоже рисовал. Проблем с подключением не будет.


Красный светодиод индицирует наличие питающего напряжения. Зелёный – сработку реле. Бесполезный датчик (датчик влажности, его уже нет) я заменил на сопротивление 10кОм. А также добавил ещё сопротивление. Оно пойдёт к «умному» блоку. Оба выделил красным. Всё это должно исключить возможные недоразумения. Ведь блок реле питается от напряжения 5В, а «умный» блок от 3,3В. Управляется блок реле низким уровнем. Высокий уровень отключает реле (вентилятор). В прошивке это учтено.
В основе схемы лежит компаратор на LM393. Подстроечный резистор изначально был предназначен для настройки порога срабатывания реле влажности. Возможно, его придётся немного крутануть.
Можно использовать простые блоки реле. Они продаются. Я же буду использовать то, что осталось после прошлой неудачной попытки.
Пора смотреть, в каком виде прибыли датчики AM2302 (DHT22). Заказал сразу три. Думаю, что только ванной это не ограничится. В голове много всяких идей. Где б только найти время и желание для их реализации.


Датчики были запаяны в антистатические пакеты. Всё по уму. Пайка аккуратная. Претензий по внешнему виду не имею. Даже плата промыта.


Вот, что написано на странице магазина:

AM2302 Humicap digital temperature and humidity module is a digital output signal containing a calibrated temperature and humidity combined sensor. It uses a dedicated digital modules capture technology and the temperature and humidity sensor technology to ensure that products with high reliability and excellent long-term stability. Sensor includes a capacitive humidity sensing element and a high-precision temperature measurement devices, and with a high-performance 8-bit microcontroller connected. Therefore, the product has excellent quality, fast response, anti-interference ability, high cost and other advantages. Ultra-small size, low power consumption, signal transmission distance up to 20 meters. Making it the best choice for all kinds of applications and even the most demanding applications.
Specification:
Dimension: 40 x 23mm
Weight: 4g
Voltage: 5V
Port: digital two-way single bus
Temperature range: -40-80 °C ± 0.5 °C
Humidity: 20-90% RH ± 2% RH
Platform: Arduino, SCM
Package included:
3 x Sensor Module
На плате деталей минимум. Датчики неразборные, ломать не стал.
Пора переходить к делу. Часть того, что применю, я уже показал. Ещё мне потребуется блок питания на 5В. Его я сделаю из старой (уже ненужной) зарядки к телефону.

Эта зарядка без USB разъёма. Ну очень старенькая (рекомендую использовать более новые, у них 5В на выходе). Поэтому на выходе 7В. Пришлось припаять МС стабилизатора КРЕН5. В этом ничего сложного нет. Кто дружит с паяльником, тот знает. А кто не дружит, зря читает топик.


Сильно не пугайтесь, сделал времянку. После отладки механизма всё будет выглядеть достойно. Возможно, и зарядку поменяю. Всё зависит от того, с каким результатом приду к финишу. Устанавливать по месту (на постоянку) буду после «комплексного опробования». Возможно, придётся применять зимний/летний вариант программного обеспечения. Температурные и влажностные характеристики воздуха зимой/летом отличаются.
Ещё мне потребуется WIFI модуль из предыдущего обзора.


Пригодится кабель-конвертер (USB To RS232 TTL UART) для программирования WIFI модуля.


Блок схема моей затеи выглядит просто.


Но нюансы конечно же имеются.
Осталось составить программку управления вентилятором.
Условий несколько:
1. Вентилятор включается при достижении влажности более 68%.
2. Время работы (таймер) 5 минут.
3. Передача данных о температуре и влажности по WIFI (на всякий случай).
4. Индикация режима по WIFI.
Если остановиться на условии №1, то достаточно будет самой простой Arduino. Но Arduino у меня только одна плата, а WIFI модулей целых три:)
Лично для меня самое сложное место – составление программы, немного (мягко сказано) не моя тема. Но жизнь течёт и увлекает в своё течение всё большие массы людей. Буду постигать необъятные просторы Arduino на примере датчика влажности DHT22 и WIFI модуля. Но если у меня всё получилось, значит, получится и у вас.
Сначала некоторая информация для чайников, как я.
В программе Arduino IDE не хватает в настройках тех плат, которые я буду использовать. Например, ESP8266 надо добавить.

Добавление компонентов на примере ESP8266.

Первым делом я скачал и установил на компьютер Arduino IDE. Затем запускаю программу.
Файл→Настройки→Вставляю ссылку в доп. ссылки→нажимаю ОК. Ссылка:



При этом необходимо подключение к интернету. Обязательно!
Затем захожу в менеджер плат.
Инструменты→Плата:…→Менеджер плат.


Нахожу свой модуль. Выбираю последнюю версию. Нажимаю установить.


В скаченной программе Arduino IDE не хватает и библиотек для датчиков. Например, библиотеку DHT22 тоже надо добавить.

Подключение библиотеки на примере датчика DHT22.

Сначала с интернета скачиваю архив типа DHT.zip. Найти не проблема.
Затем запускаю программу Arduino IDE.
Скетч→Подключить библиотеку→Добавить zip библиотеку.


Появляется вкладка типа этой.


Указываю место хранения…Open.
Библиотека подключена.


Осталось дело за малым:)
Схема подключения датчика влажности может отличаться. Мои пришли в виде модуля с тремя выводами и сопротивлениями, уже установленными на плате.

Ну и, наконец, заливка скетча.

Заливка скетча.

Открываю готовый скетч. В моём случае «WiFi-DHT22_AleksPoroshin68.ino.


Arduino IDE запускается автоматически.
Затем подключаю программатор, захожу в инструменты и подключаю Com-порт. Тот, к которому подключился высвечивается. Его и активирую. На моём нетбуке их три: это com6, com8 и com10.


Изучаю прошивку. Можно изменить имя и пароль доступа.

Нажимаю кнопку для загрузки.


Происходит компиляция скетча. Достаточно долго.


В это время необходимо нажать сброс на собранной схеме модуля.

При этом GPIO 00 на нуле.
Вот сам скетч:
#include #include #include #include #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); float dhtTemp = NAN; float dhtHumidity = NAN; int ledPin = 12; //GPIO 12 /* Set these to your desired credentials. */ const char *ssid = "AleksPoroshin"; const char *password = "12345678"; ESP8266WebServer server(80); /* Just a little test message. Go to http://192.168.4.1 in a web browser * connected to this access point to see it. */ void handleRoot() { String s = "\r\nESP201"; s += ""; s += ""; //s += "Status - Actions - Config"; s += "

Модуль ESP 201

"; s += " "; if (isnan(dhtTemp)) s += " Температура: Ошибка чтения"; else { s += " Температура: "; s += dhtTemp; s += " C"; } if (isnan(dhtHumidity)) s += " Влажность: Ошибка чтения"; else { s += " Влажность: "; s += dhtHumidity; s += " %"; } if(digitalRead(ledPin) == HIGH) s += " Вытяжка: Откл."; else s += " Вытяжка: Вкл."; s += " "; server.send(200, "text/html", s); } void setup() { delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Configuring access point..."); /* You can remove the password parameter if you want the AP to be open. */ WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handleRoot); server.begin(); Serial.println("HTTP server started"); dht.begin(); Serial.println("DHT22 init success"); pinMode(ledPin, OUTPUT); } void loop() { getDHT(); server.handleClient(); } void getDHT() { dhtTemp = dht.readTemperature(); dhtHumidity = dht.readHumidity()+5; if (dhtHumidity < 68) { digitalWrite(ledPin, HIGH); Serial.println("ledPin HIGH"); } else { digitalWrite(ledPin, LOW); Serial.println("ledPin LOW"); } }
Сильно не ругайте. Я только учусь.
После заливки скетча для подтверждения программирования GPIO подключаю к +3,3В. Затем отключаю. Прошивка залита.


Собираю схему на макетнице. Всё проверяю. Работает. Но не всё так хорошо, как хотелось. В нужном мне диапазоне китайские датчики занижают показания на 5-6%.


Немецкому логгеру у меня доверия больше. Да и цена у него в несколько десятков раз больше. А самое главное, он прошёл поверку.
Ввёл поправку в программу (добавил 5 единиц). Я согласен, что это неправильно. Но в диапазоне 40-70% показывает точно. Более правильно снять характеристику и исправить библиотеку. К этому я не готов:). Остальные датчики тоже врали. Хотя все показывали приблизительно одинаково.

Вот так выглядит интернет страничка, если подключится к моему WIFI модулю:


Пароли и явки указаны в скетче.
Переключение происходит на 68% влажности. Всё чётко.


Но есть один нюанс. И его не учитывать нельзя. На границе в 68% влажности вентилятор может циклить, то включаясь, то выключаясь. Для решения этой проблемы нужен таймер. У меня вентилятор с таймером. Т.е. проблемы нет. У кого обычный вентилятор, придётся решать эту проблему на программном уровне.
Дальнейшая моя задача всё это собрать согласно схеме, но уже не на макетнице и протестировать в течение месяца. Все изменения можно вносить в процессе эксплуатации. Что делать и куда вставлять, я всё написал.
Несколько слов по поводу монтажа датчика. Засовывать его в вентканал не советую. Причина проста. Даже в самой чистой и ухоженной квартире присутствует пыль, которая при включении вентилятора именно туда и устремляется (в ветканал). А ведь год назад я вентилятор вынимал и тщательно чистил.


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


Без них вам будет очень сложно что-то делать по этой теме.
На этом всё.
Как правильно распорядиться сведениями из моего обзора каждый решает сам. Кому что-то неясно, задавайте вопросы. Надеюсь, хоть кому-то помог. Возможно, кто-то захочет помочь мне. Я буду очень благодарен.
Удачи всем!
Проверка на работоспособность:


Продолжение следует…

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Планирую купить +51 Добавить в избранное Обзор понравился +26 +65

Сегодня я расскажу, как собрать свой собственный релейный модуль, которое можно использовать где угодно: с Arduino, Распбери Пи и т.д. Цена такого реле будет очень низкой.

Причиной создания релейного модуля ардуино был мой проект, который мне нужно было завершить в короткие сроки. Как назло, в гараже не оказалось ни одного модуля. Я пошел в местный магазин, но там не оказалось ни одного модуля реле на 5 или 6 Вольт. Зато у них были сами реле, я купил несколько и на их основе сделал свой собственный модуль.

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

Шаг 1: Собираем нужные компоненты





Для изготовления реле arduino нужно собрать определённые компоненты по списку. Много из того, что пригодится, может просто лежать у вас в гараже.

Электроника:

  1. Реле на 5V (я использовал реле на 6V, потому что мне нужно было реле на 6V).
  2. Транзистор BC548.
  3. Резистор 100 Ом.
  4. Диод IN4001.
  5. Винтовые клеммы (3 полюса, 2 шт.)
  6. Светодиод (красный или зелёный)
  7. Покрытая медью плата 5 * 3 см (опционально, если используете печатную плату общего назначения)
  8. Печатная плата общего назначения (опционально, если используете медную плату).
  9. Макетная плата и джамперы.
  1. Fritzing

Приспособления:

  1. Паяльник
  2. Провода
  3. Паяльная паста (опционально, но рекомендую её использовать)
  4. Соединительный провод

Шаг 2: Тестирование макетной платы


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

Посмотрите на схему и раскладку печатной платы. Затем соберите всё по схеме на макетной плате. Дважды проверьте, что всё собрано правильно. Я приложил распиновку для резистора BC548 — будьте аккуратны при его подсоединении.

Теперь нам нужно проверить работу собранного устройства:

  1. Скачайте файл relay.ino, затем откройте его в вашем Ардуино.
  2. Соедините пины VCC и GND на модуле реле с соответствующими пинами 5V и GND на Ардуино.
  3. Соедините входной пин реле (он выходит из основания транзистора) с цифровым пином 12 на Ардуино.
  4. Загрузите код.
  5. Проверьте, что реле включается и выключается с интервалом в одну секунду (светодиод на реле будет также загораться и потухать с интервалом в одну секунду)

Если схема не работает, немедленно выключите Ардуино. Затем проверьте всю схему на правильность соединения, если что-то соединено неправильно — исправьте и затем заново включите Ардуино.

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

Файлы

Шаг 3: Самодельный модуль реле на печатной плате общего назначения (опционально)


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

Здесь я объясню, как сделать модуль на плате общего назначения.

  1. Изготовьте печатную плату общего назначения и хорошо очистите её.
  2. После чистки натрите её флюсом (опционально).
  3. Установите компоненты на плате и припаяйте их.
  4. После того, как всё припаяно к плате, соедините всё проводами.

После того, как всё собрано, проверьте работоспособность реле методом, который я описал выше.

Шаг 4: Самодельный модуль реле на специальной печатной плате (опционально)

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

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

Затем проделайте шаги, описываемые в руководстве по травлению печатных плат. После этого просверлите отверстия в плате дрелью на 0.8 — 1 мм, установите все компоненты и спаяйте их. Готово!

Файлы

Шаг 5: Готово!


На изготовление одного модуля реле у меня ушло около 20 минут. Это быстро, недорого, а также экономит ваше время (при заказе онлайн доставка займёт минимум день, а поход в магазин занимает также больше 20 минут).

Подключение модуля реле к Ардуино потребуется, если вы решите управлять с помощью микроконтроллера мощной нагрузкой или переменным током. Модуль реле SRD-05VDC-SL-C позволяет управлять электрическими цепями с переменным током до 250 Вольт и нагрузкой до 10 Ампер. Рассмотрим схему подключения реле, как управлять модулем для включения светодиодной ленты и лампы накаливания.

Реле SRD-05VDC-SL-C описание и схема

Реле – это электромеханическое устройство, которое служит для замыкания и размыкания электрической цепи с помощью электромагнита. Принцип работы силового реле srd-05vdc очень прост. При подаче управляющего напряжения на электромагнитную катушку, в ней возникает электромагнитное поле, которое притягивает металлическую лапку и контакты мощной нагрузки замыкаются.

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

Согласно характеристикам реле SRD-05VDC-SL-C, для переключения контактов достаточно около 5 Вольт 20 мА, выводы на Ардуино способны выдавать до 40 мА. Таким образом с помощью Ардуино мы можем управлять не только лампой накаливания, но и любым бытовым прибором — обогревателем, холодильником и т.д. Полевые транзисторы на Ардуино могут управлять токами только до 100 Вольт.

Схема подключения реле к Arduino UNO

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • блок питания 12 Вольт;
  • светодиодная лента;
  • провода «папа-папа» и «папа-мама».

Соберите схему, как показано на картинке выше. Подобная схема использовалась в проекте Светильник с управлением от пульта , где светодиодная лента включалась при помощи реле. Модуль имеет три контакта для управления от микроконтроллера Ардуино и два контакта для подключения мощной электрической цепи. Схема подключения реле к Ардуино УНО, Нано или Ардуино Мега ничем не отличается:

GND — GND
VCC — 5V
In — любой цифровой порт

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

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

void setup () { pinMode (3, OUTPUT ); // объявляем пин 3 как выход } void loop () { digitalWrite (3, HIGH ); // замыкаем реле delay (3000); // ждем 3 секунды digitalWrite (3, LOW ); // размыкаем реле delay (1000); // ждем 1 секунду }

После загрузки скетча включите блок питания в цепь. Реле при этом должно устанавливаться в разрыве одного из проводов, идущего к LED ленте. Для безопасности лучше устанавливать реле в провод заземления. К минусам реле следует отнести щелчки при замыкании/размыкании контакта, поэтому для включения LED ленты и других приборов до 40 Вольт удобнее использовать транзисторы.

Видео. Управление LED лентой через реле

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

Также часто читают:

Я давно хотел автоматизировать процесс просушки ванной комнаты после купания. У меня было много обзоров, посвящённых теме влажности. Решил внедрить в жизнь (так сказать) один из методов борьбы с ней. Кстати, зимой в ванной и бельё сушим. Достаточно вытяжной вентилятор включить. Но следить за вентилятором не всегда сподручно. Вот и решил поставить автоматику на это дело. Первый опыт внедрения оказался неудачный. Обзор был. Но я не сдался…

Когда въехал в новую квартиру, почти сразу поставил в вытяжку вентилятор с обратным клапаном. Вентилятор необходим, чтобы просушивать ванную комнату после купания. Обратный клапан нужен для предотвращения попадания в квартиру посторонних запахов от соседей (когда вентилятор молчит). И такое бывает. Вентканалы у всех индивидуальные, но цемент при кладке видно экономили. Сквозь щели, вероятно, запах и проходит.
Вентиляторы у меня есть различных вариантов. Есть простые, есть с таймером (регулировкой временнОго интервала), как на фото.


Именно таким и пользовался до сего дня.
В данном конкретном случае (у кого нет вентилятора с таймером) всё можно сделать на программном уровне.
Так как живу в многоквартирном «муравейнике», то единственное место для сушки белья – это балкон. В ванной может и затухнуть. Для сушки необходима либо низкая влажность, либо циркуляция воздуха. Выполнение обоих условий – лучший вариант. Вентилятор должен был решить эту проблему. Поначалу именно так и делал. Главное не забыть его выключить. Во время работы вентилятора необходимо приоткрывать малость окошко. Про школьную задачку с бассейном и двумя трубами напоминать не надо? Чтобы воздух выходил в вытяжку, необходимо, чтобы он откуда-то входил в квартиру. У кого окна деревянные, а не пластиковые, проблем не будет. Щелей хватит. А вот с пластиковыми квартира превращается в террариум.
Тут я и задумался об автоматизации процесса. Именно для этого я и заказал датчики.
Печальным опытом реализации своей идеи я уже делился. Вот тот модуль. Он работать не может в ПРИНЦИПЕ. Но без дела не останется. И ему будет применение.


(Напряжение питания: 5В. Максимальная нагрузка: 10А 250В переменного и 10А 30В постоянного тока). Использую как блок реле. Для обычного вентилятора этого достаточно.
Схему модуля я тоже рисовал. Проблем с подключением не будет.


Красный светодиод индицирует наличие питающего напряжения. Зелёный – сработку реле. Бесполезный датчик (датчик влажности, его уже нет) я заменил на сопротивление 10кОм. А также добавил ещё сопротивление. Оно пойдёт к «умному» блоку. Оба выделил красным. Всё это должно исключить возможные недоразумения. Ведь блок реле питается от напряжения 5В, а «умный» блок от 3,3В. Управляется блок реле низким уровнем. Высокий уровень отключает реле (вентилятор). В прошивке это учтено.
В основе схемы лежит компаратор на LM393. Подстроечный резистор изначально был предназначен для настройки порога срабатывания реле влажности. Возможно, его придётся немного крутануть.
Можно использовать простые блоки реле. Они продаются. Я же буду использовать то, что осталось после прошлой неудачной попытки.
Пора смотреть, в каком виде прибыли датчики AM2302 (DHT22). Заказал сразу три. Думаю, что только ванной это не ограничится. В голове много всяких идей. Где б только найти время и желание для их реализации.


Датчики были запаяны в антистатические пакеты. Всё по уму. Пайка аккуратная. Претензий по внешнему виду не имею. Даже плата промыта.


Вот, что написано на странице магазина:

AM2302 Humicap digital temperature and humidity module is a digital output signal containing a calibrated temperature and humidity combined sensor. It uses a dedicated digital modules capture technology and the temperature and humidity sensor technology to ensure that products with high reliability and excellent long-term stability. Sensor includes a capacitive humidity sensing element and a high-precision temperature measurement devices, and with a high-performance 8-bit microcontroller connected. Therefore, the product has excellent quality, fast response, anti-interference ability, high cost and other advantages. Ultra-small size, low power consumption, signal transmission distance up to 20 meters. Making it the best choice for all kinds of applications and even the most demanding applications.
Specification:
Dimension: 40 x 23mm
Weight: 4g
Voltage: 5V
Port: digital two-way single bus
Temperature range: -40-80 °C ± 0.5 °C
Humidity: 20-90% RH ± 2% RH
Platform: Arduino, SCM
Package included:
3 x Sensor Module
На плате деталей минимум. Датчики неразборные, ломать не стал.
Пора переходить к делу. Часть того, что применю, я уже показал. Ещё мне потребуется блок питания на 5В. Его я сделаю из старой (уже ненужной) зарядки к телефону.

Эта зарядка без USB разъёма. Ну очень старенькая (рекомендую использовать более новые, у них 5В на выходе). Поэтому на выходе 7В. Пришлось припаять МС стабилизатора КРЕН5. В этом ничего сложного нет. Кто дружит с паяльником, тот знает. А кто не дружит, зря читает топик.


Сильно не пугайтесь, сделал времянку. После отладки механизма всё будет выглядеть достойно. Возможно, и зарядку поменяю. Всё зависит от того, с каким результатом приду к финишу. Устанавливать по месту (на постоянку) буду после «комплексного опробования». Возможно, придётся применять зимний/летний вариант программного обеспечения. Температурные и влажностные характеристики воздуха зимой/летом отличаются.
Ещё мне потребуется WIFI модуль из предыдущего обзора.


Пригодится кабель-конвертер (USB To RS232 TTL UART) для программирования WIFI модуля.


Блок схема моей затеи выглядит просто.


Но нюансы конечно же имеются.
Осталось составить программку управления вентилятором.
Условий несколько:
1. Вентилятор включается при достижении влажности более 68%.
2. Время работы (таймер) 5 минут.
3. Передача данных о температуре и влажности по WIFI (на всякий случай).
4. Индикация режима по WIFI.
Если остановиться на условии №1, то достаточно будет самой простой Arduino. Но Arduino у меня только одна плата, а WIFI модулей целых три:)
Лично для меня самое сложное место – составление программы, немного (мягко сказано) не моя тема. Но жизнь течёт и увлекает в своё течение всё большие массы людей. Буду постигать необъятные просторы Arduino на примере датчика влажности DHT22 и WIFI модуля. Но если у меня всё получилось, значит, получится и у вас.
Сначала некоторая информация для чайников, как я.
В программе Arduino IDE не хватает в настройках тех плат, которые я буду использовать. Например, ESP8266 надо добавить.

Добавление компонентов на примере ESP8266.

Первым делом я скачал и установил на компьютер Arduino IDE. Затем запускаю программу.
Файл→Настройки→Вставляю ссылку в доп. ссылки→нажимаю ОК. Ссылка:
arduino.esp8266.com/stable/package_esp8266com_index.json


При этом необходимо подключение к интернету. Обязательно!
Затем захожу в менеджер плат.
Инструменты→Плата:…→Менеджер плат.


Нахожу свой модуль. Выбираю последнюю версию. Нажимаю установить.


В скаченной программе Arduino IDE не хватает и библиотек для датчиков. Например, библиотеку DHT22 тоже надо добавить.

Подключение библиотеки на примере датчика DHT22.

Сначала с интернета скачиваю архив типа DHT.zip. Найти не проблема.
Затем запускаю программу Arduino IDE.
Скетч→Подключить библиотеку→Добавить zip библиотеку.


Появляется вкладка типа этой.


Указываю место хранения…Open.
Библиотека подключена.


Осталось дело за малым:)
Схема подключения датчика влажности может отличаться. Мои пришли в виде модуля с тремя выводами и сопротивлениями, уже установленными на плате.

Ну и, наконец, заливка скетча.

Заливка скетча.

Открываю готовый скетч. В моём случае «WiFi-DHT22_AleksPoroshin68.ino.


Arduino IDE запускается автоматически.
Затем подключаю программатор, захожу в инструменты и подключаю Com-порт. Тот, к которому подключился высвечивается. Его и активирую. На моём нетбуке их три: это com6, com8 и com10.


Изучаю прошивку. Можно изменить имя и пароль доступа.

Нажимаю кнопку для загрузки.


Происходит компиляция скетча. Достаточно долго.


В это время необходимо нажать сброс на собранной схеме модуля.

При этом GPIO 00 на нуле.
Вот сам скетч:
#include #include #include #include #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); float dhtTemp = NAN; float dhtHumidity = NAN; int ledPin = 12; //GPIO 12 /* Set these to your desired credentials. */ const char *ssid = "AleksPoroshin"; const char *password = "12345678"; ESP8266WebServer server(80); /* Just a little test message. Go to https://192.168.4.1 in a web browser * connected to this access point to see it. */ void handleRoot() { String s = "\r\nESP201"; s += ""; s += ""; //s += "Status - Actions - Config"; s += "

Модуль ESP 201

"; s += " "; if (isnan(dhtTemp)) s += " Температура: Ошибка чтения"; else { s += " Температура: "; s += dhtTemp; s += " C"; } if (isnan(dhtHumidity)) s += " Влажность: Ошибка чтения"; else { s += " Влажность: "; s += dhtHumidity; s += " %"; } if(digitalRead(ledPin) == HIGH) s += " Вытяжка: Откл."; else s += " Вытяжка: Вкл."; s += " "; server.send(200, "text/html", s); } void setup() { delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Configuring access point..."); /* You can remove the password parameter if you want the AP to be open. */ WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handleRoot); server.begin(); Serial.println("HTTP server started"); dht.begin(); Serial.println("DHT22 init success"); pinMode(ledPin, OUTPUT); } void loop() { getDHT(); server.handleClient(); } void getDHT() { dhtTemp = dht.readTemperature(); dhtHumidity = dht.readHumidity()+5; if (dhtHumidity < 68) { digitalWrite(ledPin, HIGH); Serial.println("ledPin HIGH"); } else { digitalWrite(ledPin, LOW); Serial.println("ledPin LOW"); } }
Сильно не ругайте. Я только учусь.
После заливки скетча для подтверждения программирования GPIO подключаю к +3,3В. Затем отключаю. Прошивка залита.


Собираю схему на макетнице. Всё проверяю. Работает. Но не всё так хорошо, как хотелось. В нужном мне диапазоне китайские датчики занижают показания на 5-6%.


Немецкому логгеру у меня доверия больше. Да и цена у него в несколько десятков раз больше. А самое главное, он прошёл поверку.
Ввёл поправку в программу (добавил 5 единиц). Я согласен, что это неправильно. Но в диапазоне 40-70% показывает точно. Более правильно снять характеристику и исправить библиотеку. К этому я не готов:). Остальные датчики тоже врали. Хотя все показывали приблизительно одинаково.

Вот так выглядит интернет страничка, если подключится к моему WIFI модулю:


Пароли и явки указаны в скетче.
Переключение происходит на 68% влажности. Всё чётко.


Но есть один нюанс. И его не учитывать нельзя. На границе в 68% влажности вентилятор может циклить, то включаясь, то выключаясь. Для решения этой проблемы нужен таймер. У меня вентилятор с таймером. Т.е. проблемы нет. У кого обычный вентилятор, придётся решать эту проблему на программном уровне.
Дальнейшая моя задача всё это собрать согласно схеме, но уже не на макетнице и протестировать в течение месяца. Все изменения можно вносить в процессе эксплуатации. Что делать и куда вставлять, я всё написал.
Несколько слов по поводу монтажа датчика. Засовывать его в вентканал не советую. Причина проста. Даже в самой чистой и ухоженной квартире присутствует пыль, которая при включении вентилятора именно туда и устремляется (в ветканал). А ведь год назад я вентилятор вынимал и тщательно чистил.


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


Без них вам будет очень сложно что-то делать по этой теме.
На этом всё.
Как правильно распорядиться сведениями из моего обзора каждый решает сам. Кому что-то неясно, задавайте вопросы. Надеюсь, хоть кому-то помог. Возможно, кто-то захочет помочь мне. Я буду очень благодарен.
Удачи всем!
Проверка на работоспособность:


Продолжение следует…

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: