Теплица на Ардуино-Мега. Часть 4.
Некоторые мои подписчики интересуются, как продвигаются дела с теплицей, о которой я рассказывал ранее:
Теплица на Ардуино-Мега. Часть 2.
Теплица на Ардуино-Мега. Часть 3.
Будет много текста, но он пригодится тем, кто интересуется, все-таки почти 200 подписчиков. На сегодняшний день можно сказать, что электроника готова к дачному сезону, а остальное было готово еще в прошлом году. Из схемы изменилось лишь одно - добавился аналоговый датчик температуры LM235Z. Просили выложить измененную программу - вот, выкладываю в конце поста.
Немного о том, как все получилось так как получилось. Изначально настройка параметров теплицы с кнопочек с отображение на дисплее не планировалась, поэтому я предусмотрел кнопки и переключатели в ящике. Все это можно было тоже реализовать программно, но раз уже сделал, то они сохранили свою функциональность:
- переключатель обогрева почвы (обогрев отключен / включен автоматический обогрев),
- переключатель обогрева водуха (обогрев отключен / включен автоматический обогрев),
- трехпозиционный переключатель открывания окон (автоматика отключена, окна открыты / автоматическое управление окнами / автоматика отключена, окна закрыты),
- кнопка набора воды в бак,
- кнопка полива,
- переключатель режимов полива (один раз в день / два раза в день)
- кнопка включения подсветки дисплея, установленная сверху ящика. Включает подсветку на 30с.
Сразу понятно, что все это для случаев, если вдруг что-то пойдет не так с автоматикой.
Теперь о настройках, которые можно установить с кнопок на панели. Основное меню состоит из 3-х пунктов:
1. Меню настроек.
2. Установка даты-времени.
3. Тестовая программа для концевиков и моторов открывания окон.
С установкой даты и времени все понятно. Тестовая программа - чтобы подключить окна, погонять их с помощью кнопочек, проверить как закрываются, правильно ли подключил, настроить сработку концевиков и т.д.
В меню настроек можно установить следующие параметры:
1. Время полива.
2. Время второго полива (если включен режим полива 2 раза в день)
3. Время набора воды.
4. Температура открытия окон.
5. Температура закрытия окон.
6. Температура включения обогрева почвы.
7. Температура отключения обогрева почвы.
8. Температура включения обогрева воздуха.
9. Температура отключения обогрева воздуха.
Жена сказала, что поскольку нет никакого резервирования и защиты, если концевики не сработают, нужно еще установить предельное для работы насоса и моторов окон. Это было правильное и справедливое замечание, поэтому пришлось ввести и такие настройки:
10. Предельное время работы мотора открывания окна 1.
11. Предельное время работы мотора открывания окна 2.
12. Предельное время работы мотора закрывания окна 1.
13. Предельное время работы мотора закрывания окна 2.
14. Предельное время работы насоса.
15. Время работы насоса для запуска полива.
Об изменениях. Не могу понять, что творится с датчиком DHT11. Работает, работает, а вдруг раз, и повиснет. Смотрел на форумах - многие жалуются. Коллега сделал себе метеостанцию - та же песня. Решил поступить таким образом. Добавил в схему аналоговый датчик LM235Z. Программно написал, чтобы при зависании DHT11 система переключалась на данные с LM235Z. Приедет еще один датчик - буду тестировать его на другой плате до посинения, может мне попался не совсем исправный экземпляр. Даже если добьюсь нормальной работы цифрового - аналоговый для резерва оставлю.
Еще один датчик DS18B20, такой же, как остался закопанным в почву, уже приехал. Поэтому я смог подключить его к панели и панель на столе была протестирована полностью. Работу концевиков я имитировал микропереключателями, датчики прислонял к бутылке со льдом, а в кабинете 27 градусов, жарко, так что включение всех реле протестировал.
Теперь о грустном. Очень хотелось видеть данные с теплицы онлайн. Был приобретен модем SIM800L и Распберри Пи. На Малинке с помощью коллег по работе подняли веб-сервер, запустили модем. Перепробовали кучу библиотек, но они то конфликтовали с другими библиотеками, то зависали. В итоге все-таки добились, чтобы данные передавались по GPRS Get-запросом в базу записывались и на сайте отображались. По IP сайт был доступен в глобале. Однако связь была неустойчива и модем терял GPRS. Приходилось перезагружать модем и как-то раз я, выдергивая провода, прилично долбанул его статикой. Волшебный синий дым и него не вышел, но искра пролетела знатная. Тут уж он совсем что попало погнал. Короче, в этом году мне не удастся увидеть теплицу онлайн. Есть и еще один аспект. Передавать данные на сервер лучше UDP пакетами. Это точно спасет от зависаний, но я не знаю, как данные из этих пакетов затолкать в базу, потому что, когда я учился, ЭВМ были еще с комнату размером и программирование я освоил только на начальном уровне, да и было это в 89-м году. Если кто поможет, буду признателен и в след. году теплица появится онлайн. Теперь, собственно программа для теплицы. Прошу не смеяться, я, можно сказать, пенсионер-самоучка, но код рабочий. Настроечные вещи, типа вывода в монитор порта не убирал специально - может, пригодятся для отладки. Если будут какие-то изменения в процессе эксплуатации летом - могу потом исправленное выложить. Приму конструктивную критику. Небольшое видео - как работает настроечное меню.