亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

对吊扇启用 Alexa Control

组件和用品

Raspberry Pi 3 B 型
× 1
Arduino UNO
× 1
中继(通用)
5V 继电器以便您可以直接与 arduino 接口或继电器接口板就足够了
× 1
风扇调节器
您可以使用任何类型,只要您能找到为其供电的终端即可。我会建议使用电阻块来降低提供的电压的老式稳压器
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE
亚马逊 Alexa Alexa 技能套件
Ngrok

关于这个项目

我将在这里详细介绍我如何通过集成 Amazon Alexa 来控制相同的速度,使我的普通吊扇成为一个智能吊扇。我们将使用 amazon alexa 技能集来启动速度更改,并且将是 ngrok 隧道服务将请求路由到我们本地的 RPi 服务器,它会告诉我们的 Arduino uno 打开相关的中继。

设置我们本地的树莓派服务器

我们需要以下服务来使用我们的服务器。

  • Python PIP :安装python包,如果你使用的是python 2.7或3 pip 将默认安装,因此你可以避免这一步
sudo apt-get install python-pip  
  • Flask:Flask 是 Python 的服务器包,可帮助您轻松实现 Python 服务器。
pip 安装烧瓶 
  • flask ask:用于轻松创建 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("Ceiling Fan opens.")@ask.intent("FanOff")def off() :ser.write(b'0') return statement("Ceiling Fan off.")@ask.intent("FanLevelUp")def up():ser.write(b'+') return statement("Ceiling Fan加速。")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("Ceiling Fan speed down.")if __name__ =="__main__":app.run (debug=True) 

运行这个python脚本,并将这个脚本加入到你的树莓派的自动启动列表中。

3.下载 Ngrok

Ngrok 是安全的隧道平台,可让您的设备在线。使用此平台,您可以以非常简单的方式使您的 Web 应用程序或任何应用程序上线。下载请到官网下载ARM版。

https://ngrok.com/

解压并进入解压目录。使用命令运行它

./ngrok http 5000  

Alexa 技能

转到亚马逊开发者页面并注册您的开发者帐户

https://developer.amazon.com/

登录后进入开发者控制台,现在输入选择“Alexa技能包”

现在选择“添加新技能”

输入技能名称,然后输入调用名称。确保您的调用名称符合必要条件

保存并继续下一步

此处输入技能调用的意图,以及话语示例,即每个意图要启动的词组。

意图如下

{ "intents":[ { "intent":"FanOn" }, { "intent":"FanOff" }, { "intent":"FanLevelUp" }, { "intent":"FanLevelDown" }] } 

样本话语

FanOn 说风扇 onFanOn 说 onFanOff 说 offFanOff 说风扇关闭FanLevelUp 说风扇水平上升FanLevelUp 说增加风扇速度FanLevelDown 说风扇水平下降FanLevelDown 说降低风扇速度 

保存并进入下一阶段。在这里,您必须输入调用意图后希望将数据发送到的位置。

因为我们使用的是 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;if (Serial.available()){ x=Serial.read();重启(); set(x);}}void reset(){ for(int i=0;i<6;i++) { digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1':n=1;休息;案例“+”:n++;休息; case '-':n--;休息;案例'0':n =0;休息; } digitalWrite(Fan[n],HIGH);}  

硬件

按照原理图连接硬件

快乐制作。以类似方式激活任何其他设备的语音:)

代码

  • arduino 草图
  • Python 服务器代码
arduino SketchArduino
将此代码上传到您的arduino并将其连接到您的树莓派服务器
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;if (Serial.available()){ x=Serial.read();重启(); set(x);}} void reset(){ for(int i=0;i<6;i++) { digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1':n=1;休息;案例“+”:n++;休息; case '-':n--;休息;案例'0':n =0;休息; } digitalWrite(Fan[n],HIGH);} 
Python 服务器代码Python
设置 ngrok 后,在您的 spython 中取消此代码以便接收数据
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("Ceiling Fan turn off.")@ask.intent("FanLevelUp")def up():ser.write (b'+') return statement("Ceiling Fan speed up.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("Ceiling Fan speed down." )if __name__ =="__main__":app.run(debug=True)

示意图

这就是您将设备连接在一起的方式

制造工艺

  1. 在家中构建无线传感器网络
  2. 使用 Arduino 控制硬币接收器
  3. Arduino 控制中心
  4. Alexa 通过 Raspberry Pi 控制 LED
  5. Arduino 带蓝牙控制 LED!
  6. Arduino 加湿器控制
  7. Arduino Nano:使用操纵杆控制 2 个步进电机
  8. 使用 Cortana 控制 LED
  9. 使用 Alexa 和 Arduino IoT Cloud 完全控制您的电视
  10. 将您的中央供暖系统连接到 Arduino
  11. 由 Alexa 激活的 Arduino 家庭控制器
  12. 25 kHz 4 Pin PWM 风扇控制与 Arduino Uno