ESP8266实战贴:使用HTTP POST请求上传数据到公有云OneNet

最近一段时间无论是正副业挺忙,人生的第一个父亲节,将在天津度过,这也是我生平第一次走出广东,活已经完成99%了,相对来说还是挺有成就感的,学习了不少东西,今天下午休息,开始继续更新公众号推文:

ESP8266可玩性真的很高,公众号之前也发了不少ESP8266的应用,比如最近,我就把之前做的小车改良了,因为那个小车由于自己装配工艺不好,四个轮子经常跑偏,于是我就又花了上百大洋,重新打造了一个坦克,还没来得及发文呢,给大家展示下效果:

好了,下面进入正题,使用ESP8266来上传数据到公有云-OneNet

纵观大部分公有云,就目前个人接触过的而言,我觉得中国移动OneNet平台是最好上手的,下面,我们就简单根据官方网站提供的HTTP开发者文档的操作指引,通过ESP8266上报数据,最终通过平台进行展示:

操作指引文档地址:

https://open.iot.10086.cn/doc/kit/book/standard_board/onenet/HTTP/HTTP.html

根据操作指引,以下是我在OneNet平台上创建了一个多协议接入的产品:

1、OneNet平台针对各类接入协议的描述

这里,我们重点看HTTP协议部分,其它的部分等用到了再详细去了解。

2、OneNet平台产品常用名词解析

这部分也是后面使用HTTP协议的铺垫,这里面有部分参数我们后面需要使用,譬如设备ID,OneNet平台上注册的APIKey。

3、一个最简单的数据上报OneNet平台的HTTP模板

关于HTTP协议学习,可以参考大佬的文章学习,这是我认为写得最通俗易懂的:

HTTP 核心总结 PDF 也出来了!!!

炸裂!万字长文拿下HTTP 我在字节跳动等你!

如上图所示,这是我创建的数据流模板,然后以下提供一个最简单的HTTP头+HTTP数据包。

这样一个简单的数据上传模板就完成了,接下来我们用ESP8266来实测一下:

关于ESP8266联网的一些基础之前的文章已经有写过了,这里就不再重复写了,请看下文,当然之前也写了一篇ESP8266透传HTTP服务器的文章,这个是用SoapUI搭建的HTTP服务器。

基于小熊派WIFI-ESP8266实践(上)

ESP8266透传:发送数据到HTTP服务器

基于小熊派WIFI-ESP8266实践(中)-多功能处理显示等大杂烩

以上串口终端已经收到后台给我们回复的200OK的字段,数据已经成功上传到OneNet服务器,接下来我们登录OneNet云平台,可以看到数据已经透传成功:

以下是我随机模拟的一组数据,平台能够成功收到并通过折线图进行展示。

那么在MCU软件上如何来实现呢?很简单,我们把在串口终端收发的过程用代码实现就可以了,其实大部分小白不是纠结怎么通过ESP8266去连接热点,连接服务器,这些随便找野火、正点原子等厂家的ESP8266例程都可以轻松获取,小白纠结的是,如何在程序上组一个HTTP数据包,最后通过数据包透传到服务器。

以下测试在小熊派开发板上运行,源码请查看文末回复字段,关键部分代码实现如下,只需要WIFI进入透传模式后,循环调用OneNet_SendData这个函数就可以源源不断的在后台接收到数据了,其中要注意的是,ONENET_DEVICE_ID以及ONENET_API_KEY这两个宏,请根据你在平台上注册的实际信息填写。

OneNet平台收到数据后的数据展示:

4、案例下载

公众号后台回复:OneNet 即可获取本节程序案例的下载链接。

温馨提示:如果您手上有小熊派开发板,请修改以上红框字段,其余部分程序不需要修改,平台的话,按文章中在平台上做相应的设置即可,最后直接下载到开发板上,打开串口终端以及OneNet平台查看实验结果。

最后,应公众号读者要求,来一张杨工近照,4年嵌入式职场老油条,这也是我第一次在公众号露面啦

明天是我人生中的第一个父亲节,先祝自己父亲节快乐,好好奋斗,让小小杨过得幸福美满!