[sape_tizer]
Чт. Июн 1st, 2023

Что и как строить на земельном участке или обо всем понемногу

Все о инструментах, строительстве, работах, АРДУИНО, электрика, электроника и многое другое

Управление курятником через интернет. Часть 1. Введение

Управление курятником через WiFi

Доброго времени суток.

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

Устройство будем собирать на модуле ESP8266 который вы можете купить за 200 рублей на алиэкспрессе. Почему выбираем именно такой модуль? В этой плате уже есть модуль WiFi и ненадо мудрить с подключением дополнительных модулей к ардуино. Естественно вы должны так же учитывать что в зоне размещения курятника есть сигнал WiFi, иначе устройство просто не подсоединится к сети Интернет и не будет корректно работать и управляться. Как определить наличие сети в зоне курятника? Берете телефон, подходите к курятнику и проверяете уровень сигнала Вашей сети WiFi. Если сигнал стабилен и довольно высокий- можно приступать к изготовлению. Если сигнал слабый (это мы можем узнать чуть позже после исследований), что указывает на малое количество «палочек» в телефоне- тут уже необходимо будет задуматься об установке направленной антенны на ESP8266, установке усилителя WiFi сигнала (цена около 1000 рублей) или ставить LAN- модуль (стоит около 100 рублей). Правда в случае с LAN уже можно использовать просто ардуино (любое, с достаточным количеством памяти), но в данном случае вы резко теряете в грозозащите. Т.е. при любой грозе высока вероятность выхода ВСЕЙ электроники вследствие повреждения атмосферным электричеством. С LAN- модулем я еще не работал т.к. ESP8266 позволяет одновременно подцепиться и к курятнику и к роутеру. LAN- модуль уже надо будет как то подключать к роутеру. Это не очень большая проблема но… все таки проблема.  Вобщем вариантов много и к каждому нужно подходить индивидуально.

Будем считать что с платой управления разобрались- ESP8266. Переходим к датчикам и модулям. Вообще в курятнике необходимо поддерживать не только температуру но и влажность. Хотя у меня стоит принудительно включенный кулер от БП компьютера. На него вместо 12В подается 5В и то через резистор 10 Ом. Обороты медленные но их хватает для достаточно эффективного обмена воздуха и поддержания влажности. Таким образом следующее что идет по списку- датчик температуры. Можно использовать широко известный Dallas 18b20. Он у меня и стоял в первоначальной версии. Спустя какое то время начал дурить. Т.е. показывать температуру -127 градусов. Что я с ним только не делал- менял, тестировал на других устройствах… Модуль рабочий но в данном месте отказывался работать.  Мне подсказывали что очень длинные провода. Нет, длина проводов всего 0,5 метра но датчик упорно отказывался стабильно работать. После месяца мучений я все таки заменил его на BME280- датчик температуры, влажности и давления. Правда пришлось перелопачивать немного скетч но это того стоило! Наконец все стало стабильно работать! Кроме того, после этих мучений с датчиком, я все таки перешел к технологии прошивки устройства «по воздуху». Данная технология называется ОТА (англ. Over The Air, что значит — «по воздуху») и позволяет прошивать устройства в вашей сети не подключаясь к плате напрямую кабелем! Когда на улице минусовая температура а вы сидите дома и можете отследить любое состояние контроллера не выходя из за компьютера… Поверьте. Это дорогого стоит! Поэтому я предлагаю выбрать вам датчик BME280 (не путать с  BMP280! Это на вид такой же датчик и стоит дешевле НО! В нем нем датчика влажности. Он измеряет только температуру и давление), немного доработав мой скетч вы так же сможете управлять и вентиляцией!

Итак. Нам необходимо иметь уже 2 устройства- контроллер ESP8266 и модуль BME280. Считаем что мы можем получить данные из курятника, их обработать, передать. Осталось только выбрать исполнительные механизмы. Выше я уже написал про вентилятор- это будет первый механизм. Далее нам нужно управляемое по времени освещение. Т.е. нам нужен плафон с лампой. Лучше выбрать закрытый плафон со светодиодной лампой. У такой лампы меньше расход электроэнергии при одинаковой световой отдаче. Закрыть лампу необходимо. Т.к. все таки куры- клюют все что им вздумается. Осталось дело за малым. Нам нужен обогреватель, который будет работать в холодное время и поддерживать температурный режим внутри курятника. В моем случае я использовал ИК лампу на 250 Ватт но включил её через диод. Этим я убил сразу 3 зайцев. Ограничил потребление лампы до 125 Ватт, снизил температуру нагрева (объем моего курятника небольшой и жарить кур мне уже не надо), продлил срок службы лампы таким ограничением! ИК лампу тоже нужно защитить от кур и, кроме того, необходимо её тщательно теплоизолировать от деревянных и прочих поверхностей. Т.к. возможно возгорание от прямого и косвенного нагрева! Это достигается укладкой листового асбеста. А чтобы его не расклевывали куры сверху прикрутите лист оцинкованного железа. Посмотрите в интернете данный материал и не пренебрегайте мерами пожарной безопасности.

Кроме всего прочего нам будет необходим блок реле для коммутации освещения и нагрева. Можно взять 2-х или 3-х релейный блок. Луше все таки 3-х, т.к. вентилятор проще вывести через реле нежели паять транзисторные ключи и, в случае их пробоя (всякое бывает), данная цепь может выжечь выход контроллера.

И последний, заключительный блок- Блок Питания на 5В от сотового телефона. Для работы достаточно тока в 500мА, но лучше все же взять на 1А. Три реле, контроллер… это уже практически 500мА.

Таким образом нам необходимо:

  1. ESP8266
  2. BME280
  3. Блок реле
  4. Вентилятор от БП компьютера для вытяжки
  5. ИК-лампа
  6. Плафон со светодиодной лампой на 220В.
  7. БП 5В/1А от телефона
  8. Провода и радиорассыпуха  для окончательной сборки.

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

1- Старт

Любое устройство (совершенно любое!) не знает ничего о состоянии времени. Т.е. устройство ставит прошитое в нем изначально стартовое время и начинает отсчет именно с него. Например мой модуль ESP8266 при сбросе питания выставляет свое время- 03:00. Ему неважно что сейчас, например, 10:39. Он знает что при старте, а прошел именно старт, его личное время- 03:00. Поэтому каждый раз при старте необходимо указывать текущее время контроллеру. Можно наводить время вручную. Согласитесь что бегать каждый раз при отключении света и наводить время это… да зачем тогда такое устройство! У меня, например, свет отключается по 3-10 раз в день (вот такое у меня х.. (не подумайте что хорошее) электроснабжение) и бегать каждый раз настраивать- увольте! Можно, конечно, сделать резервное питание из АКБ и при пропадании питания контролер работал бы от аккумулятора, а при работе от сети аккумулятор бы заряжался. Можно поставить часовой модуль DS1302, DS1307 и т.д. и дописать нужный код. Вариантов много но я решил использовать сервер точного времени в интернете. Так называемый ntp- сервер (англ. Network Time Protocol — протокол сетевого времени). Какие плюсы и недостатки при использовании данного сервера. Плюс- вы получаете точное время с точностью до секунд (в данной задаче такая дикая точность не нужна но если есть- почему бы не использовать?) Минус- при пропадании сети и при первоначальном запуске вы не сможете установить серверное время т.к. ваш роутер еще не подключился к провайдеру и, соответственно, у вас нет выхода в сеть интернет. Вы просто не достучитесь до ntp сервера . А так как контроллер загрузится быстрее роутера то время останется именно временем контроллера. Но и с этим минусом можно бороться- нужно заставить контроллер обновлять время через указанное время (каламбур однако)! Поэтому в скетче есть возможность указать- через какие отрезки времени контроллер будет синхронизировать время с ntp сервером! Я поставил в скетче 5 минут. Т.е., например, при запуске время не обновилось, пока грузится роутер и устанавливается соединение с провайдером, и осталось прежним- 03:00. Но по прошествии 5 минут контроллер снова постучится на ntp сервер и, надеюсь что связь за 5 минут уже восстановится, синхронизирует свое время. Синхронизация будет происходить каждые 5 минут. Трафик при этом- минимальный. Никаких АКБ и дополнительных модулей времени уже не надо!

2- Работа

Если с сервером времени все понятно и никаких регистрации на сайтах не нужно то с управлением устройствами через интернет нужен специальный сервер, который будет получать и передавать данные со всех устройств на все устройства в данной категории. Про категории я расскажу чуть позже. Даный сервер называется MQTT- сервер (англ. Message Queue Telemetry Transport- сообщение о запросах телеметрии). Приложения для управления данными с MQTT серверами  можно скачать на PlayMarket для Android устройств и для Apple тоже есть такие же программы. MQTT серверов довольно большое количество но практически все они- платные. На каждом сервере есть определенное количество подключений которые являются бесплатными. Например на https://www.cloudmqtt.com/ дается лимит на 5 подключений любых устройств. Напоминаю, 1 подключение- это 1 устройство. Например ESP8266- одно устройство, ваш телефон с установленным приложением- второе, планшет- третье и т.д. Это тариф Cute Cat. Выше- уже платно. Например следующий тариф Humble Hedgehog. Стоимость 5$ / месяц но уже поддерживается 25 подключений… И т.д. Такая картина практически на всех MQTT серверах. Но все же я зарегистрировался на https://www.cloudmqtt.com/ т.к. мне, пока, хватает этих бесплатных 5 подключений. Какой выберете вы- это ваше личное дело. О регистрации на MQTT серверах написано довольно много постов но и я напишу то, как я настроил свой сервер чтобы не было недопонимания.

Следующая страница->> Настройка MQTT- сервера

1 thought on “Управление курятником через интернет. Часть 1. Введение

  1. Доброго дня!

    На cloudmqtt.com больше нет бесплатных тарифов. Зато они пока есть на других серверах.
    Список тут: https://kotyara12.ru/pubs/iot/cloud_services/. Лично я пользуюсь srv2.clusterfly.ru.

    Но сейчас я развернул свой личный mqtt-сервер на роутере keenetic нового поколения (потребуется флешка) — это даст надежную работу даже при отсутствии интернета. А для для внешнего управления со смартфона планирую настроить мост от него на srv2.clusterfly.ru. Пока не все получается и времени нет, но как сделаю — будет статья на https://kotyara12.ru/iot/

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