arduino的esp32与阿里云物联网平台连接的温室监控系统

先看成果

 

1.咋把设备连接到阿里云平台捏?

在网上搜索一番,百度搜不到,于是乎去谷歌一下,发现github上有个连接阿里云的esp8266的库,那就拿来吧!对库自带的example代码进行修改,包括不限于把esp8266的配置库改成esp32的、输入WiFi账号密码、三元组定义,配置搞完了,烧录,看到阿里云平台上创建的设备“在线”,OK,伟大的第一步成功。(耗时1个月)

2.咋把设备的数据上发到阿里云平台?

研究了一阵示例代码,什么bind,send函数也不知道干啥用的,迷迷糊糊的用send函数上发了dht11的温度数据,好歹成功,但不知道原理,为以后的难题垫下坚实的基础。(耗时半个月)

3.咋把平台的数据下发到设备呢

通过阿里云平台的调试模块,象征性的下发了几个数据,发现设备始终接收不到,平台显示下发数据超时,只能硬着头皮去库里面去找每个函数的作用,经过千辛万苦,好歹明白了这几个函数的作用,大致分为两个函数,上发函数和下发函数,而其中上发函数是默认集成到库中的loop函数中,在主函数中由于我在loop函数后面加了while1(),把我主要的代码都挪到while函数里面了,导致被遗弃在外面的loop函数只是在通电的瞬间运行一次后就再也没运行过,这就最终导致了下发数据不成功。(耗时半个月)

4.设备上发数据太频繁了(每秒四次)咋办

去原来github作者的read文本中了解到,上发数据取决于两个东西,首先取决于数据的积攒量,积攒量到达一定程度会上发数据,另外一种情况是如果在规定的时间里数据积攒量不足,那么就直接上发数据。用了很多网上的方法,就是死活降不下上发频率,然后有一天吃着饭,突然顿悟,我在main函数里面加一个变量,没循环一遍加1,加到100时再用send函数,这不就把积攒量减小了嘛!于是乎试验,成功(耗时3天+一顿饭)

5.下发数据又又又失败

上发的频率是解决了,但是上发频率下降了(每十秒一次),反而导致上发数据又超时失败,于是乎猜测上发数据的函数和下发数据的函数应该和另外一个管控总网络连接的函数有关,于是把库代码一股脑丢给AI分析,它告诉我和mqtt定时检查连接函数有关,于是找到连接频率定义,发现连接频率为每十秒一次,与上发频率不谋而合,这反而对我来说是个障眼法,于是为了验证,我去更改上发频率为每五秒一次,烧录,发现设备还是每十秒一次上发,OK,猜测正确,把mqtt连接频率也改成五秒一次,烧录,设备五秒一次上发,并且下发数据正确,所以阿里云下发数据的最长容忍时间是低于十秒的,成功解决最后难题。(耗时二天)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值