本帖最后由 qhsj 于 2024-8-19 19:12 编辑
参考资料
参考帖子:【电子DIY作品】接入米家通过手机控制led,基于AI-M61-32S https://bbs.aithinker.com/forum.php?mod=viewthread&tid=45129 作者 沈夜
巴法接入TCP协议文档:https://cloud.bemfa.com/docs/src/tcp.html
天猫精灵接入文档:https://cloud.bemfa.com/docs/src/speaker_mall.html
我的思路
-
在巴法云物联网平台注册账号,通过TCP创客云发布led002主题
主题名最后面三位数字002表示灯类设备
-
在手机APP“天猫精灵”通过蓝牙连接家庭里已经联网的天猫精灵设备,再从“技能广场”找到“巴法云”绑定账号,可看到存在一个设备“灯”
-
绑定后,天猫精灵可以识别的口令有以下内容,我只用了“开灯”、“关灯”、“把灯调成红色”、“把灯调成蓝色”、“把灯调成绿色”
-
你对天猫精灵喊这些命令,他会在巴法云对应设备的发布主题,数值就会变成对应的字符串
-
只要M61连接WIFI,并定时通过TCP订阅巴法云指定的主题获取字符串
-
若获取“on”对应打开rgb灯珠的红灯、“off”对应关闭所有灯光、“on#100#16711680”对应打开rgb灯珠的红灯、“on#100#255”对应打开rgb灯珠的蓝灯、“on#100#65280”对应打开rgb灯珠的绿灯
代码
代码用了原作者的,只修改了自己账号的私钥、主题名,还有自己的WIFI账号密码,以及修改了订阅主题获取不同字符串执行对应的点灯动作
代码主函数首先进行板级初始化、rgb灯珠的gpio初始化、TCPIP和WIFI硬件的初始化,在FREERTOS下分三个任务,一个是连接WIFI,一个是TCP连接巴法云的服务器并定时发送心跳数据避免与服务器断开连接,另一个是定时订阅主题获取字符串执行对应的点灯动作
实物现象
|