Контроллер управления освещением и звонками для школы

Дано: новая школа, в которой уже смонтирована система управления звонками и освещением на основе контроллеров серии К2000 и К2010. Информацию об этих контроллерах можно найти в Интернете. Центральным элементом системы является обычный компьютер со специальным ПО, который подключен к контроллеру через LPT-порт.

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

В результате было решено разработать свой собственный контроллер и написать ПО для управления.

Справа контроллер К2000. Слева — контакторы звонка:

В школе для управления освещением на каждом этаже в каждом блоке установлены модули аналогового управления К2010:

Они позволяют включать/выключать освещение в коридорах с помощью низковольтной шины управления 4-20 мА. Подключаются они следующим образом (изображение из официальной инструкции):

Переделка уже существующей системы сводится только к удалению контроллера К2000. Его мы заменим своим.

Для сборки нашего контроллера нам понадобится плата Arduino UNO или Arduino Mega, двойной модуль реле и несколько радиодеталей:

  • U1 — Arduino;
  • U2 — сборка Дарлингтона ULN2003;
  • VR1, VR2, VR3 — стабилизаторы LM317T;
  • R1-R5 — резисторы 470 Ом;
  • R6-R8 — резисторы 62 Ом или подстроечные резисторы (подбирается по току стабилизации 20 мА);
  • VD1-VD5 — светодиоды;
  • модуль реле — например такой:

Обращаю внимание на то, что данный модуль реле управляется инверсным напряжением: при соединении входа с землёй — оно включается. В прошивке ардуины эта особенность учтена.

Нумерация выводов LM317T на схеме указана при виде спереди.

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

Настройка схемы сводится к подстройке резисторов R6-R8 (если они подстроечные). Делается это следующим образом: в программе управления в ручном режиме включается освещение. В это время на контактах 1-3 ULN2003 должно появиться напряжение 5 вольт, а на контактах 14-16 соответственно появиться земля. Выходы L1-L3 контроллера по-очереди замыкаются амперметром. Необходимо с помощью резисторов установить силу тока в цепях равную 20 мА.

Схема подключения контроллера к системе:

  • L1, L2, L3 — шина управления освещением 4-20 мА.
  • B1, B2 — выходы для управления контакторами K1, K2.
  • B — подключается к цепи питания 220 В.

Пока всё собрано на макетке:

В корпусе от старого Dial-Up модема:

В будущем планирую развести плату и напечатать корпус на 3D-принтере.

Программное обеспечение

Для управления всей системой было написано приложение Bell Manager. Язык программирования — Python. Все исходники открыты, поэтому любой желающий может доработать приложения для себя. Ссылки в конце статьи.

Функции программы:

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

Приложение кроссплатформенное — возможна работа как в Windows, так и в Linux.

На данный момент программа постоянно дорабатывается, исправляются ошибки.

Протокол обмена данными

Символ или их комбинацияЗначение
Y—$KИнициализация контроллера. Команда посылается при установке связи с контроллером. До её получения все остальные команды игнорируются.
QВключение звонка в основной школе
qВыключение звонка в основной школе
WВключение звонка в начальной школе
wВыключение звонка в начальной школе
EВключение освещения в основной школе
eВыключение освещения в основной школе
RВключение освещения в начальной школе
rВыключение освещения в начальной школе

Команды для звонка передаются непосредственно в моменты его включения/выключения. Команды на освещение передаются каждую секунду. При отсутствии команд в течении 5 секунд — контроллер считает, что связь потеряна и выключает всё.

Файлы


Скачать установщик с GitHub: https://github.com/student-proger/BellManager/releases
Репозиторий на GitHub: https://github.com/student-proger/BellManager