Датчик занятости ванной комнаты на Raspberry Pi с голосовыми и SMS-уведомлениями через Twilio
Обзор
Во время обучения в Hacker School мы заметили, что две ванные комнаты — одна рядом с основным рабочим пространством, другая на нижнем уровне — могли бы выиграть от индикатора занятости в реальном времени. Зная, занята ли ванная, перед тем как спускаться вниз, можно сократить лишнее ожидание и повысить удобство.
Наше решение позволяет проверять статус ванной по телефону или SMS. Простой датчик света, подключенный к Raspberry Pi, отслеживает освещение: если свет включен, система считает ванную занятой.
Raspberry Pi периодически отправляет обновления на Flask-приложение, размещенное на Heroku, которое также принимает входящие запросы от Twilio. Когда пользователь звонит или отправляет сообщение на выделенный номер Twilio, приложение отвечает текущим статусом занятости — либо голосом (text-to-speech), либо SMS.
Помимо голосового/SMS-интерфейса, @gelstudios разработал интуитивную веб-панель, отображающую состояние датчика в реальном времени.
Серверная часть
Twilio
Twilio — облачная платформа связи, упрощающая отправку и получение звонков и SMS через REST API. Мы использовали библиотеку Twilio для Python и руководства Quickstart для подключения нашего номера к эндпоинтам Flask.
Heroku
Heroku предоставляет управляемую платформу для развертывания полноценных приложений. Следуя руководству Heroku Dev Center, мы настроили Python/Flask-приложение и открыли его через HTTPS для безопасной связи с Twilio.
Код сервера
Полный исходный код веб-приложения доступен на GitHub: twilio-light-sensor-server/run.py.
Маршруты /twilio/voice и /twilio/text принимают входящие запросы от Twilio. В зависимости от типа обращения (звонок или SMS) сервер формирует ответ с текущим статусом занятости и возвращает его Twilio для доставки голосом или текстом.
Маршрут /update получает HTTP POST от датчика на Raspberry Pi. Каждая полезная нагрузка должна содержать параметры sensor_id и sensor_val для идентификации источника и обновления внутреннего состояния.
Подробнее см. в оригинальном описании проекта: Голосовой и SMS-датчик света на Raspberry Pi и Twilio.
Производственный процесс
- Подключение нескольких DS18B20 1-Wire датчиков к Raspberry Pi для точного мониторинга температуры
- ИК-датчик температуры TMP006 с Raspberry Pi: библиотека Python и руководство по настройке
- Логирование и график событий 24-В термостата с оптопарой и Raspberry Pi
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Построение низкобюджетного датчика влажности почвы на Raspberry Pi для умного полива
- Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
- Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
- Создайте свой первый IoT-проект с Raspberry Pi, DHT11 и ThingSpeak
- Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности