Датчик освещенности с поддержкой голоса и SMS с использованием Raspberry Pi и Twilio
Обзор
В Хакерской школе для нашей группы было два туалета:одна примыкала к основной рабочей зоне, а другая - внизу. Мы подумали, что было бы неплохо узнать, занята ли ванная, прежде чем идти вниз.
В нашем проекте есть возможность узнавать статус санузла по телефону или с помощью текстового сообщения.
Статус занятости ванной комнаты определяется с помощью датчика освещенности, подключенного к Raspberry Pi. Если в ванной горит свет, мы предполагаем, что ванная комната занята.
Мы создали веб-приложение, размещенное на Heroku, которое принимает периодические обновления состояния ванной комнаты от Raspberry Pi и обрабатывает входящие запросы от Twilio. Когда пользователь звонит или отправляет текстовое сообщение по номеру телефона Twilio, Twilio отправляет запрос в веб-приложение, которое отвечает соответствующим сообщением, которое будет озвучено или отправлено пользователю.
Помимо голосового / SMS-интерфейса, @gelstudios создал для проекта красивый веб-интерфейс.
Сервер
Twilio
Twilio - это веб-сервис для отправки и получения телефонных звонков и текстовых SMS-сообщений. Он предоставляет простой в использовании API, доступный через HTTP, и удобный пакет Python. Доступна бесплатная пробная версия службы (которая вставляет небольшие уведомления в исходящие сообщения). В качестве введения мы использовали учебные пособия по Twilio Python Quickstart.
Heroku
Heroku - это сервис, который предоставляет полный интегрированный стек для размещения веб-приложений с широким выбором языков, фреймворка, веб-сервера и хранилища данных. Мы создали серверное приложение для проекта на Python с использованием микрофреймворка Flask. Статья Центра разработки Heroku "Начало работы с Python на Heroku" - хорошее пошаговое руководство по настройке Flask на Heroku.
Код сервера
Полный исходный код веб-приложения можно найти на github.com/qqrs/twilio-light-sensor-server/blob/master/run.py.
/ twilio / voice
и / twilio / text
routes обрабатывают запросы от Twilio. Когда пользователь звонит или отправляет SMS-сообщение на номер телефона, присвоенный нашей учетной записи, Twilio настроен таким образом, что он будет выполнять HTTP-запрос POST для этих маршрутов. Когда сервер получает запрос от Twilio, он генерирует соответствующее сообщение, указывающее состояние ванной комнаты. Сообщение возвращается Twilio в HTTP-ответе и отправляется пользователю в виде аудио (преобразованием текста в речь) или в виде SMS-сообщения.
/ update
route принимает обновления состояния датчика от удаленного датчика через HTTP POST. Каждый запрос включает sensor_id
и sensor_val
параметры для идентификации датчика и отчета о текущем значении.
Подробнее:Датчик освещенности с поддержкой голоса и SMS с использованием Raspberry Pi и Twilio
Производственный процесс
- Измерение температуры с помощью однопроводного датчика DS18B20 и Raspberry Pi
- Библиотека Python датчика температуры TMP006 с использованием Raspberry pi,
- Журнал и график событий термостата 24 В (оптопара + Raspberry Pi) с использованием малины
- Датчик температуры Python и Raspberry Pi
- Датчик движения с использованием Raspberry Pi
- Датчик влажности почвы Raspberry Pi
- Датчик температуры и освещенности Raspberry Pi
- Управление датчиком и исполнительным механизмом Raspberry Pi
- Создайте свой первый IOT с помощью Raspberry Pi, датчика DHT11 и Thingspeak.
- Аэропоника с Raspberry Pi и датчиком влажности