Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Включение Alexa Control для потолочного вентилятора

Компоненты и расходные материалы

Raspberry Pi 3, модель B
× 1
Arduino UNO
× 1
Реле (универсальное)
достаточно либо реле на 5 В, чтобы вы могли напрямую взаимодействовать с Arduino, либо платы интерфейса реле
× 1
Регулятор вентилятора
вы можете использовать любой тип, как только вы можете найти терминал для подачи питания на него. Я бы порекомендовал стабилизаторы старого типа, в которых использовались резистивные блоки для уменьшения подаваемого напряжения
× 1

Необходимые инструменты и машины

Паяльник (общий)

Приложения и онлайн-сервисы

IDE Arduino
Amazon Alexa Alexa Skills Kit
Ngrok

Об этом проекте

Здесь я подробно расскажу, как я сделал свой обычный потолочный вентилятор умным, интегрировав Amazon Alexa для управления его скоростью. Мы будем использовать набор навыков amazon alexa, чтобы инициировать изменение скорости, и это будет ngrok служба туннелирования для перенаправления запроса на наш локальный сервер RPi, который сообщит нашему Arduino uno включить соответствующее реле.

Настройка нашего локального сервера Raspberry Pi

нам нужны следующие службы для использования на нашем сервере.

  • Python PIP:для установки пакетов python, если вы используете python 2.7, или 3 pip будут установлены по умолчанию, поэтому вы можете избежать этого шага.
  sudo apt-get install python-pip  
  • Flask:Flask - это пакет для Python, который поможет вам легко реализовать серверы Python.
  pip install flask  
  • flask ask:расширение flask, используемое для простого создания дружественных программ alexa.
  pip install flask-ask  
  • pyserial:модуль последовательной связи для python
  sudo apt-get install pyserial  
  • libpython2.7-dev
  sudo apt-get intall libpython2.7-dev  

все необходимые модули установлены, пора запустить сервер. нам нужно ввести скрипт Python для того же

  from flask import Flaskfrom flask_ask import Ask, statementimport requestsimport jsonimport serial ser =serial.Serial ("/ dev / ttyAMA0", 9600) app =Flask (__ name __) ask =Ask (app, '/') @ [email protected] ("FanOn") def on ():ser.write (b'1 ') return statement ("Потолочный вентилятор включен.") @ ask.intent ("FanOff") def off () :ser.write (b'0 ') return statement («Потолочный вентилятор выключен.») @ ask.intent («FanLevelUp») def up ():ser.write (b' + ') return statement («Потолочный вентилятор ускориться. ") @ ask.intent (" FanLevelDown ") def down ():ser.write (b'- ') return statement (" Ceiling Fan speed down. ") if __name__ ==" __main__ ":app.run (отладка =True)  

Запустите этот скрипт python и включите его в список автозапуска вашего RPi.

3. Скачать Ngrok

Ngrok - это безопасная платформа для туннелирования, позволяющая подключить ваше устройство к сети. С помощью этой платформы вы можете очень просто сделать свое веб-приложение или любое приложение онлайн. Для загрузки перейдите на официальный сайт и загрузите для ARM.

https://ngrok.com/

Разархивируйте его и перейдите в каталог, в который вы его распаковали. Запустите его с помощью команды

  ./ngrok http 5000  

Алекса Навык

Перейдите на страницу разработчика Amazon и зарегистрируйтесь для своей учетной записи разработчика

https://developer.amazon.com/

Войдите в консоль разработчика после входа в систему и выберите "Набор навыков Alexa"

теперь выберите «Добавить новый навык»

Введите название вашего навыка и введите имя вызова. убедитесь, что ваше имя вызова соответствует необходимым условиям

сохранить и перейти к следующему шагу

здесь введите намерения для вызова навыка и примеры произнесения, т. е. словосочетания, которые будут инициировать каждое намерение.

намерения заключаются в следующем

  {"намерение":[{"намерение":"FanOn"}, {"намерение":"FanOff"}, {"намерение":"FanLevelUp"}, {"намерение":"FanLevelDown" }]}  

образцы высказываний

  FanOn сказать вентилятор onFanOn сказать onFanOff сказать offFanOff сказать вентилятор выключенFanLevelUp сказать FanLevelUp повысить уровень вентилятора сказать увеличить скорость вентилятора 

Сохраните и переходите к следующему этапу. здесь вам нужно будет ввести местоположение, в которое вы должны отправить данные после вызова намерения.

поскольку мы используем ngrok , выберите HTTPS, и введите безопасную ссылку, созданную в ngrok serve, сохраните ее и перейдите к следующему шагу

выберите второй вариант для SSL-сертификата и продолжайте

Чтобы проверить, работает наша установка или нет. Убедитесь, что ваш сервер ngrok работает и скрипт Python также работает, иначе он не будет работать.

мы видим, что серверы получают запрос и обновляют его.

Код Arduino

загрузите прикрепленный эскиз вашего Arduino и подключите его к Raspberry Pi, как показано на схеме.

  int Fan [] ={13,12,11,10,9,8}; int n =0; void reset (); void set (char); void setup () {// поместите здесь свой установочный код, чтобы запустить его один раз:for (int i =0; i <6; i ++) {pinMode (Fan [i], ВЫХОД); } Serial.begin (9600); } void loop () {char x; если (Serial.available ()) {x =Serial.read (); перезагрузить(); set (x);}} void reset () {for (int i =0; i <6; i ++) {digitalWrite (Fan [i], LOW); }} недействительный набор (char x) {переключатель (x) {case '1':n =1; ломать; регистр '+':n ++; ломать; case '-':n--; ломать; case '0':n =0; ломать; } digitalWrite (Fan [n], HIGH);}  

Аппаратное обеспечение

подключите оборудование, как показано на схеме

Счастливого создания. аналогичным образом активируйте голосовое управление любого другого устройства :)

Код

  • эскиз Arduino
  • Код сервера Python
эскиз Arduino Arduino
загрузите этот код на свой arduino и подключите его к серверу raspberry pi
 int Fan [] ={13,12,11,10,9,8}; int n =0; void reset (); void set (char); void setup () {// поместите здесь свой установочный код, чтобы запустить его один раз:for (int i =0; i <6; i ++) {pinMode (Fan [i], ВЫХОД); } Serial.begin (9600); } void loop () {char x; если (Serial.available ()) {x =Serial.read (); перезагрузить(); set (x);}} void reset () {for (int i =0; i <6; i ++) {digitalWrite (Fan [i], LOW); }} недействительный набор (char x) {переключатель (x) {case '1':n =1; ломать; регистр '+':n ++; ломать; case '-':n--; ломать; case '0':n =0; ломать; } digitalWrite (Fan [n], HIGH);} 
Код сервера Python Python
un этот код в вашем spython после того, как ngrok настроен так, чтобы получать данные
 из flask import Flaskfrom flask_ask import Ask, statementimport requestsimport jsonimport serial ser =serial.Serial ("/ dev / ttyAMA0", 9600) app =Flask (__ name__ ) ask =Ask (app, '/')@[email protected]("FanOn")def on ():ser.write (b'1') return statement («Потолочный вентилятор включен.») @ ask.intent ("FanOff") def off ():ser.write (b'0 ') return statement ("Потолочный вентилятор выключен.") @ ask.intent ("FanLevelUp") def up ():ser.write (b '+') оператор return («Скорость потолочного вентилятора увеличена.») @ ask.intent («FanLevelDown») def down ():ser.write (b'- ') оператор return («Скорость потолочного вентилятора снизилась». ) if __name__ =="__main__":app.run (debug =True) 

Схема

вот как вы соединяете устройства вместе

Производственный процесс

  1. Создание сети беспроводных датчиков в вашем доме
  2. Управление монетоприемником с помощью Arduino
  3. Центр управления Arduino
  4. Светодиоды, управляемые Alexa через Raspberry Pi
  5. Arduino с Bluetooth для управления светодиодом!
  6. Управление увлажнителем Arduino
  7. Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика
  8. Управляйте своим светодиодом с помощью Cortana
  9. Полный контроль над вашим телевизором с помощью Alexa и Arduino IoT Cloud
  10. 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno