通过树莓派用 Alexa 控制 LED - 简单分步指南
所需组件与材料
| 树莓派 3 Model B | ×1 |
| Arduino UNO | ×1 |
| LED(通用) | ×2 |
| 电阻 100 欧姆 | ×1 |
| 面包板(通用) | ×1 |
| Amazon Alexa Echo | ×1 |
所需应用与在线服务
- Arduino IDE - 用于上传 Firmata 固件到 Arduino
- Node-RED - 运行在树莓派上,连接 Alexa 与 Arduino
项目简介
通过树莓派上的 Node-RED,让 Alexa 与 Arduino 通信其实非常简单。只需安装两个 Node-RED 模块(Arduino 节点和 Alexa Local 节点),然后配置一个 Node-RED 流程即可。本项目演示如何用语音控制两盏 LED 灯的开关。
步骤 1:准备树莓派
确保树莓派已安装操作系统、连接网络并启用 SSH。更新系统包:
sudo apt update && sudo apt upgrade -y
步骤 2:安装 Node-RED
使用官方安装脚本:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
安装完成后,启用并启动服务:
sudo systemctl enable nodered.service
sudo systemctl start nodered.service
在浏览器访问 https://<树莓派IP>:1880 打开 Node-RED 编辑器。
步骤 3:安装 Arduino 节点并上传 Firmata
- 在 Node-RED 编辑器右上角菜单选择“管理调色板” → “安装” → 搜索
node-red-node-arduino并安装。 - 打开 Arduino IDE,选择 文件 → 示例 → Firmata → StandardFirmata,上传到 Arduino UNO。
- 用 USB 线将 Arduino 连接到树莓派。
步骤 4:安装 Alexa Local 模块
在 Node-RED 调色板管理中搜索并安装 node-red-contrib-alexa-local。该模块让 Node-RED 模拟成本地智能设备,供 Alexa 发现。
步骤 5:导入 Node-RED 流程
在 Node-RED 编辑器中点击右上角菜单 → 导入 → 粘贴下方 JSON 代码 → 点击导入。部署后,流程将包含两个 Alexa Local 节点(分别命名为 "yellow light" 和 "green light")和两个 Arduino 输出节点(分别控制引脚 11 和 12)。
步骤 6:测试
- 在 Alexa App 中添加设备,搜索发现 "yellow light" 和 "green light"。
- 对着 Echo 说:“打开 yellow light”、“关闭 green light”等指令,观察 LED 亮灭。
- 如有问题,检查 Node-RED 调试面板输出,确认消息传递正常。
Node-RED 流程代码
[
{"id":"7cfb7d9e.1371f4","type":"alexa-local","z":"8496b3f6.919b5","devicename":"yellow light","inputtrigger":false,"x":177,"y":175,"wires":[["b9b6f9c0.383058","677a99d9.49b6c8"]]},
{"id":"b9b6f9c0.383058","type":"debug","z":"8496b3f6.919b5","name":"","active":true,"console":"false","complete":"true","x":336,"y":233,"wires":[]},
{"id":"23e77dc0.c2d532","type":"alexa-local","z":"8496b3f6.919b5","devicename":"green light","inputtrigger":false,"x":157,"y":287,"wires":[["b9b6f9c0.383058","b7bd4e01.3cc47"]]},
{"id":"677a99d9.49b6c8","type":"arduino out","z":"8496b3f6.919b5","name":"","pin":"11","state":"OUTPUT","arduino":"4326cda4.263274","x":530,"y":173,"wires":[]},
{"id":"b7bd4e01.3cc47","type":"arduino out","z":"8496b3f6.919b5","name":"","pin":"12","state":"OUTPUT","arduino":"4326cda4.263274","x":531,"y":291,"wires":[]},
{"id":"4326cda4.263274","type":"arduino-board","z":"","device":"/dev/ttyACM0"}
]
接线原理图
LED 阳极分别接 Arduino 引脚 11、12,阴极串联 100Ω 电阻接地。Arduino 通过 USB 连接树莓派。
制造工艺
- 树莓派控制水培养殖系统:构建指南与代码
- 树莓派 + Python 让 Amazon Alexa 控制 Google Chromecast
- 蓝牙控制树莓派机器人:语音反馈功能构建指南
- Arduino与树莓派构建互联网控制视频流机器人完整指南
- 用 Python 构建 Wi-Fi 控制的树莓派机器人:分步指南
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲