STM32+ESP8266连接腾讯IOT上传数据(四)

一、获取DTH11的值

1、cubemx配置

这里配置dth11的data口的io,初始没所谓,我配了高电平,速度配了高。

然后配置了TIMER2配置了一个1us的定时器,我主频是72M,所以就如下图分就行了

dth11配置这两个东西就可以了,用timer2去做一个1us的硬延时,然后看dth11时序实现读取温湿度。

2、获取温湿度

例程没有加系统,是用裸机做的,这里是初始化和读取的任务,我把他输出到了调试串口

主任务,1S读一次。

下边是串口输出的值

这里百度都有很多说明,我就没有详细展开说,文章末上传了资源,有兴趣就下载看看

二、获取rg5537光照强度

1、cubemx配置

在cubemx配置一个AD

2、获取光照强度

获取过程如下,我是用间断模式,然后每次开启前都校验了一下。后边的都是很平常的AD获取值,然后就是我在立创搜了一下rg5537的规格书,光照做了处理。

主任务同样是1S读一次

下边是调试串口的输出,房间没开灯,我用手机手电筒照了一下,这个差值差不多了

三、在腾讯IOT平台创建对应的物联型

1、温度

自定义温度属性

2、湿度

3、光照强度

四、上传数据到IOT后台

1、上传函数处理

首先是我的Esp8266任务,我加了一个闲时计时,目前是每1分钟上报一次。当计时一分钟时,切换发送状态为UP_Sensor_DATA(因为时间不是特别精准,所以我在上篇文章说的修改我也没有做修改,考虑后上报数据我觉得在闲时计时是合理的):

然后继续往上一步处理看,Esp8266_HeadSend函数是发送函数,在上一篇文章做了订阅腾讯云后台的操作,在这个任务里,不同的发送状态进入不同的发送函数。ATAT为模块的初始化、联网、mqtt订阅后台部分,UP_Sensor_DATA则为上报传感器数据:

我做了一个订阅后马上上报数据的处理:

上报数据的思路很简单,我是先查询mqtt连接状态,再跳转到上报。

   这里我把sprintf贴出来,ID还有设备名称,因为这个是固定测试,我就直接写上去了,做成通用程序的话,这个地方可以定义一个变量,然后sprintf的时候处理一下就好了,这样以后只修改这个变量就可以。另外一个点就是,我只有3个参数,平时做项目可能有很多个参数,这就需要自己做一个函数封装,或者引用json库了。不然用这一句实现也不现实。

sprintf((char *)txbuf,"AT+TCMQTTPUB=\"$thing/up/property/05ODJNOW0P/Device02\",1,\"{\\\"method\\\":\\\"report\\\"\\,\\\"clientToken\\\":\\\"123\\\"\\,\\\"params\\\":{\\\"Hum\\\":%d\\,\\\"Temp\\\":%d\\,\\\"Light\\\":%d}}\"\r\n",Sensor_Data[Humi],Sensor_Data[Temp],Sensor_Data[Light]);

这一个AT指令在我的资源里边的文档也是有的

2、接收函数处理

接收的函数与发送函数的思路当然也是一致的,根据不同的发送状态进入不同的处理函数,最后清空接收buf,使能接收

上报数据状态下的接收函数就比较简单,只判断了mqtt连接状态的回帧,Esp8266.ReceiveBuffer[30]为1是连接成功状态,如果是其他,我会重启模组:

3、测试

从监听的esp8266的回帧验证:

从腾讯云后台的数据也可以验证:

4、腾讯云配置小程序查看:

后台配置小程序:

这些都按默认设置就可以,我这里就编辑了产品配置和面板

在设备调试的对应设备点击二维码

手机小程序扫码绑定查看:

dth11资源地址:【免费】STM32+CubeMX+dth11资源-CSDN文库

rg5537地址:Stm32+Cubemx+rg5537资源-CSDN文库

  • 29
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try1harder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值