涂鸦智能平台——mcu+nbiot接入云平台上报温湿度和防拆报警
- 准备环境和硬件平台
平台准备
1、注册涂鸦平台账号并登陆
2、创建一个产品产品类型为:温湿度传感器
3、创建数据点(可直接选用平台现有的数据点)
4、设置设备面板(直接选用一个现成的)
5、下载资料(跟创建的设备是一一对应关系)
工具软件准备
1、下载涂鸦模组调试助手(选择nbiot通用协议)
硬件准备
一块涂鸦智能平台提供的nbiot开发板、一块sht30温湿度传感器、一块门磁传感器和我自己做的一块stm32f103c8t6最小系统拓展板
- 具体实现过程
主要就是代码的移植
mcu+wifi移植过程参考:https://developer.tuya.com/cn/docs/iot/device-development/embedded-software-development/mcu-development-access/wifi-mcu-sdk-solution/overview-of-migrating-tuyas-mcu-sdk?id=K9hhi0xr5vll9
我们参照wifi的来移植nb
1、准备一个模板工程,模板工程必须要有一个串口的发送和中断接收程序,用于与nb模组对接,还要一些例如按键和温湿度驱动程序就可以了。
2、在工程的根目录建一个SDK文件夹用于存放涂鸦平台下载的MCU-SDK,删掉其中main.c我们不要
3、打开我们的工程,配置一下我们新加入的SDK以及里面的文件
4、开始改代码,在protocol.c中添加串口发送函数
5、在串口接收中断服务函数里面调用 mcu_api.c 文件内的 uart_receive_input 函数,并将接收到的字符作为参数传入
7、单片机进入 while(1) 循环后调用 mcu_api.c 文件内的 nbiot_uart_service() 函数
官方给出的注意点:MCU 必须在 while(1) 中直接调用 mcu_api.c 内的 nbiot_uart_service() 函数。程序正常初始化完成后,建议不进行关中断,如必须关中断,关中断时间必须短。关中断会引起串口数据包丢失,请勿在中断内调用上报函数
8、打开 protocol.c 找到函数 all_data_update(void),在需要上报数据的地方调用一次,就会上报全部数据
官方给出注意:用户请勿随意调用 all_data_update() 函数,该函数会在特定时间主动调用(我实验得出好像是五分钟会上报一次)
9、单个 DP 数据上报
在单个 DP 点状态发生变化时,MCU 需要主动上报,App 更新显示内容。上报格式为 mcu_dp_xxxx_updata(DPID_X,n),其中DPID_X 为状态改变的 DP 点。all_data_update() 内的函数,均可单独调用。
10、DP 数据下发处理函数
在 protocol.c 文件中,每个可下发的 DP 点,都有一个单独下发数据处理函数。格式为 dp_download_xxx_handle(),xxx 为可下发 DP 点。函数解析功能点之后,MCU 需在相应位置完成逻辑控制
- 总结遇到的问题及解决办法
单片机串口3与nbiot通讯模块串口1对接
上报的数据要为整数