用 Alexa 控制吊扇:分步指南
元件与材料
| Raspberry Pi 3 Model B | ×1 |
| Arduino UNO | ×1 |
| 继电器模块 (5V 直驱或带光耦隔离) | ×1 |
| 风扇调速器 (阻性分压型) | ×1 |
必需工具
- 电烙铁
应用与在线服务
- Arduino IDE
- Amazon Alexa Skills Kit
- Ngrok 内网穿透服务
项目简介
将普通吊扇改造成 Alexa 语音控制智能风扇。Alexa 技能触发意图,通过 Ngrok 隧道转发到本地树莓派 Flask 服务器,串口指令控制 Arduino 切换继电器,改变调速器供电档位实现开关/调速。
树莓派本地服务器搭建
安装依赖:sudo apt-get install python-pip (Python 2.7/3 自带 pip),pip install flask flask-ask,sudo apt-get install python-serial libpython2.7-dev。编写 Flask-Ask 服务监听 5000 端口,处理四个意图:FanOn、FanOff、FanLevelUp、FanLevelDown,分别向串口发送 '1'、'0'、'+'、'-'。设为开机自启。
Ngrok 隧道
下载 ARM 版 Ngrok,解压运行 ./ngrok http 5000 获取 HTTPS 公网地址。
Alexa 技能配置
Amazon Developer Console 创建技能,调用名如 "ceiling fan"。定义四个意图及示例语句(如 "say fan on", "increase fan speed")。端点选择 HTTPS,填入 Ngrok 生成的地址,SSL 证书选 "My development endpoint has a certificate from a trusted CA"。测试前确保 Ngrok 和 Flask 服务均运行。
Arduino 代码
上传草图,串口 9600 接收指令控制 6 路继电器 (引脚 8-13) 对应调速器 0-5 档。'1' 开启一档,'+' 档位+1,'-' 档位-1,'0' 全关。
int Fan[] = {13,12,11,10,9,8};
int n=0;
void reset() { for(int i=0;i<6;i++) digitalWrite(Fan[i], LOW); }
void set(char x) {
switch(x) { case '1': n=1; break; case '+': n++; break; case '-': n--; break; case '0': n=0; break; }
digitalWrite(Fan[n], HIGH);
}
void setup() { for(int i=0;i<6;i++) pinMode(Fan[i], OUTPUT); Serial.begin(9600); }
void loop() { if(Serial.available()) { char x=Serial.read(); reset(); set(x); } }
硬件连接
树莓派串口 (TX/RX) 接 Arduino USB 或 GPIO 串口,继电器模块接 Arduino 对应引脚,继电器常开触点串联在风扇调速器供电回路中。调速器建议使用老式阻性分压型,便于继电器切换档位。
代码
- Arduino 草图 (见上)
- Python Flask-Ask 服务器代码 (见上)
原理图
设备连接示意图:
制造工艺
- 打造低成本家庭无线传感器网络:Arduino + 树莓派 + Xively 物联网平台
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino 电源控制中心:N-FET/P-FET/继电器/RTC 多功能扩展板
- 通过树莓派用 Alexa 控制 LED - 简单分步指南
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
- Windows 10 Cortana 蓝牙控制 Arduino LED:UWP 应用开发全流程
- 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
- Arduino OpenTherm 智能供暖控制:实现中央供暖系统的监控与自动化
- Alexa 语音控制 Arduino 智能家居中枢:基于 Yun + PubNub + AWS Lambda 全栈实现
- Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试