• Нравится 2
  • Лучшее 1
Перейти к публикации

Система управления гроубоксом на Arduino

Оцените эту тему


Shurinos

Рекомендованные сообщения

Предлагаю свой вариант реализации управлением бокса.

 

В этой статье я не буду рассказывать как всё работает с точки зрения кода и как подключать датчики, коснусь лишь специфики работы конкретного устройства в целом и опишу как работает управление. Будем считать, что читатель уже знаком со средой Arduino и, как минимум, знает чем отличается setup от loop :smile:

 

Это моя первая версия системы и на момент написания статьи стало понятно, что выбор комплектующих не оптимальный. В дальнейшем, вероятно, буду дорабатывать и оптимизировать систему, но это как пойдет. Хотелось бы заменить Ethernet Shield W5100 на отдельный модуль для карт памяти + wi-fi модуль.

 

Задачи поставил следующие:
1. Управление нагрузками через веб-интерфейс в домашней сети
2. Визуальный контроль параметров по датчикам
3. Суточный таймер
4. Сохранение настроек на случай отключения питания.

 

За основу взял плату Arduino Mega 2560, к ней Ethernet Shield W5100 R3, релейный модуль, датчики влажности и температуры DHT22, датчики температуры DS18B20 и емкостной датчик влажности грунта.

 

Arduino Mega 2560
Плата с достаточно большим количеством ресурсов – достаточно памяти и много портов, что позволяет без затруднений расширять возможности системы.

MEGA2560-Mega-2560-R3-REV3-ATmega2560-16AU-CH340G-USB.thumb.jpg.96eb8be8b82627a6c73beaed37305687.jpg

 

Ethernet Shield W5100 R3
Данный шилд удобен тем, что у него есть слот для microSD, на нее будет записываться файл с настройками.
В работе этого шилда есть один косяк, с ним пришлось помучиться. В схеме подключения разъема RJ-45 установлена резисторная сборка с индексом 511, это 4 резистора в одном по 510 ом каждый, а для нормальной работы, согласно схеме к чипу, должны быть резисторы по 51 ом, то есть сборка 510. Из-за этого могут возникнуть проблемы с устойчивостью подключения к сети, теряется сигнал. Почему китайцы так сделали – загадка. Мой шилд отказался работать с кабелем ~10м, просто не подключался к сети, пришлось искать подходящие и перепаивать эти резисторы.

Ethernet-W5100-R3-Mega-2560-R3-W5100.jpg_640x640.thumb.jpg.15764b55323ba7f741d82f0013919230.jpg

 

Релейный модуль
Для коммутации простых лампочек сгодится модуль на обычных электромагнитных реле. Индуктивные же нагрузки (вентиляторы), при отключении через обычное реле, производят импульс тока, благодаря которому у меня случайно отключались некоторые датчики и ардуино переставала видеть их до перезагрузки, либо до ручного отсоединения/подсоединения.

Поэтому лучше ставить твердотельные реле. Они лишены этого неприятного нюанса работы и полностью бесшумны.

WAVGAT-12-1-2-4-8-OMRON.jpg_640x640.thumb.jpg.ab4bb7b408340082002d7c0a646220db.jpgSSR-40-DA.jpg_640x640.thumb.jpg.4da57a7a1d000a5c7b041650bf8a984d.jpgTENSTAR-1-8-8.thumb.jpg.bef8e9618cec88846b66ad44323103bf.jpg

 

DHT22
Датчик влажности и температуры воздха

TENSTAR-DHT22-AM2302.jpg_640x640.thumb.jpg.9416a225c7bab39f3a02effcdfa8955c.jpg

 

DS18B20
Датчики для контроля температуры освещения, по 2 на светильник.

10-DS18B20-18B20-18S20-92.jpg_640x640.thumb.jpg.faaee3c24402891c11a75f434877d6a6.jpg

 

Емкостной датчик влажности грунта
Удобен тем, что не окисляется и не портится в отличии от электродного датчика.

-.jpg_640x640.thumb.jpg.2b80f600f746d0197a093706c220e1ec.jpg

 

Запитано все от отдельного источника 5в.

Покупал все на алиэкспресс.

 

Веб-интерфейс:

src.thumb.jpg.0fbe0d989c5fddf4107d37edb1cd1b55.jpg

 

Как работает система.

На SD карте находятся 2 файла:
config.txt – файл с сохранённой конфигурацией устройств (время вкл/откл для таймера и состояния реле).
index.htm – файл с html разметкой и JS обработчиками.

 

После включения Arduino инициализирует все подключенные устройства, читает сохраненные настройки из файла на SD карте.
Текущее время Arduino получает из сети интернет (необходим доступ к сети).

При обращении к панели управления через браузер, Arduino сначала отдает html страничку, а затем начинает «общаться» с этой страничкой, передавая ей данные о времени и датчиках, что в конечном итоге мы видим на экране. Запросы страничка повторяет каждые 4 секунды.


Сохранение настроек (таймер)
Для сохранения настроек необходимо включить устройства, которые должны работать днем (например свет и увлажнитель), задать время включения (солнце) и время отключения (полумесяц) и нажать кнопку сохранить. Указанное время для таймера и состояния всех реле записываются в файл на карте памяти. Через некоторое время таймер обновит свои показания на экране на те, которые были введены. Система работает стабильно, но несколько медленно, поэтому запаситесь терпением.

 

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

 

 

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

Буду рад любым конструктивным советам :read:
Скетч и файлы web_server.rar

 

Изменено пользователем Shurinoz
Ссылка на комментарий
Поделиться на других сайтах

@Shurinoz 

Привет, бро!

А сколько стоит каждый элемент?

Сори, кто о чём, а бухгалтер опять о деньгах :pooh_lol:

Изменено пользователем Teapot
Ссылка на комментарий
Поделиться на других сайтах

Красавчик братан

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, Kib сказал:

@Shurinoz Всё красиво и понятно и с файлами! :icon_friendship: :icon_thumbs:

будешь мутить тоже?)

Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, fedyaTMN сказал:

будешь мутить тоже?)

смотреть  буду... :biggrin: :offtopic:

Ссылка на комментарий
Поделиться на других сайтах

@Teapot @fedyaTMN @Kib  :smile455:

 

@Teapot На сегодняшний день цены примерно такие -  ардуинка 10$, ethernet шилд 6$, обычный релейный модуль для ардуино около 7$, твердотельные реле тоже около 7$, датчик влажности грунта 1,2$, модуль wi-fi 1.35$, датчики в районе 2-4$. Всё легко найти на али.

 

@fedyaTMN думаю да, безусловно, нужно обладать хотябы минимумом знаний, либо потребуется время и усидчивость чтобы во все вникнуть. С другой стороны здесь не обязательно понимать как что работает, главное вкурить алгоритм работы системы, а все остальное можно собрать из готовых примеров, коих огромное множество. Например, я понятия не имею, как работает синхронизация времени с интернетом в моем скетче. Есть готовый пример работы этой функции, которая даёт на выходе время и дату в определенном виде, с этим результатом мы и работаем. А как функция получила это время уже не важно.

 

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в теме...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...