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

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

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


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

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

操作指引文档地址:

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

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

640.png

640.png

640.png

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


640.png

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

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

640.jpg

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

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

640.png

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


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


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


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

640.png

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


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


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


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


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

640.png

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

640.png

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

640.png

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


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

640.png


640.png

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

640.png

4、案例下载

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

640.png

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

往期精彩

一些不可不知的计算机网络基础


实战贴:开源GUI LittlevGL在MCU上的移植


MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀


实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)


移植一个实时OS很难?那就手把手教你如何快速移植一个RT-Thread Nano吧!

目录
相关文章
|
7月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
722 130
|
8月前
|
运维 网络协议 安全
为什么经过IPSec隧道后HTTPS会访问不通?一次隧道环境下的实战分析
本文介绍了一个典型的 HTTPS 无法访问问题的排查过程。问题表现为 HTTP 正常而 HTTPS 无法打开,最终发现是由于 MTU 设置不当导致报文被丢弃。HTTPS 因禁止分片,对 MTU 更敏感。解决方案包括调整 MSS 或中间设备干预。
|
8月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
735 2
|
9月前
|
Go 定位技术
Golang中设置HTTP请求代理的策略
在实际应用中,可能还需要处理代理服务器的连接稳定性、响应时间、以及错误处理等。因此,建议在使用代理时增加适当的错误重试机制,以确保网络请求的健壮性。此外,由于网络编程涉及的细节较多,彻底测试以确认代理配置符合预期的行为也是十分重要的。
338 8
|
9月前
|
缓存
|
8月前
|
JSON JavaScript API
Python模拟HTTP请求实现APP自动签到
Python模拟HTTP请求实现APP自动签到
|
8月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
9月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
9月前
|
缓存 JavaScript 前端开发
Vue 3 HTTP请求封装导致响应结果无法在浏览器中获取,尽管实际请求已成功。
通过逐项检查和调试,最终可以定位问题所在,修复后便能正常在浏览器中获取响应结果。
348 0
|
9月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
604 0