使用小爱控制继电器开关的Arduino程序
需积分: 9 48 浏览量
更新于2024-08-05
收藏 2KB TXT 举报
"小爱控灯程序之二,通过Arduino控制继电器开关,实现智能音箱(如小米的小爱同学)对灯光的语音控制。"
该程序是基于Arduino平台设计的,目的是通过小爱同学(或其他支持BLINKER协议的智能音箱)来控制继电器,从而实现对灯光的开关操作。程序中主要涉及以下知识点:
1. **BLINKER库**:BLINKER是一个物联网通信库,支持多种智能设备与云端平台的数据交互。在这个程序中,它使得Arduino能够接收来自小爱同学的命令并作出响应。
2. **设备密钥(auth)**:`char auth[]="888888888";` 是设备的密钥,这是连接到BLINKER云服务的关键,需要在BLINKER App中获取并填入代码。
3. **WiFi配置**:`char ssid[]="**********";` 和 `char pswd[]="88888888";` 分别是WiFi的SSID和密码,用于让Arduino设备连接到路由器,从而可以与云端通信。
4. **GPIO口定义**:`int GPIO=0;` 定义了用于控制继电器的GPIO引脚。`pinMode(GPIO, OUTPUT);` 设置该引脚为输出模式,以便控制继电器。
5. **继电器控制**:继电器是一种电子开关,通过低电平触发。在程序的开始,`digitalWrite(GPIO, HIGH);` 初始化GPIO为高电平,使继电器断开,即关闭灯光。当需要改变状态时,通过`digitalWrite(GPIO, !digitalRead(GPIO));` 来切换GPIO的高低电平,达到控制继电器的目的。
6. **事件回调函数**:`void button1_callback(const String& state)` 是针对BLINKER Button的回调函数,当小爱同学收到按钮操作的指令时,此函数会被调用,用来改变GPIO的状态。
7. **BLINKERMIOT对象**:`BlinkerMIOT.powerState("on/off");` 用于向云端发送设备状态的变化,如开启或关闭。`BlinkerMIOT.print();` 用于发送当前设备状态到云端。
8. **语音命令处理**:`miotPowerState()` 函数处理从云端接收到的电源状态指令,根据`state`参数判断是打开(ON)还是关闭(OFF)灯光,并通过GPIO控制继电器动作。
9. **初始化与连接**:`Blinker.begin(auth, ssid, pswd);` 开始初始化BLINKER连接,使用设备密钥、WiFi SSID和密码连接到云端。
10. **事件绑定**:`Button1.attach(button1_callback);` 和 `BlinkerMIOT.attach(BLINKER_CMD_POWER, miotPowerState);` 将回调函数绑定到特定的事件,使得在按钮操作或云端指令到达时能正确响应。
通过这个程序,用户可以通过语音命令“小爱同学,开灯/关灯”来控制家中的灯光,实现了智能家居的基本功能。同时,这也为扩展其他IoT应用提供了基础,例如添加更多的传感器或控制设备,构建更复杂的智能系统。
2020-02-20 上传
2021-06-12 上传
点击了解资源详情
2024-10-26 上传
2021-01-06 上传
夏天132
- 粉丝: 27
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建