
小米2023年IoT生态伙伴大会上宣布小米IoT平台开放个人开发者后,2023年12月1日开启了1000名的内测申请,对于对首批申请的个人免费送了个小米IoT开发板。

之前只是把个人开发相关的文档看了后,最近才有时间来折腾折腾。

开发板如下图,收到后忽然发现自己之前就在小黄鱼上收过一个小米IoT的开发版,之前也就随便折腾了下,因为缺数据没有继续弄了。后面有空对比下是不是一样的功能。

面向个人开发者开放的目前只有MCU对接模式,只能使用小米IoT模组连接到小米IoT平台。这种模式需要两块MCU,小米IoT模组负责连接到云端和与业务MCU进行串口通信,物料成本是相对较高的。
下面是记录下实际操作过程,以及其中遇到的一些问题。
嵌入式端开发
嵌入式端开发在小米IoT开发平台上叫【固件开发指南】。
连接串口
首先将收到的开发小板和串口板连线接好,模组的详细资料见【模组页面】,连串口线参考下图:

串口线连好后接到电脑上。


日志串口
区分好日志串口和主控通信串口后,在串口调试助手中配置好参数(需要开启两个串口调试助手,一个日志串口查看日志,一个主控通信串口与开发板通信),按了CHIP_EN按键后,从串口助手可以看到日志串口的输出。
串口配置:波特率: 115200 数据位: 8 奇偶校验: None 停止位: 1,注意:RTS/CTS 不要选。

除了ESP芯片启动时默认打印的相关信息,还有小米固件的相关信息,如固件版本,小米IoT平台设备ID等

MCU命令串口
官方完成串口指令说明见:【串口指令】。常用的一些串口命令如下图。

最简单的测试指令
get_down,大多数情况下会返回down none
指令
set_log_level 0 设置 log 打印等级,0:代表 log 打印等级为 debug,1:代表 log 打印等级为 info,5:关闭 log

指令
help 可以查询模组所有支持的指令和参数格式
配置信息与配网
在【小米IoT开发者平台】上,点击【通断器/继电器控制模块模板】

获取到【产品Model】和【产品ID】的值,并通过串口指令配置到开发模块上
设置完后才能使用APP给开发板配网,否则搜不到设备。

串口下发指令如下
设置完成后可以在米家APP上搜到设备并且可以给设备配网。
PS:正式版本APP和调试版本APP都是可以的。调试版本APP下载见:https://github.com/MiEcosystem/miot-plugin-sdk?tab=readme-ov-file#调试环境
非个人开发者的账号登录米家能不能搜到开发设备没有试过,如果添加设备没有搜索到开发设备,可能得登录个人开发者的账号。

但是正式版本APP和调试版本APP我这都点不进详情页,提示无法下载插件。
iOS正式版APP在设置里打开开发者选项会提示使用Beta版米家进行调试。

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

模拟主控MCU
使用串口调试助手模拟响应APP发送的控制状态变化,操作起来有点麻烦了,所以使用Python脚本通过串口将这个流程自动化了。
参考了官方对外接MCU程序开发的流程图,实现了连上串口后基本设置、APP控制响应、随机更新开关状态等一些功能,方便使用APP控制和后面的APP拓展程序开发。

运行了设备仿真脚本后
python3 src/device_emulation.py ,如下图选择对应的串口,后面就会主动下发基本配置,轮训 get_down 指令,自动响应云端的控制和查询状态。
📎 参考资料
【固件开发指南】
【扩展程序开发流程】
- 作者:Yibin
- 链接:https://yibin.dev/article/12a83108-b245-4ca3-bb67-9c818259bd73
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章







