Pull to refresh

Музыкальный программируемый школьный звонок «Школьник-4»

JavaScript *jQuery *


Аннотация


На хабре уже не раз делали описание работы с роутером TL-MR3020 в плане расширения его возможностей на базе прошивки openwrt. Я хочу показать ещё один вариант доработки роутера, при котором он может стать полноценным участником школьного учебного процесса. В статье приводится описание устройства и порядок работы с музыкальным программируемым школьным звонком «Школьник-4».

Модуль «Школьник-4»


Для тех, кому не терпится попробовать его в работе, предлагаю сразу прошить свой роутер альтернативной прошивкой CyberWrt и выбрать в меню Модули / test этот модуль, далее нажать Install и через некоторое время вы сможете самостоятельно ставить эксперименты. Для полноценной работы необходима usb-аудиокарта, которая на фото вставлена прямо внутрь корпуса роутера.



Введение


В России и мире существует несколько десятков различных реализаций автоматизированных звонковых систем. Первые такие системы появились ещё при СССР, причём кое-где до сих пор работали. Многие из них просто автоматизируют подачу традиционных звонков громкого боя. Некоторая часть позволяет вместо обычных звонков использовать систему проводного вещания, которая обычно входит в состав системы оповещения в школе.

Описываемый ниже вариант является 4-м школьным звонком под незамысловатым названием «Школьник». Первые две версии были выполнены моим другом, Женей Пеннером, который реализовал их на AVR. Я перенял эстафету и третий вариант выполнил на основе мобильного телефона в виде приложения на Java2ME. Все они много лет трудились верой и правдой в некоторых школах на Урале и в Сибири.

Если мы посмотрим на исходники, то увидим, что очередной звонок представляет из себя набор shell- и javascript-скриптов. Подачей звонков управляют shell-скрипты, используя службу crond. Веб-интерфейс написан на javascript с использованием библиотеки jQuery. Роутер через аудио-карту подключается к усилителю системы проводного вещания. Доступ к управлению может быть организован как по локальной проводной сети, так и по WiFi.

На данный момент прототипы звонка «Школьник-4» были установлены в двух школах и несколько месяцев проходили опытную эксплуатацию.

Интерфейс


Общий вид и описание интерфейса представлены ниже.

Настройки

Настроек не много:

Автомат — это режим, при котором в 1 минуту первого каждый день происходит автоматическая смена расписания согласно годовому плану. Если автоматический режим выключен, то расписание будет постоянным (см. ниже).

Расписание — выбор расписания для ручного режима переключения.

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

Мелодия — мелодия для предварительного звонка. Все мелодии из-за ограничения по месту в роутере пока ограничены набором из пяти.

Кнопка Синхронизировать устанавливает на роутере время из браузера. Дело в том, что TL-MR3020 синхронизируется через сеть, если же её нет, то устанавливается эпоха unix'а. Микросхемы RTC на борту нет. Это один из минусов этого роутера для такого применения.

Кнопка Останов останавливает службу crond, а Перезапуск — перезапускает.

Кнопка Тест тестирует звуковой тракт, проигрывая короткий звуковой файл.



План

Это просто детская раскраска. «Макаем» кистью в расписание и малюем какое надо на текущий год. Не забываем сохранить своё творчество, нажав на кнопку Сохранить. Этот план нужен для автоматического режима смены расписания.


Расписания

Добавлять и убирать расписания в текущей версии нельзя, но их можно редактировать. Выбираем расписание из списка, внизу появляется набор звонков для него. Добавляем / удаляем строчки, меняем мелодию, включаем или исключаем звонок из задания для службы crond, включаем или исключаем дополнительный предварительный звонок. Всё интуитивно понятно. Можно также проиграть текущую мелодию, но проигрываться она будет в браузере, а не через аудио-карту.
Кнопка Применить нужна, если сразу изменяется несколько расписаний. Сначала нужно Применить текущие изменения, чтобы перейти к следующему расписанию, а потом нажать Сохранить. После этого сохранятся все изменения.


Вкладки Системный журнал и Отладка содержат специфическую информацию для настройки звонка. CyberWrt модуль «Школьник-4» сразу готов к работе после установки. Если служба crond не запущена, то вместо надписи РАБОТАЕТ будет надпись ОСТАНОВЛЕН. Никаких звонков при этом подаваться не будет.

Порядок работы


1. Устанавливаете модуль или собираете его самостоятельно для своей системы.
2. Редактируете расписания, сохраняете.
3. Составляете годовой план, сохраняете.
4. Включаете автоматический режим, сохраняете.
5. Кнопка Перезапуск.

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

Преимущества


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

Недостатки


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

Файлы


action.cgi — обработчик post-запросов от странички;
index.cgi — необходим как часть модуля CyberWrt;
json.cgi — парсер JSON на shell-скрипте;
scheduler.cgi — формировать задания для crond;

main.html — основная страничка;
style.css — стили для вкладок;

jquery-1.11.0.min.js — библиотека jQuery;
main.js — содержит классы для работы с объектами на страничке: расписаниями, настройками, планом и т.д.
webtoolkit.base64.js — кодек Base64;

*.json — конфигурационные файлы;
*.mp3 — мелодии;

log.txt — журнал сообщений, циклически перезаписывается.

Прочее


Исходники распространяются свободно, бесплатно и на свой страх, как говорится. В качестве звуковой карточки подойдёт простая китайская за 150 р. (она изображена на фото сверху, привинчена при помощи скрепки). Если хотите установить такой звонок у себя в школе, то идите договариваться прямо на приём к директору школы, в частном порядке. Мне не нужно никаких плюшек за реализацию, мне было бы приятно просто знать, если где-то будет работать такое устройство. Единственно, я бы принял в дар для коллекции старые советские звонки типа «Электроника».

Ссылки


1. Исходники на github.
2. Школьник-3. Руководство пользователя (pdf).
3. CyberWrt модуль «Школьник-4» (ветка на форуме).
4. Музыкальный программируемый школьный звонок «Школьник-3».
Tags:
Hubs:
Total votes 46: ↑45 and ↓1 +44
Views 44K
Comments Comments 46