Arduino

Автомат управления подсветкой растений (рассады)

Получил я на днях заказ от супруги – сделать автоматическое управление подсветкой для растений.
Световой день у нас зимой короткий и темнеет рано. У меня уже были сделаны фитосветильники, но захотелось автоматизировать процесс. Дело в том что обычно с работы приходим после 19-00, а в это время зимой уже темно. На момент написания статьи подсветка у меня включалась примерно в 17 часов.

Конечно есть готовые решения, типа таймеров и умных розеток, но разве «Самоделкин» может пойти по этому пути? Нет! Будем делать сами. Я выбрал следующий вариант решения:
Мне нравится делать подобные поделки на Ардуино, но последнее время ценник на них кусается. Поэтому решил поэкспериментировать с модулем ESP 12. (Это мой первый опыт работы с этим модулем.)

Для реализации идеи мне потребовалось:
Модуль ESP12
Датчик освещенности GY-30 (bh1750)
Плата переходная
DCDC преобразователь hw-613
Модуль на 2 реле 5в.
Блок питания 5в. (от старого сотового телефона)
Розетка (2 шт.)
Коробка монтажная 1 шт
Выключатель на шнур 2 шт.

Работает автомат следующим образом:
После подачи питания ESP12 считывает из интернета текущее время, и далее самостоятельно считает часы/ минуты. Точность хода таких часов невысока. Отклонения могут доходить до минуты в сутки. Поэтому, один раз в сутки ESP12 корректирует текущее время.

Один раз в три секунды считываются показания датчика освещенности и вычисляется среднее арифметическое за три последних измерения.
В скетче прописывается время включения и время выключения, а также порог освещенности, ниже которого требуется включение подсветки.
Есть два режима работы – ручной и автоматический. Переключение между режимами происходит при длительном удержании кнопки. Если выбран режим «автомат», то на выключателе горит красный светодиод.
В ручном режиме включение /отключение лампы подсветки происходит по нажатию кнопки.
В автоматическом режиме — В промежутке между «временем включения» и «временем выключения» лампа подсветки включится если порог освещения ниже заданного. При наступлении «Времени отключения» или повышении освещенности лампа подсветки отключится.
В автоматическом режиме сохраняется возможность включить/выключить лампу с кнопки. (в этом случае автоматический режим отключается до конца текущих суток)

Автомат я сделал двухканальным. Отдельный канал для мини садика, и отдельный канал для стойки с фиалками. Если второй канал вам не требуется, то модуль реле берите одноканальный.

Все задуманное удалось реализовать. Плюсом, есть возможность «по воздуху» менять заданные в скетче параметры (время включения, время выключения, порог освещенности и др.)

По сравнению с Ардуино, ESP 12 (и подобные) имеет несколько недостатков:
1 — Питание модуля 3,3в.!!
2 — Для «запуска» модуля ESP 12 необходимо подтянуть (через резисторы 10 ком) контакты EN к питанию, а контакт GIPO15 к земле. (Это необходимый минимум без которого модуль не запустится!)
3 – для перевода в режим программирования необходимо, чтобы во время запуска контакт GIPO0 был замкнут на землю
4 — Относительно мало контактов входов/выходов всего 7, только 1 АЦП с максимальным входным напряжением 1,1в. (для большинства поделок этого хватает)
5 — Шаг контактов 2мм, что не очень удобно при макетировании.
(От большинства этих недостатков свободны отладочные модули, на базе того же ESP8266, такие как NodeMCU или D1 mimi. Но стоят они подороже.)

Для удобства работы с модулем я купил переходную плату.

На ней уже есть необходимый минимум резисторов. Кроме того, на обратной стороне платы есть место для установки микросхемы линейного стабилизатора. (SOT 223). Но мне не удалось найти недорогой, подходящий у себя в городе. Дело в том, что по сравнению с распространёнными, подобными микросхемами серии LM1117 здесь контакты In и Out расположены наоборот.

Важно! Если будете ставить стабилизатор, обязательно удалите резистор R2. Если этого не сделать, то на модуль придет повышенное напряжение.
В результате я запитал ESP от DC/DC преобразователя hw-613. Предварительно настроив его выходное напряжение на 3.3в

Модуль датчика освещенности, я тоже запитал от 3х вольт. Для этого впаял перемычку между контактом in и выходом стабилизатора.

Для подключения модуля к компьютер нужен USB-TTL преобразователь.
В принципе достаточно четырех проводов, RX, TX, GND, VCC. (ОБЯЗАТЕЛЬНО 3,3в.)
Но для удобства я добавил еще пару проводов и кнопок.
В общем моя схема подключения выглядит так.

Возможно, вам потребуется вручную добавить поддержку плат типа ESP8266 в ArDuino ID. В сети полно инструкций как это сделать, поэтому я не буду подробно описывать этот процесс.

Запускаем ArDuino ID выбираем нужный порт, открываем окно терминала и выставляем скорость 11500. Подключаем нашу конструкцию к USB. На ESP должен дважды моргнуть светодиод. В окне терминала появляется пара строк служебной информации, и появится новая WI-FI сеть (название сети завит от прошивки модуля).

Если видно новую сеть, и есть информация в терминале то можно приступать к прошивке. (Если терминал пуст, то поменяйте местами RX, TX.)
Для перевода модуля в режим программирования необходимо зажать кнопку BOOT, не отпуская ее кратковременно нажать RESET и через пару секунд можно отпустить кнопку BOOT. Модуль перейдет в режим программирования. Об этом свидетельствует соответствующее сообщение в окне терминала и пропадание WiFi сети от модуля.

Открываем скетч

arduino_ota_test.zip

[1.28 Kb] (скачиваний: 3)

. Вводим имя и пароль для своей домашней WiFi сети. И жмем стрелочку загрузить.

Если все сделано правильно, увидим сообщение «Загрузка завершена». Светодиод на модуле начнет мигать. А во вкладке «Инструменты» при выборе порта появится дополнительная строка типа ESP8266 – 19a4b5 at192.182.1.38 Последние цифры это IP адрес модуля. Запишите его, а лучше приклейте бумажку с этим адресом прямо на модуль.

Теперь модуль можно отключить от компьютера, и заливать в него новый скетч по воздуху, выбрав для того виртуальный порт ESP8266 – 19a4b5 at192.182.1.38 (Никакие кнопки нажимать уже не нужно).
Для проверки можно попробовать изменить частоту мигания светодиода.

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

autofitolight_00.zip

[3.1 Kb] (скачиваний: 3)

и начинать собирать аппаратную часть:
Вот схема.

Сам модуль я приклеил двухсторонним скотчем прямо на реле.
Добавил DC/DC преобразователь, соединил все согласно схемы

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

(Пусть вас не смущает третья розетка, она не задействована в схеме, туда включается фонтан)
Датчик освещения я уложил в напечатанною коробочку,

vykljuchatel.zip

[105.1 Kb] (скачиваний: 4)

и прислонил к окну. (Калибровку я делал именно при таком расположении датчика)

Блок питания от старого телефона разобрал, плату разместил в монтажной коробке, вместе с моим «бутербродом».

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

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

vykljuchatel.zip

[105.1 Kb] (скачиваний: 4)

Выключатели а повесил на провода, и вывел в удобное место.

В розетки включаем наши фитолампы.

Наш автомат готов. Как я уже писал в начале статьи можно не разбирая устройства, по «воздуху» внести в скетч необходимые изменения. Это очень удобно. Правда у этого способа несколько отрицательных моментов.
1. Обновленная версия скетча кроме основного тела программы, должна содержать в себе всю ту часть, которая отвечает за ОТА обновления. (включая подключение необходимых библиотек)
2. При наличии нескольких активных модулей есть вероятность загрузить новый скетч не в тот модуль. (Поэтому IPадрес моего, конкретного модуля я записал в шапку скетча, рекомендую изменить его на ваш, актуальный)
3. Необходимо резервировать часть оперативной памяти модуля под размер обновленной прошивки. Т.е если модуль имеет на борту 4мб памяти, размер скетча не может превышать 2мб. т.к в момент загрузки новой прошивке в памяти модуля находятся одновременно и старый и новый скетчи.

В общем, работать с ESP12 несмотря на описанные ранее недостатки, мне понравилось. При цене около 80 р./шт. — весьма достойная замена Ардуинке, планирую использовать их в дальнейших своих поделках. Уже заказал десяток…. Правда паять их в дальнейшем планирую не на китайский переходник, а на самодельные платы. Дело в том, что более правильная схема обвязки модуля ESP-12 (и подобных) выглядит так:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»