DIY——IoT温度监控系统笔记

RTOS

RT-Thread

使用STM32CubeMX添加RT-Thread
https://www.rt-thread.org/document/site/tutorial/nano/nano-port-cube/an0041-nano-port-cube/


MCU

使用ST官方的G0板卡

STM32G070RBx


物联网平台

阿里云IoT

使用MQTT.fx接入物联网平台:https://help.aliyun.com/document_detail/140507.html?spm=a2c4g.11186623.6.565.798c243eZYQQkE


通信模组

2G GPRS模块

配置服务器地址和端口:

AT+IPPORT="a1TAQrjlyNl.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

配置用户和用户密码:

AT+USERPWD="STM32G0_Node&a1TAQrjlyNl","9F42B96E4E8BACB4C1AC18780C103B7E46433F82"

配置ClientID:

AT+CLIENTID="12345|securemode=3,signmethod=hmacsha1,timestamp=10|"

IDE

Keil5-MDK


数据

使用jansson库进行json数据解析

jansson库github:https://github.com/akheron/jansson
keil-MDK添加jansson pack以及用法:https://blog.csdn.net/yannanxiu/article/details/52712723

json数据格式化在线工具:https://www.json.cn/
上报json数据:

{
    "version": "V1.0",
    "id": 12345,
    "params": {
           "CurrentTemperature" : 28.3   //CurrentTemperature——阿里云IoT中定义的物模型数据
     },
     "method": "thing.event.property.post"
}

问题记录

  • DS18B20温度采集

    刚开始用RT-Thread Studio来玩,玩了之后发现RT-Thread Studio真不好用。已经在RT-Thread做好的DS18B20的温度采集程序,将DS18B20程序移植使用STM32CubeMX生成的MDK工程中就采集不了。时序中延时函数使用的是RT-Thread提供的微妙延时函数。
    在这里插入图片描述
    在这里插入图片描述

后面发现是时钟设置不对导致的

  • 使用json_pack生成json格式数据失败

    解析和生成json的时候要保证有足够的堆空间,STM32G0的HAL库的启动文件默认分配堆只有512bytes,堆太小导致生成不了json。
  • 奇怪的问题

    一个只有一个float形参的函数,传进去的值和在函数内部debug打印出来的值不一样,不知道啥原因,将函数形参类型从float改为double类型就可以了。???啥情况。

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/105836686
今日推荐