Занимаюсь администрированием серверов и поддержкой веб-сервисов в качестве фрилансера. С ростом количества «подопечных» на простой мониторинг начало требоваться неприлично много времени. Захотелось сделать для себя полноценную информационную панель. Что из этого получилось читайте под катом.
Да, я в курсе, что существует много разных способов получать оперативные оповещения о тех или иных событиях: смартфон, различные дисплеи, индикаторы и даже смарт-часы. Но…
Много лет назад мне понравилась система оповещения о пробках в Яндексе: обычный дорожный светофор, который разными цветами показывал степень загруженности дорог. Реализация Яндекса вдохновила собрать себе нечто подобное, тоже необычное, и чтоб было полезным.
Со временем идея сформировалась – световой короб с цветными светодиодами внутри – вот что мне нужно!
Хочу!..
Изначально хотелось увидеть в готовом продукте:
- управление по Ethernet,
- возможность задавать каждому светодиоду свой цвет и яркость,
- включение по датчику движения, для ночного режима.
Первый! Первый! Приём! Приём!
В качестве протокола для связи выбрал обычный HTTP запрос, в котором REQEST собственно и содержит команду, в виде шестнадцатеричных чисел.
Такой способ показался мне максимально универсальным. Команду легко подать из скриптов, приложений, даже из обычного браузера. Хосты могут быть разными, никак не связанными между собой. Команда из примера будет выглядеть так:
http: //192.168.1.241/05FF800000000000
Мухтар! Ко мне!
Список команд небольшой, но включает необходимый набор:
- Включение отдельного светодиода
- Пакетное включение всех светодиодов
- Настройка датчика движения
Контроллер распознает их по длине.
Управление отдельным светодиодом (8 байт)
NN RR GG BB rr gg bb AA
где:
NN – номер светодиода,
RR GG BB – цвет свечения светодиода,
rr gg bb – второй цвет, при использовании анимации,
AA –длительность перехода между основным и вторым цветом (скорость анимации), при нулевом значении постоянно горит основной цвет.
Диаграмма перехода между двумя цветами, при включённой анимации
Управление всеми светодиодами сразу (288 байт (96 * 3) )
RR GG BB RR GG BB RR GG BB … RR GG BB
где:
RR GG BB – цвет свечения светодиода.
Пакетное управление удобно использовать в случаях, когда необходимо вывести анимацию.
Примечание: если количество светодиодов отличается от 96, команда изменит свой размер под соответствующее количество.
Управление поведением датчика движения (1 байт)
CC
где:
CC – команда.
Список управляющих команд:
00 – OFF, свечение выключено, датчик движения отключен,
01 – ON, свечение включено, датчик движения отключен,
02 – AUTO, свечение включается при реагировании датчика движения.
Длительность работы от датчика движения регулируется переменным резистором на самом датчике. При желании, можно реализовать длительность, определяемую контроллером, и регулируемую через команды.
Сделайте мне красиво!
Хотелось чтоб устройство было не только функциональным, но и радовало глаз внешним видом.
Не смотря на мелкий размер, сами светодиоды очень яркие, поэтому сразу пришла мысль рассеивать его через белый пластик. Больше всего для этой цели подошёл молочный акрил. При прохождении через него, свет рассеивается и приобретает приятное глазу свечение.
Если взять простое прозрачное оргстекло и обклеить плёнкой, это выйдет дешевле, но свет при прохождении сквозь него не будет рассеиваться. И хоть самих светодиодов за плёнкой видно не будет, но пятно света будет чётким, что выглядит на мой вкус некрасиво.
Светодиоды крепятся с обратной стороны клеевым пистолетом. Держатся они при таком способе не слишком надёжно, но и дёргать их там никто не станет. Залудить контакты желательно до поклейки.
С рамкой всё просто, углы по вкусу закругляются, по краю приклеивается алюминиевый или пластиковый профиль, чтоб можно было повесить на стену как картину.
Мне никогда не надоест!
Вариантов расположения индикаторов бесконечное множество, у кого на сколько хватит фантазии. В процессе эксплуатации я ещё не раз буду дорабатывать схему и изменять положение и назначение. На то она и универсальность, надоело одно – сделал другое.
Верхние два ряда – часы, показывающие текущее время. Первый ряд – текущий час, второй ряд – минуты, округлённые до 5 минут в меньшую сторону. Зелёным подсвечены опорные значения (0, 3, 6 и 9).
Далее идут индикаторы разных событий на серверах (на примере отключены).
Шестой ряд – индикатор новых сообщений в соцсетях и почте. Разные индикаторы для разных отправителей. При одном сообщении индикатор просто загорается и горит постоянно. При нескольких – пульсирует. Чем больше сообщений, тем чаще пульсирует.
Нижние два ряда использую по необходимости, для разных временных задач.
Хочу ещё!
В процессе создания приходили разные идеи. Не все пригодились мне, но возможно кому-то они покажутся интересными.
При срабатывания датчика можно отправлять событие на удалённый хост (сервер).
Реализовать Watchdog, чтоб контроллер отслеживал количество времени, прошедшего с момента последнего обращения, и при превышении лимита включал красный индикатор, и мигал им чаще при увеличении периода.
Добавить модуль WiFi для беспроводного функционирования.
Добавить модуль Bluetooth, для прямой связи со смартфоном.
Приложение для смартфона, которое будет проверять различные события: смс и пропущенные вызовы от определённых отправителей, события календаря и т.п.
Ваши варианты функционала предлагайте в комментариях.
Из чего же, из чего же, из чего же, сделаны наши...
Для технической части проекта я использовал следующие компоненты:
– управляемые цветные светодиоды RGB LED 5050 WS2812B (100 шт)
– микроконтроллер Arduino Pro Micro 16 MHz, 32 KB ROM, 2.5 KB RAM
– сетевой адаптер на чипе ENC28J60
– датчик движения
– блок питания на 2А
– акриловое оргстекло, белого цвета, размерами 420 х 300 мм, толщиной 3 мм
– алюминиевый швеллер 10x10x10x1.5 мм
Мы строили-строили и наконец построили!
Для меня польза очевидна:
– время, затрачиваемое на мониторинг серверов существенно сократилось,
– отпала необходимость постоянно проверять почту и сообщения,
– ночью радует автоматически включаемое освещение комнаты,
– гости в восторге от цветомузыки.
Стоимость всех компонентов около 2000 р. (25$). Схему сборки и исходники прошивки можно взять на GitHub.
Автор: pyur