Инструкция: дверной звонок с уведомлениями в Slack
Коллеги в офисе попросили что-нибудь придумать с дверным звонком — чтобы он не шумел на весь офис, но при этом можно было легко узнать о том, что кто-то пришел. Были и другие ограничения: две входных двери, нет возможности провести какие-либо провода к звонку.
Лучше всего под такие ограничения подошла кнопка Amazon Dash для мгновенного заказа товаров в интернет-магазине. Она работает на батарейках и подключается к Wi-Fi. Плюс в интернете есть много инструкций по её непрямому использованию 😄.
Итак, что нужно:
- Кнопка Amazon Dash, которая будет выполнять функции дверного звонка.
- Компьютер Raspberry Pi, который будет отправлять сообщение в Slack.
Сценарий такой: Raspberry видит сигнал, который отправляет Amazon Dash при нажатии на кнопку, и запускает скрипт, который отправляет сообщение в Slack.
1. Готовим Raspberry
Сначала на компьютере записываем образ с операционной системой на SD-карту. Для этого в Terminal на macOS нужно ввести последовательно команды:
Смотрим номер, который соответствует SD-карте. В моём случае это disk2s1, поэтому вместо N в коде ниже подставляю 2.
Вставляем SD-карту в Raspberry и ждем установки.
2. Устанавливаем Node.js
Наш скрипт, который будет отслеживать сигнал и отправлять сообщение в Slack, работает на Node.js. Поэтому первым делом ставим его.
3. Устанавливаем библиотеку для мониторинга сети
Библиотека libpcap нужна для того, чтобы отслеживать в локальной сети пакеты данных, которые отправляет Amazon Dash.
4. Устанавливаем скрипт для работы звонка
На GitHub можно найти много готовых скриптов для работы с Amazon Dash и Slack. Я взял dashdong за основу, адаптировав несколько параметров для нашего офиса.
Копируем любой из этих скриптов на Raspberry и устанавливаем.
5. Подключаем кнопку через приложение Amazon
Теперь нужно подключить Amazon Dash к Wi-Fi. В приложении Amazon заходим в настройки профиля и добавляем новое устройство.
Следуя инструкции вводим пароль от Wi-Fi, подключаем кнопку к сети и доходим до вот этого экрана с выбором продукта:
Здесь ничего не нажимаем и принудительно закрываем приложение.
6. Ищем MAC-адрес кнопки
Amazon Dash подключена к сети. Теперь нужно узнать её Mac-адрес. Вводим на Raspberry команду:
Скрипт начнет сканирование и выведет список всех устройств, обнаруженных в сети. Нажимаем на кнопку, чтобы она отправила запрос и ищем вот такую строчку:
Сохраняем MAC-адрес.
7. Подключаем Slack
Заходим в настройки Slack и создаём новую интеграцию: выбираем канал, в который нужно отправлять сообщения, и копируем Webhook URL.
8. Создаём файл с настройками
Возвращаемся к Raspberry, создаем файл с настройками config.json, вставляем в него следующее:
Вместо MAC-АДРЕС — то, что получили на 4-м шаге. Вместо WEBHOOK-ИЗ-SLACK — то, что скопировали на 6-м шаге.
Если нужно установить кнопки на несколько дверей, то добавляем в config.json сразу несколько конфигураций:
9. Запускаем
Всё готово. Но нужно ещё сделать так, чтобы скрипт работал постоянно — даже после перезагрузки Raspberry. Для этого устанавливаем supervisor и открываем файл с настройками.
В настройках указываем путь к скрипту.
Сохраняемся. Запускаемся.
10. Проверяем
Жмём.
Смотрим:
Хабрахабр переехал на vc?)
Добро пожаловать на https://vc.ru/dev :)
Как-то все просто, надо было через IBM Watson попробовать
Берём ESP8266 (150 руб на али), берём ОБЫЧНУЮ кнопку за 20 руб. И отправляем сообщения куда угодно: VK, Телеграм, Push-сервисы, СМС и т.д.
Делал такое у себя на Wemos (китайский ардуино за 150 руб) + обычная кнопка: https://github.com/UksusoFF/wemos-doorbell Сейчас все равно пришлось прикрутить RPI чтобы еще и картинку с камеры приклеивала.
А сколько месяцев от батареи у вас этот звонок проживет?
VC спасибо, это крутая рубрика :)