Проведя некоторое время с продуктом Particle Electron, я с восторгом делюсь некоторыми потрясающими вещами, которые у меня получилось с ним сделать. Мощный, всегда подключенный и идеально подходящий по цене для экспериментов, он станет отличным стартом в вашем путешествии по миру IoT. Сегодня мы дадим вам еще больший толчок, показав, как принимать сообщения с помощью Twilio и делать что-то полезное… например, мигать встроенным светодиодом азбукой Морзе!
На конференции SIGNAL 2017 мы раздали более 1250 устройств Particle Electron с нашим бейджем HackPack v3. Этот переводчик азбуки Морзе будет работать как с розничным Electron, так и с тем, который вы сняли с бейджа — присоединяйтесь в любом случае!
*(Если вы используете Electron из HackPack, пожалуйста, следуйте нашим инструкциям по его привязке к вашему аккаунту, так как конференция уже завершилась.)*
Чтобы запустить наш код, сначала убедитесь, что все ваше оборудование правильно подключено. Для самых основ Particle предоставляет отличные иллюстрации и подробные инструкции. Нам потребуется, чтобы вы:
— Вставили SIM-карту
— Подключили сотовую антенну
— Подключили литий-ионный аккумулятор
— Подключили USB-кабель
— Убедились, что индикатор состояния «дышит» (пульсирует) голубым цветом
Когда Twilio получает входящее SMS или MMS, вы можете направить его на выполнение запроса к вебхуку. *Вебхук* — это просто конечная точка, которую вы создаете. Когда Twilio получает сообщения на определенные номера, мы обращаемся к вашей конечной точке за дальнейшими инструкциями с помощью нашего языка разметки TwiML.
В нашем примере кода используется библиотека Twilio Python Helper Library и микрофреймворк Flask для Python, чтобы как отвечать на запросы вебхуков Twilio с помощью TwiML, так и вызывать простые в использовании функции Particle, которые будут взаимодействовать с нашим Electron.
Вот код, где мы обрабатываем входящие запросы от Twilio и отправляем допустимые из них на наш Particle Electron:
Вы можете видеть, что мы используем REST API облака Particle для отправки строки на устройство, которая в конечном итоге будет преобразована в последовательность точек и тире.
Сначала клонируйте наш репозиторий, затем перейдите в его директорию. Возможно, вы захотите создать виртуальное окружение для Python 3. Мы поможем вам с этим в этом документе.
Далее установите библиотеку Twilio Helper Library:
В файле *environmental.py* показаны три переменные окружения, которые необходимо задать для запуска нашего приложения Flask. Вы можете найти их в веб-IDE Particle.
**PARTICLE_TOKEN** — его можно найти на вкладке «Settings» (значок шестеренки) в разделе «ACCESS TOKEN».
**PARTICLE_DEVICE** — это дружественное имя Electron, которое нужно прошить, его можно найти на вкладке «Devices» веб-IDE.
**PARTICLE_FUNCTION** — это функция, которую нужно вызвать через REST API облака Particle; по умолчанию в нашей прошивке используется ‘led’.
Далее вы можете запустить приложение. Вот как это сделать из командной строки:
Чтобы Twilio мог видеть вашу конечную точку, необходимо открыть к ней доступ из интернета. Один из самых простых способов — использовать ngrok. Наш коллега Кевин объясняет, что такое ngrok, здесь; если вы хотите использовать его, вот как это можно сделать:
Нажмите большую кнопку «Copy This App», чтобы загрузить код в свою IDE. После этого *прошейте* его с помощью значка «Молния»!
Строка азбуки Морзе обновляется асинхронно, поэтому, если вы хотите добавить дополнительную логику для воспроизведения через динамики, включения света или активации… актуаторов, вы можете добавить ее в обычный код функции ‘loop’. Просто оставьте вызов *yield()* в *loop()* файла *web-connected-led.ino*; именно здесь мы проверяем, настало ли время перейти к следующей точке или тире и обновить встроенный светодиод:
Что касается тайминга, мы определили некоторые значения по умолчанию в файле ‘MorseHelper.h’. Каждое из этих определений #define — это задержка в миллисекундах; не стесняйтесь изменять их в своем коде, чтобы лучше соответствовать вашим нуждам в азбуке Морзе.
Остальная часть кода снабжена комментариями для вашего ознакомления — если вам нужна помощь с какой-либо логикой, не стесняйтесь спрашивать нас здесь, как мы делаем этот «вуду»!
И вот у вас есть Particle Electron, который разумно реагирует на SMS и MMS сообщения, отправленные через Twilio. Используете ли вы наш пример для воссоздания сцены с азбукой Морзе из фильма «День независимости» или создадите что-то более… *кхм…* современное, мы надеемся, что это даст вам хорошую основу.
С Particle Electron и обработкой входящих текстовых сообщений с помощью Twilio мы знаем, что вы сделаете большие дела. Обещайте вернуться, когда это произойдет — *мы не можем дождаться, чтобы увидеть, что вы создадите*.