Spkb-optics.ru

СПКБ Оптик
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать временной выключатель

Радиоуправляемый выключатель своими руками. Часть 3 — Софт выключателя

В предыдущих постах мы спроектировали, сделали и всесторонне протестировали блок двухканального радиоуправляемого выключателя.

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

В общем-то, наше основное устройство (если не рассматривать подключение радиомодуля) — нисколько не сложнее самой обычной Ардуинки, к которой подключено две кнопки и пара светодиодов (в результирующем устройстве — светодиоды заменены на транзисторные ключи, управляющие релюшками, но суть это не меняет).

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

  • нет возможности получить диагностические сообщения в «мониторе порта»,
  • отсутствует визуальное подтверждение, какое из реле и в каком состоянии находится и т.п.

Но, как я раньше уже заметил, для «оживления» нашего модуля всего-то требуется написать скетч, который бы отрабатывал различные нажатия (две кнопки) и мог бы по нашему алгоритму включать/выключать две нагрузки (в макете это будет пара светодиодов). Естественно, это «базовый функционал», после того, как разберемся с ним — добавим и «радиоканальные» функции.

Вообще, конечно, с «макетки» правильнее было бы начать, но в данном случае — так получилось, что прототип делался позже, чем результирующее устройство.

Макет

Итак, чтобы получить «удобную» среду для подготовки нашего скетча, возьмем беспаечную макетку, любую ардуино-совместимую плату (в моем случае это cArduino Nano), две тактовые кнопки, два светодиода (с токоограничительными резисторами) и несколько перемычек:

Собираем макет, согласно принципиальной схемы из первого поста.

Напомню:

  • Кнопку для первого канала подключаем между пином A1 и «землей» (GND),
  • Кнопку второго канала — A0 и GND.
  • Светодиоды (индикаторы работы соответствующих транзисторных ключей и реле в радиовыключателе) подключаем к D3 и D4, соответственно.

Собственно, такой макет позволит нам написать и отладить основной функционал.

В дальнейшем нужно будет этот скетч загрузить с помощью программатора в финальное устройство без переделок.

Перед началом разработки следует зафиксировать базовые функции, которые хотелось бы реализовать.

Желаемый функционал

Естественно, этот список «хотелок» находится в голове еще перед началом работы над проектом, сейчас просто сформулирую.

Базовые функции

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

Радиоуправление

Программирование

В ходе создания ПО для реализации базовых функций будем учитывать следующее:

  1. Сейчас каналов два, но в дальнейшем их может быть больше/меньше и код должен быть таким, чтобы это можно было просто корректировать (без существенного переписывания).
  2. Устройство встраиваемое и в случае какого-либо сбоя доставать его из стены крайне проблематично.
Читать еще:  Выключатель регулировки угла наклона фар

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

Для хранения параметров канала я создал следующую структуру:

Теперь уже можно написать несложный скетч.

В функции setup() проводим всю необходимую инициализацию и взводим «сторожевую собаку».

Дальше все просто: в основном цикле программы (loop()) будем последовательно делать следующие шаги:

  • Работаем с кнопками (функция button_read()).
  • Отрабатываем автовыключение (autoOff()).
  • Реализуем дополнительную логику работы (chkLogic()).
  • Сбрасываем сторожевой таймер (wdt_reset()).

Если дополнительная логика работы не нужна (в моем случае это автоматическое включение и выключение вентиляции в зависимости от состояния света) — функцию chkLogic() можно просто удалить.

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

Теперь можно реализовывать и беспроводные функции.

Для этого обратимся к одному из моих ранних постов: Беспроводные коммуникации «умного дома».

Основные принципы, которые я там описывал — выдержали проверку временем и претерпели очень незначительные изменения.

Для работы с параметрами подойдет структура:

Для передаваемых данных буду использовать следующую структуру:

Согласно вышесказанного, мой модуль будет описываться следующим образом:

Видно, что все ключевые параметры, описывающие текущее состояние и временные параметры, присутствуют.

Собственно, теперь осталось прошить наш модуль.

Прошил, проверил работу — все ок, но обнаружилось, что в «чистом» МК все байты EEPROM установлены в 255, что дает соответствующие задержки.

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

Для этого можно воспользоваться примерами из библиотеки EEPROM и прямо из них прописать первичные (более актуальные) значения в соответствующие ячейки энергонезависимой памяти.

Последующая проверка показала, что теперь все работает как раз так, как хотелось.

Еще раз повторю свой основной принцип устройств моего «умного дома»: каждое созданное устройство сделано для достижения какой-то определенной цели и оно должно работать самостоятельно.

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

Установка модуля

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

Читать еще:  Italtecnica поплавковый выключатель pvc 10mt

Плату блока питания взял там же, где и в прошлый раз — распилил блок питания для iPhone. В принципе, можно сделать конденсаторный блок питания или поискать уже готовые варианты (например, тут).

Получилось как-то так (тут уже все подключено — проводил последние тесты перед монтажом в стену):

Корпус оказался несколько великоват, но имеющийся в хозяйстве более мелкий — не подошел.

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

Теперь можно заняться непосредственно «встраиванием» модуля в стену (к сожалению, увлекся процессом и забыл фотографировать, поэтому только текстовое описание):

  • Обесточиваем соответствующую цепь освещения.
  • Демонтируем имеющийся выключатель (не забываем промаркировать, какие пары идут на свет, а какие — на вытяжку).
  • Снимаем монтажную коробку
  • Подключаем радиовыключатель к соответствующим проводам (попутно избавляясь от «скруток», которые оставили «добрые строители»).
  • Аккуратно заталкиваем все провода и радиовыключатель в промежуток между листами гипсокартона (я решил расположить модуль выше выключателя, чтобы его было проще достать при необходимости).
  • Выводим провода, к которым будем подключать кнопочный выключатель в отверстие для установки монтажной коробки (специально взял принципиально отличающийся от остальной проводки кабель — МГТФ, чтобы в случае чего электрику было понятно, что тут «что-то странное» и с этим надо сначала разобраться).
  • Теперь можно установить монтажную коробку и подключить кнопочный выключатель.

Все, готово. Включаем электричество и проверяем, что все работает так, как хотелось.

Результат

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

P.S. В обсуждении первого поста были вопросы по поводу использования другой элементной базы, в том числе и для достижения более компактных размеров.

Это обычное реле (очень тихое) с двумя группами коммутируемых контактов. Может включать/выключать цепи на 220В (мощность небольшая, но для светодиодных ламп — вполне подойдет). Управляется 5В, можно подключать напрямую к выводу МК (без транзистора).

Это я к тому, что не стоит ко всему относиться как к догме (повторять все проекты «один в один») — ищите, подбирайте наиболее адекватные (для каждой конкретной задачи) решения, модифицируйте!

Что это такое

Реле времени – прибор, основанный на работе по принципу аккумулятора. Зачастую он выполняет функции переключателя и прерывателя. Продолжительность рабочего времени этого устройства может быть часовая, суточная или недельная. Многие виды переключателей оснащены электромагнитом для механического управления переключателем. Существуют также — твердотельные реле —, у которых нет механически движущихся частей. С помощью низких уровней напряжения, которые подаются на клеммы управления, такие аппараты используются для включения и выключения высокомощной цепи.

Читать еще:  Abb механизм выключателя future

Когда электрический ток проходит через катушку, он генерирует магнитное поле. Поле активирует якорь, и последующее движение подвижного контакта (или контактов) создает или разрывает (в зависимости от конструкции) соединение с фиксированным контактом. Если группа контактов была закрыта, когда аппарат был обесточен, то движение размыкает контакты и разрывает соединение, и наоборот, если контакты были разомкнуты. Когда ток в катушке отключается, якорь возвращается силой, примерно вдвое меньшей магнитной, в своё естественное положение. Как правило, эта сила обеспечивается пружиной, но гравитация также широко используется в промышленных пускателях двигателей. Большинство таких приборов изготавливаются для более ускоренной работы. В низковольтный условиях уменьшает шум, а в условиях высокого напряжения тока уменьшает искрение.

Обычно производятся и выпускаются реле времени с задержкой выключения 12 В, 24 В и 220 В.

Розетка с механическим таймером Rexant

Розетка с механическим таймером Rexant 11-6005-такой прибор мы приобрели в магазине (что было в наличии по приемлемой цене: 320 руб) и установили в своем курятнике.

Прибор состоит из :

  1. самой розетки для подключения электроприбора
  2. переключателя режимов работы: 1- таймер, 2-постоянно включено
  3. шкалы времени
  4. программных клавиш (сегментов)
  5. указателя времени

Чтобы запрограммировать включение и выключение освещения в курятнике, нужно:

  • переключатель режимов, находящийся сбоку, установить на «таймер»
  • вставить вилку светильника в розетку
  • вращая циферблат по часовой стрелке нужно установить текущее время напротив стрелочки, чтобы таймер знал откуда ему отсчитывать все остальные установки и чтобы он начал свой отсчет с данного момента
  • на нужной вам цифре включения прибора таймером (например, в 6 утра), нужно нажать (отжать) сегменты, которые расположены вокруг циферблата с периодичностью в 15 минут. При нажатых сегментах свет горит.Если сегмент не нажат, то свет выключается. То есть, на работающем таймере вращается циферблат, считывая нажатые сегменты.
  • Когда стрелочка текущего времени дойдет до первой нажатой клавиши (сегмента), то свет загорится и будет гореть как минимум 15 минут (одна клавиша) или столько по раз по 15 минут, сколько сегментов (клавиш) нажато.
  • то же самое нужно сделать и с вечерним временем: нажать сегменты, расположенные в интервале с 17-00 до 20-00.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector