Восход солнца в курятнике (регулятор освещения с расписанием)

ИмхоДом Форумы свободная тема Восход солнца в курятнике (регулятор освещения с расписанием)

  • В этой теме 5 ответов, 4 участника, последнее обновление сделано psmpsm.
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • #502214
    Ilja VlaskinIlja Vlaskin
    Участник
    • Барабинка

    Восход солнца в курятнике, или фазовый регулятор для ламп накаливания с работой по расписанию.

    Источник:

    https://vil2.livejournal.com/419.html

    Предыстория создания устройства:

    Решил этой зимой перевезти кур-несушек из летнего вольера в подполье дома. Оборудовал в подполье мини-загон, сделал вытяжку через продух, провел освещение. Первое время держал свет включенным круглые сутки. Курвам похоже такой режим оказался не по нраву — они плохо и нерегулярно спали, ходили смурные. Стали мы на ночь выключать им свет. Это положительно повлияло на яйценоскость. Однако выдерживать расписание в ручном режиме неудобно, иногда забываешь выключать свет, иногда поздно включаешь. У кур от этого сбивается внутренне расписание и ухудшается настроение. Так-же негативно на них влияет внезапное выключение света — при этом они остаются ночевать на том месте, где их застала темнота. Иногда приходится по нескольку раз заглядывать в подполье и ждать, пока все курицы не устроятся на ночь на насесте, и потом только выключать свет.

    Все это породило у меня желание разработать и внедрить устройство автоматического управления освещением. Могу отметить, что подобные устройства (именуемые в народе «Умные розетки») имеются в продаже на AliExpress и даже в самых захудалых магазинах электро-товаров. Однако у них отсутствует механизм плавного включения и выключения, т.к. делаются они на механическом реле. Для реализации плавного включения и выключения необходима схема на полупроводниковом элементе — симисторе.  Итак, начнем:

    Техническое задание (ТЗ):

    1. Реализовать плавное включение и выключение лампы накаливания по расписанию, в соответствии со следующими настройками:

    — Время включения: часы и минуты

    — Длительность включения (плавного увеличения мощности от 0 до Pmax): в минутах

    — Время выключения: часы и минуты

    — Длительность выключения (плавного уменьшения мощности от Pmax до 0): в минутах

    — Максимальный уровень мощности Pmax: в процентах

    2. Реализовать выбор и индикацию режимов (кнопкой и светодиодом), с сохранением выбранного режима при пропадании питания:

    — Нормальная работа (по расписанию)

    — Включено (нагрузка включена на мощности Pmax)

    — Выключено (нагрузка выключена)

    3. Реализовать настройку устройства при подключении к компьютеру (USB).

    4. Настройки устройства по умолчанию (пригодные для эксплуатации):

    — Время включения: 07:00

    — Длительность включения: 15минут

    — Время выключения: 21:00

    — Длительность выключения: 60минут

    — Мощность Pmax: 90%

    — Режим работы: нормальный (по расписанию)

    5. Реализовать возможность синхронизации времени устройства без подключения к компьютеру (с помощью кнопки) и исключение возможности случайной синхронизации.

    6. Питание устройства и нагрузки от сети 220В. Мощность нагрузки до 100Вт.

    7. Конструкция устройства в виде «умной розетки» — корпус с сетевой вилкой (для включения в сеть) и сетевой розеткой (для включения нагрузки).

    8. Невысокая цена и доступность комплектующих, а так-же возможность собрать устройство используя распространенный инструмент.

    Для реализации ТЗ требуется:

    1. Микроконтроллер.

    2. Часы с батарейкой.

    3. Энегронезависимая память для хранения настроек.

    4. Интерфейс для подключения к компьютеру (USB).

    5. Источник питания.

    6. Схема управления симисторным ключем и схема синхронизации с сетью для реализации фазовой регулировки мощности нагрузки.

    7. Светодиод для индикации текущего режима работы и для индикации процесса синхронизации времени устройства.

    8. Кнопка для выбора режима работы и для выполнения синхронизации времени устройства.

    9. Корпус.

    Пункты 1-4 легко реализуются на микроконтроллере STM32 (серии F0 или F1). Для устройства была приобретена на AliExpress подобная микропроцессорная плата:
    STM32F103C8T Mini Development boardНа плате установлен микроконтроллер STM32F103C8T6. Имеется разъем для его программирования и отладки. Имеется разъем Micro-USB который можно использовать для подключения к компьютеру. Имеется часовой кварц для часов. Не хватает только батарейного отсека. Его придется припаять навесным монтажем (см. ниже).

    Для данной микропроцессорной платы требуется питание 5В, которое можно подавать через разъем Micro-USB или через гребенку. На AliExpress был приобретен миниатюрный блок питания:

    Теперь — силовая схема:
    Схема синхронизации с сетью и фазового управления симистором

    Некоторые пояснения по работе схемы:

    Сигнал синхронизации (SYNC) получаем из сетевого напряжения (на схеме изображены — диод 1N4007, 1-ватный резистор CF-1-82К и оптопара (любая 4-ножечная типа PC817). Период данного сигнала равен периоду сетевого напряжения. По данному сигналу микроконтроллер вычисляет моменты начала(окончания) каждого полупериода. Фронты сигнала оказались очень пологими, к тому-же их протяженность зависит от коэффициента передачи оптопары. Т.к. логические входные уровни 0 и 1 у микроконтроллера различаются, все это будет приводить к фазовой ошибке, которая будет меняться как от температуры, так и от устройства к устройству. В результате пришлось для анализа сигнала задействовать АЦП. Результат оказался очень хороший — ошибка определения перехода через ноль составляет 10…20мкс.

    Сигнал PULSE используется для управления симистором. Для гальванической развязки используется оптосимистор без определения переходя через ноль (Non zero crossing optotriac), типа MOC3052. Симистор — самый обычный, подходящий по мощности.

    Так-же на схеме имеется кнопка и светодиод для выбора и индикации режимов работы.

    И последнее — корпус. Его я не выбирал, а купил то что имелось в наличии:

    Z-42 — корпус с сетевой вилкой. Для подключения нагрузки была куплена розетка на корпус РД-1:

    Не могу сказать, что этот корпус мне понравился, однако других вариантов не было. Пришлось руководствоваться принципом «используй то, что под рукою, и не ищи себе другое». Материал корпуса — полистирол. Для сборки потребуется клей — дихлорэтан. Клеить нужно саму сетевую вилку внутри корпуса, так-же при сборке понадобятся различные полочки и упоры для наших плат, которые приклеиваются «по месту».

    Ну а теперь самое интересное.

    Схема достаточно простая, поэтому спаял ее на макетной плате. Шлейф «Управление» в дальнейшем будет соединяться с гребенкой на плате STM32F103C8T Mini development board.

    Эта макетная плата вместе с розеткой РД-1 монтируется в верхней крышке корпуса Z-42:

    В корпусе Z-42 предварительно надо сделать отверстие под держатель предохранителя. Сам держатель (типа ДВП) монтируется в нижней части корпуса (см. далее). Так-же в верхней крышке необходимо сделать (точнее — расширить) уже имеющийся паз. Из него у нас будет торчать разъем Micro-USB от платы STM32F103C8T (На рисунке схематично изображен торец этой платы). Ну и отверстия для кнопки и светодиода, а так-же для розетки РД-1. Провода от розетки РД-1 (с разъемом на конце) втыкаются в разъем «Нагрузка» на макетной плате.

    Теперь собираем нижнюю часть корпуса Z-42. В ней у нас будет находиться держатель предохранителя, блок питания и процессорная плата STM32F103C8T.

    В нижней части корпуса имеется внутренний бортик (в верхней крышке — наружный бортик) для совмещения этих частей друг с другом. Необходимо срезать часть внутреннего бортика, чтобы получился паз для торца платы STM32F103C8T. Этот паз зафиксирует торец платы от боковых смещений.

    От нижней части корпуса (с сетевой вилки через предохранитель) отходят провода питания 220В с двойным разъемом на конце. Одна часть разъема будет втыкаться в макетную плату в верхней крышке, другая часть — в блок питания для платы STM32F103C8T. Этот блок питания и плата STM32F103C8T располагаются в нижней части корпуса. Я спаял их друг с другом, в результате у меня получился вот такой сборочный узел:

    На рисунке видно расположение гребенки для присоединения шлейфа «Управление» а так-же расположение батарейного отсека для батарейки CR2032. Данный сборочный узел по длине почти идеально влезает в нижнюю часть корпуса. Необходимо в нижней части корпуса наклеить подкладки под торцы, чтобы этот узел впритык вставал в нижнюю часть и заходил торцом платы STM32F103C8T в приготовленный для него паз. Таким образом узел будет зафиксирован от продольного смещения, а так-же будет зафиксирован в пазу со стороны разъема Micro-USB

    Со стороны блока питания узел тоже будет зафиксирован разъемом питания 220В, подключенным к макетной плате (показан стрелкой). При сборке корпуса необходимо совместить разъемы, как показано стрелкой. Так-же следует отрегулировать высоту получившегося «бутерброда» из печатных плат, чтобы платы блока питания и макетной платы уперлись при сборке в низ и верх корпуса. При регулировке высоты «бутерброда» пришлось убрать на макетной плате пластмассовые упоры с гребенки питания 220В.

    При сборке корпуса могут возникнуть некоторые трудности, т.к. надо одновременно следить за правильной укладкой шлейфа и проводов, стараться чтобы плата STM32F103C8T не вылезала из паза и при этом пытаться совместить разъемы питания 220В. Однако при многократной сборке-разборке очень быстро приобретаются нужные навыки. Так-же сборка упрощается, если разъем питания сперва воткнуть в макетную плату, а затем совмещать его на разъеме блока питания.

    Прошивки (Firmware). В этом разделе я буду выкладывать последние прошивки с описанием заложенных в них возможностей

    Версия 01.00:

    В данной прошивке реализованы следующие возможности:

    — Смена рабочего режима при коротком (не более 500мс) нажатии на кнопку. Порядок смены режима следующий: «Расписание» — «Выключено» — «Включено» — «Выключено» — … и далее по кругу.

    — Сохранение текущего рабочего режима при пропадании питания.

    — Индикация текущего режима работы:

    Режим «Выключено» — светодиод погашен.

    Режим «Включено» — светодиод горит.

    Режим «Расписание» — светодиод мигает с периодом около 2 секунд. При мигании относительная длительность между горящим и погашенным состоянием показывает уровень выдаваемой в нагрузку мощности (яркости лампы накаливания).

    — Работа по расписанию согласно настроек по умолчанию. Настройки по умолчанию могут быть изменены в файле прошивки (см. ниже). В текущей версии изменение настроек расписания при работе устройства не предусмотрены.

    — Синхронизация часов устройства. Для установки времени используется следующая процедура:

    Нажмите на кнопку и удерживайте ее в нажатом состоянии в течении 10 секунд. Через 10 секунд непрерывного нажатия светодиод начнет быстро моргать (около 4 раз в секунду) и будет моргать в течении 2 секунд. За это время необходимо отпустить кнопку. При соблюдении данной процедуры в устройстве будет установлено время 20:00. Для синхронизации времени устройства необходимо проводить данную процедуру за 10 секунд до наступления времени 20:00 (если требуется точная синхронизация).

    <hr />

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

    Если вы хотите, чтобы сразу после программирования часы устройства были установлены правильно (не дожидаясь времени 20:00 для выполнения синхронизации), то необходимо сделать следующее:

    — Отредактируйте в файле прошивки начальное значение времени.

    — Запрограммируйте устройство. Выключите питание.

    — Установите в устройство батарейку для часов. Если она уже установлена — выньте ее на несколько секунд и установите обратно.

    — Включите устройство за 5 секунд до наступления заданного вами начального значения времени.

    <hr />

    Теперь немного о том, как можно изменить некоторые настройки путем редактирования файла прошивки. Ниже приведены адреса смещения в прошивке и хранящиеся там значения (в шестнадцатиричной системе), а так-же их допустимый диапазон (в десятичной системе):

    1400: A4 01 — 2 байта

    Время включения в минутах от начала суток (07:00)[0…1439].

    1402: EC 04 — 2 байта

    Время выключения в минутах от начала суток (21:00)[0…1439].

    1404: 0F — 1 байт

    Длительность включения в минутах (15 минут)[1…120].

    1405: 3C — 1 байт

    Длительность выключения в минутах (60 минут)[1…120].

    1406: 5A — 1 байт

    Максимальная мощность (90%)[20…100].

    1407: 02 — 1 байт

    Режим работы (2)[0,1 — «Выключено», 2 — «Расписание», 3 — «Включено»].

    1800: 31 37 3A 33 30 3A 30 30 00 — 9 байт

    Строка «17:30:00» — начальное значение времени, часы:минуты:секунды

    #502217
    Висариoн4Висариoн4
    Хранитель
    • OldSchool Admin

    Все подробно, спасибо.

    Не хватает финансовой стороны — затраты и экономия на чем — нибудь (свете? яйцах?…)

    #502218
    Ilja VlaskinIlja Vlaskin
    Участник
    • Барабинка

    Ух ты. Я только ссылку вставил. Оно само перенеслось, или с божьей помощью?

    Если с посторонним вмешательством — то тут не хватает еще основного заголовка (он немного длиннее названия темы) и ссылки на файл прошивки нет.

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

    По финансам навскидку — комплектация обошлась в районе 400-500 руб.

    #502219
    psmpsm
    Участник
    • Ветеран-3

    «курятник! как много в этом слове…» даже больше чем в слове «сарай» )))))))))))))) ибо птицефабрика «Колпашевская» (нету ее нынче по-моему…). Прям за душу взяло… ну там все посерьезнее было… свет-вентиляция-обогрев-сигналка — общая электрическая мощность.. ээ… под 15 МВт ?! сам до сих пор «ого»…  кстати алгоритмы отбили стоимость автоматики за месяц. Чисто на оптимальном нагреве и экономии лепездричества. Эхххх….

    #502231
    ЗаецЗаец
    Участник
    • Иглаково

    Чет шибко замудрено. Имхо. Я бы тупо взял готовую «умную розетку» чем эти байты пересчитывать в минуты…… А плавное зажигание уже потом прислюнявил к ней.

    #502233
    psmpsm
    Участник
    • Ветеран-3

    а еще (из богатого опыта) — важно делать плавное включение и плавное выключение. время «рассвета» и «заката» минут 15. Иначе куры стрессняк ловят.

    В родном курятнике в каждом цеху на это стоял прибор ПН-ТТ 250. Ну тут попроще можно))))

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Для ответа в этой теме необходимо авторизоваться.