Shurinos Опубликовано: 27 декабря 2018 Поделиться Опубликовано: 27 декабря 2018 (изменено) Предлагаю свой вариант реализации управлением бокса. В этой статье я не буду рассказывать как всё работает с точки зрения кода и как подключать датчики, коснусь лишь специфики работы конкретного устройства в целом и опишу как работает управление. Будем считать, что читатель уже знаком со средой Arduino и, как минимум, знает чем отличается setup от loop Это моя первая версия системы и на момент написания статьи стало понятно, что выбор комплектующих не оптимальный. В дальнейшем, вероятно, буду дорабатывать и оптимизировать систему, но это как пойдет. Хотелось бы заменить Ethernet Shield W5100 на отдельный модуль для карт памяти + wi-fi модуль. Задачи поставил следующие: 1. Управление нагрузками через веб-интерфейс в домашней сети 2. Визуальный контроль параметров по датчикам 3. Суточный таймер 4. Сохранение настроек на случай отключения питания. За основу взял плату Arduino Mega 2560, к ней Ethernet Shield W5100 R3, релейный модуль, датчики влажности и температуры DHT22, датчики температуры DS18B20 и емкостной датчик влажности грунта. Arduino Mega 2560 Плата с достаточно большим количеством ресурсов – достаточно памяти и много портов, что позволяет без затруднений расширять возможности системы. Ethernet Shield W5100 R3 Данный шилд удобен тем, что у него есть слот для microSD, на нее будет записываться файл с настройками. В работе этого шилда есть один косяк, с ним пришлось помучиться. В схеме подключения разъема RJ-45 установлена резисторная сборка с индексом 511, это 4 резистора в одном по 510 ом каждый, а для нормальной работы, согласно схеме к чипу, должны быть резисторы по 51 ом, то есть сборка 510. Из-за этого могут возникнуть проблемы с устойчивостью подключения к сети, теряется сигнал. Почему китайцы так сделали – загадка. Мой шилд отказался работать с кабелем ~10м, просто не подключался к сети, пришлось искать подходящие и перепаивать эти резисторы. Релейный модуль Для коммутации простых лампочек сгодится модуль на обычных электромагнитных реле. Индуктивные же нагрузки (вентиляторы), при отключении через обычное реле, производят импульс тока, благодаря которому у меня случайно отключались некоторые датчики и ардуино переставала видеть их до перезагрузки, либо до ручного отсоединения/подсоединения. Поэтому лучше ставить твердотельные реле. Они лишены этого неприятного нюанса работы и полностью бесшумны. DHT22 Датчик влажности и температуры воздха DS18B20 Датчики для контроля температуры освещения, по 2 на светильник. Емкостной датчик влажности грунта Удобен тем, что не окисляется и не портится в отличии от электродного датчика. Запитано все от отдельного источника 5в. Покупал все на алиэкспресс. Веб-интерфейс: Как работает система. На SD карте находятся 2 файла: config.txt – файл с сохранённой конфигурацией устройств (время вкл/откл для таймера и состояния реле). index.htm – файл с html разметкой и JS обработчиками. После включения Arduino инициализирует все подключенные устройства, читает сохраненные настройки из файла на SD карте. Текущее время Arduino получает из сети интернет (необходим доступ к сети). При обращении к панели управления через браузер, Arduino сначала отдает html страничку, а затем начинает «общаться» с этой страничкой, передавая ей данные о времени и датчиках, что в конечном итоге мы видим на экране. Запросы страничка повторяет каждые 4 секунды. Сохранение настроек (таймер) Для сохранения настроек необходимо включить устройства, которые должны работать днем (например свет и увлажнитель), задать время включения (солнце) и время отключения (полумесяц) и нажать кнопку сохранить. Указанное время для таймера и состояния всех реле записываются в файл на карте памяти. Через некоторое время таймер обновит свои показания на экране на те, которые были введены. Система работает стабильно, но несколько медленно, поэтому запаситесь терпением. Переключение режимов работы происходит в указанное в таймере время. При включении (день) считываются данные файла настроек и включаются реле тех устройств, которые были включены при сохранении параметров. При отключении (ночь) все реле отключаются. Вся эта мишура собиралась почти из говна и палок, полностью творческим методом, по принципу - работает? - не мешай. Буду рад любым конструктивным советам Скетч и файлы web_server.rar Изменено 5 января 2019 пользователем Shurinoz 4 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Teapot Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 (изменено) @Shurinoz Привет, бро! А сколько стоит каждый элемент? Сори, кто о чём, а бухгалтер опять о деньгах Изменено 28 декабря 2018 пользователем Teapot 1 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
fedyaTMN Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 Красавчик братан 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
fedyaTMN Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 еще ответь, каким то уровнем знания в программировании нужно обладать? ну там сама оболочка на базе С++ и всякие комплекты чипов, это понятно А потом интерфейс там писать, и пр выводы..... Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Kib Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 @Shurinoz Всё красиво и понятно и с файлами! 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
fedyaTMN Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 1 минуту назад, Kib сказал: @Shurinoz Всё красиво и понятно и с файлами! будешь мутить тоже?) Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Kib Опубликовано: 28 декабря 2018 Поделиться Опубликовано: 28 декабря 2018 1 минуту назад, fedyaTMN сказал: будешь мутить тоже?) смотреть буду... Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Shurinos Опубликовано: 28 декабря 2018 Автор Поделиться Опубликовано: 28 декабря 2018 @Teapot @fedyaTMN @Kib @Teapot На сегодняшний день цены примерно такие - ардуинка 10$, ethernet шилд 6$, обычный релейный модуль для ардуино около 7$, твердотельные реле тоже около 7$, датчик влажности грунта 1,2$, модуль wi-fi 1.35$, датчики в районе 2-4$. Всё легко найти на али. @fedyaTMN думаю да, безусловно, нужно обладать хотябы минимумом знаний, либо потребуется время и усидчивость чтобы во все вникнуть. С другой стороны здесь не обязательно понимать как что работает, главное вкурить алгоритм работы системы, а все остальное можно собрать из готовых примеров, коих огромное множество. Например, я понятия не имею, как работает синхронизация времени с интернетом в моем скетче. Есть готовый пример работы этой функции, которая даёт на выходе время и дату в определенном виде, с этим результатом мы и работаем. А как функция получила это время уже не важно. 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.