ESP8266-01向OneNET云平台服务器上传数据(串口发送AT指令)
ESP8266-01WiFi模块
- ESP8266-01模块与esp8266-01S模块的功能基本一致,区别在于ESP-8266-01S模块后面带有的引脚在旁边用白色印记进行了标注(ESP8266-01没有标记,但两者对应的引脚是一致的)
- 其接线方式以及工作模式等就不再一一阐述,大多数的文章都会介绍到。就详细介绍如何与服务器进行通信。
使用方式
- ESP8266-01WiFi模块是由安信可公司开发的基于乐鑫ESP8266EX的超低功耗的WiFi模组,除了通过官方固件使用AT指令进行操作,还可以通过烧录固件或写入程序的方式实现对其模块的二次开发,这是最为常用2种使用方式。
##方式一:串口AT指令控制
-
通过串口连接ESP8366-01模块,调整好串口的比特率(推荐采用9600),设备(单片机/电脑)通过串口向ESP8266-01模块发送AT指令,ESP8266-01模块成功完成AT指令对应的操作后通过串口回复“OK”,设备接收到ESP8266-01模块的“OK”回复后进行新的AT指令发送。
-
通过一系列AT指令进行设置,连接WiFi,连接对应的服务器端口上,进入透传模式。
##方式二:烧录固件(程序)
- 由于ESP8266-01模块能够进行固件的烧录修改,大多数人采用直接往ESP8266-01模块里写入代码程序,对ESP8266-01模块进行烧录程序后,重新上电后会自行运行内置的代码中的AT命令,自行完成一系列连接过程,进入透传模式。
- 该过程单片机与ESP8266-01连接后无需通过串口向其发送AT指令进行操作,等待一段时间让ESP8266-01自行进入透传模式。
AT指令连接OneNET服务器
无论是哪种方式,其都是采用的AT指令,只不过方式一是设备控制ESP8266-01进入透传模式,方式二是ESP8266-01自行进入透传模式。
AT+UART_DEF=9600,8,1,0,0 (调整ESP8266的比特率为9600)
AT+CWMODE=3(进入工作模式3)
AT+CWJAP=“SSID”,“987654321”(连接WiFi:名SSID,密码987654321)
AT+CIPSTART=“TCP”,“183.230.40.33”,80(连接OneNET平台http服务器)
AT+CIPMODE=1(开启透传模式)
AT+CIPSEND(进入透传)
- AT指令当中几乎所有正常运行的回复为“OK”,只有AT+CIPSEND进入透传模式指令回复“>”
8266与OneNET服务器进行数据上传接收
- ESP8266-01模块进入透传模式后,单片机通过串口向ESP8266-01模块发送的数据将直接传送到OneNET服务器上(注意数据流格式)
下面是我上传的数据流
POST http://api.heclouds.com/devices/713311525/datapoints HTTP/1.1
api-key: YLF97K3TZLwZpsKOJlswmXrZlC4=
Host:api.heclouds.com
Connection:close
Content-Length:60
{“datastreams”:[
{“id”:“TEMP”,“datapoints”:[{“value”:119}]}
]} - 格式(HTTP协议post上传数据)
POST http://api.heclouds.com/devices/云平台产品设备的ID/datapoints HTTP/1.1
api-key: 设备密钥
Host:api.heclouds.com
Connection:close
Content-Length:JSON格式字符数(即下方带括号的内容)
{“datastreams”:[
{“id”:“数据流名称”,“datapoints”:[{“value”:数值}]}
]}