notion image
小米2023年IoT生态伙伴大会上宣布小米IoT平台开放个人开发者后,2023年12月1日开启了1000名的内测申请,对于对首批申请的个人免费送了个小米IoT开发板。
notion image
之前只是把个人开发相关的文档看了后,最近才有时间来折腾折腾。
notion image
开发板如下图,收到后忽然发现自己之前就在小黄鱼上收过一个小米IoT的开发版,之前也就随便折腾了下,因为缺数据没有继续弄了。后面有空对比下是不是一样的功能。
notion image
面向个人开发者开放的目前只有MCU对接模式,只能使用小米IoT模组连接到小米IoT平台。这种模式需要两块MCU,小米IoT模组负责连接到云端和与业务MCU进行串口通信,物料成本是相对较高的。
下面是记录下实际操作过程,以及其中遇到的一些问题。

嵌入式端开发

嵌入式端开发在小米IoT开发平台上叫【固件开发指南】。

连接串口

首先将收到的开发小板和串口板连线接好,模组的详细资料见【模组页面】,连串口线参考下图:
notion image
串口线连好后接到电脑上。
notion image
notion image

日志串口

区分好日志串口和主控通信串口后,在串口调试助手中配置好参数(需要开启两个串口调试助手,一个日志串口查看日志,一个主控通信串口与开发板通信),按了CHIP_EN按键后,从串口助手可以看到日志串口的输出。
串口配置:波特率: 115200 数据位: 8 奇偶校验: None 停止位: 1,注意:RTS/CTS 不要选。
 
notion image
除了ESP芯片启动时默认打印的相关信息,还有小米固件的相关信息,如固件版本,小米IoT平台设备ID等
notion image

MCU命令串口

官方完成串口指令说明见:【串口指令】。常用的一些串口命令如下图。
notion image
最简单的测试指令get_down,大多数情况下会返回down none
notion image
指令 set_log_level 0 设置 log 打印等级,0:代表 log 打印等级为 debug,1:代表 log 打印等级为 info,5:关闭 log
notion image
notion image
指令 help 可以查询模组所有支持的指令和参数格式
notion image
 

配置信息与配网

在【小米IoT开发者平台】上,点击【通断器/继电器控制模块模板】
notion image
获取到【产品Model】和【产品ID】的值,并通过串口指令配置到开发模块上
设置完后才能使用APP给开发板配网,否则搜不到设备。
notion image
串口下发指令如下
设置完成后可以在米家APP上搜到设备并且可以给设备配网。
PS:正式版本APP和调试版本APP都是可以的。调试版本APP下载见:https://github.com/MiEcosystem/miot-plugin-sdk?tab=readme-ov-file#调试环境
非个人开发者的账号登录米家能不能搜到开发设备没有试过,如果添加设备没有搜索到开发设备,可能得登录个人开发者的账号。
notion image
但是正式版本APP和调试版本APP我这都点不进详情页,提示无法下载插件。
iOS正式版APP在设置里打开开发者选项会提示使用Beta版米家进行调试。
notion image
 

响应APP控制指令

在APP上点击开关之后,命令串口获取到最新状态,更新结果后,APP上UI才会更新成功。指令交互和设备返回响应如下
使用串口调试助手可以模拟响应,实测是可以成功更新APP状态的。
notion image

模拟主控MCU

使用串口调试助手模拟响应APP发送的控制状态变化,操作起来有点麻烦了,所以使用Python脚本通过串口将这个流程自动化了。
参考了官方对外接MCU程序开发的流程图,实现了连上串口后基本设置、APP控制响应、随机更新开关状态等一些功能,方便使用APP控制和后面的APP拓展程序开发。
notion image
运行了设备仿真脚本后 python3 src/device_emulation.py ,如下图选择对应的串口,后面就会主动下发基本配置,轮训 get_down 指令,自动响应云端的控制和查询状态。
notion image

📎 参考资料

 
Orika、Spring.BeanUtils、BeanCopier及其他对象映射框架性能对比如何使用弱网模拟工具优化智能家居设备性能:Clumsy与tc/netem指南
Loading...