Контроллер подачи звонков по расписанию

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

 

Итак, сердцем является микроконтроллер ESP32, он был выбран из-за того что на нём можно организовать веб-интерфейс и тем самым избавиться от кнопок управления и дисплея, да и детишки меньше будут пытаться что-то сделать со звонками. В качестве часов реального времени был использован модуль DS3231 c микросхемой EEPROM памяти. В качестве исполняемого элемента было выбрано реле с запасом по прочности, всё-таки будет работать в школе и хотелось сделать гарантированный разрыв провода управления звонком. Также для индикации работы были установлены два светодиода. Светодиод D3 (зелёного цвета) мигает каждую секунду, показывая тем самым что часы идут. Второй светодиод D2 (красного цвета) служит для индикации срабатывания реле. В качестве источника питания был использован блок питания нерабочего роутера на 5 вольт и 1 ампер. Обратите внимание, что потребление ESP32 может достигать 250 мА, а потребление реле во включенном состоянии для SLA-05VDC-SL-A составляет 185 мА. Так что блок питания ниже 500 мА, а лучше 750 мА применять не следует. В качестве корпуса был применён заводской вариант размером 158x90x60 мм.

Хоть контроллер и был собран на макетной плате, но всё уместилось.

Для запуска веб-интерфейса была добавлена кнопка SB1, по её нажатию запускается wifi точка доступа с сетью school_bell, пароль по умолчанию 11111111 и перейдя по адресу 192.168.4.1 попадаем на веб интерфейс «Контроллера подачи звонков по расписанию».

Здесь всё просто, на данный момент, всё-таки данное устройство пока можно считать в разработке, используется только одна сетка расписания, её структура была позаимствована из дневника. Тут можно выбрать дни когда звонки будут срабатывать, а также на какие уроки будут подаваться звонки.

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

либо в настройки времени.

После изменения даты и времени происходит перерасчёт срабатывания следующего звонка. Также можно установить время срабатывания звонка в секундах, от 1 до 20 секунд, нажав на соответствующее поле.

 

Данный проект был создан в среде Platformio с использованием библиотеки AlexGyvera GyverPortal.
При первом включении желательно раскомментировать участок кода отвечающий за начальные настройки хранящиеся в EEPROV дабы исключить не корректной работы контроллера.

 

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

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

 

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
C1, C3 Конденсатор 100 нФ 50 В 2 К10-17Б
C2 Конденсатор 1000 мкФ 25В 1
C4 Конденсатор 100 мкФ 10 В 1 SMD тантал
C5 Конденсатор 100 нФ 50 В 1 SMD 1206
С6 Конденсатор 10 нФ 10 кВ 1 высоковольтный
D1 Диод SA5.0(A) 1
D2 Светодиод GNL-5012HD 1 красный
D3 Светодиод GNL-5012GD 1 зелёный
D4 Выпрямительный диод 1N4007 1
F1 Предохранитель MF-R075. 0.75 А 1
K1 Реле SLA-05VDC-SL-A 4PIN 1
R1, R2 Резистор 510 Ом 2 0,125 Вт
R3 Резистор 220 Ом 1 5 Вт
R4 Резистор 1 кОм 1 0,125 Вт
R5 Резистор 22 кОм 1
SB1 Кнопка KLS7-TS1204-7.3-180 (TC-12ET) (SWT-9) 1
T1 Биполярный транзистор BD139 1
U1 ESP32 ESP32 DevKit V1 1
U2 модуль DS3231 M_DS3231 1