Удаленное управления сигнализацией с телефона или компьютера

Вступление

В нашем офисе есть стоянка для велосипедов. Для нее была куплена китайская сигнализация с пультом управления. Возникла идея удаленно включать/выключать сигнализацию. Из имеющегося в наличии железа была плата Punch Through LightBlue Bean. На борту платы оказался датчик температуры, который мы тоже задействуем. Пусть в офисный чат ежедневно нам температуру в офисе сообщает.
Задачи

• Создание удаленного управления сигнализацией с телефона или компьютера
• Информирование о температуре в помещении в мессенджер Slack

Компоненты

• Punch Through LightBlue Bean
• Блок питания сигнализации 5V
• Преобразователь напряжения DC-DC 5V–3.3V
• Сигнализация с инфракрасным пультом управления
• Офисный сервер — Mac mini

Программы

• Приложение для LightBlue Bean
• Web сервер на Mac mini
• Серверное приложение для управления LightBlue Bean через Bluetooth
• Скрипты для автоматического управления сигнализацией
• Скрипты для оповещения в мессенджер Slack
• Программа для мобильного телефона (удаленное включение/отключение сигнализации)

Общая схема работы
9f748434b14c4ab9be2a89806da5577f.jpg
Управления сигнализацией происходит с мобильного устройства по протоколу http через web сервер установленный на Mac mini.

Сервер после получения http запроса запускает приложение, которое связывается с LightBlue Bean по Bluetooth выполняя заданные команды.

Схема подключение сигнализации к LightBlue Bean
430b4ad2419b42d5b35642c516e7a96c.jpg
Серверные скрипты

Скрипты позволяют отключать/включать сигнализацию по команде или по таймеру на заданное время и реализуют возможность автоматической отправки сообщения о температуре в помещении в мессенджер Slack.

Мобильное приложение

Для управления сигнализацией я добавил функционал в уже созданное приложение для удаленного открытия дверей и просмотра камер. Авторизация в приложении по Gmail. FireBase для хранения профиля и настроек.

Фото в процессе сборки

199ad2f660104e178956c19e7a2dee13.jpg

d6ddd9aa9553445182de50094143bc9a.jpg

05562187d8514e45b86d02f45ff5de72.png

92eaa9ec61e04b07a67c4e7e1b6c3664.PNG

© Geektimes