ESP2866通过TCP透传 使用AT指令连接ONENET平台

趁今天周末休息,调一下esp8266接入onenet。

首先的基本操作,将ESP8266设为AP+STA模式(AT+CWMODE=3)。

然后就连接一个可以上网的热点(AT+CWJAP=xxx)。

使用TCP连接到ONENET服务器(AT+CIPSTART="TCP","183.230.40.33",80),并且开启透传(AT+CIPMODE=1)。

开始传输(AT+CIPSEND)。

发送内容,一次发送一条,或者多条。

POST /devices/41781256/datapoints HTTP/1.1
api-key: 8NrX0sg3UIbYDXR11ofZ=BjCtrQ=
Host:api.heclouds.com
Connection:close
Content-Length:59

{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}
POST /devices/41781256/datapoints HTTP/1.1
api-key: 8NrX0sg3UIbYDXR11ofZ=BjCtrQ=
Host:api.heclouds.com
Content-Length:146

{"datastreams":[{"id":"val1", "datapoints":[{"value":10}]},{"id":"val2", "datapoints":[{"value":20}]},{"id":"val3", "datapoints":[{"value":30}]}]}

*重点说明:

    设备ID:41781256

     设备APIkey:8NrX0sg3UIbYDXR11ofZ=BjCtrQ=这个要手动添加,一开始我以为是产品的APIKEY,调了很久没反应。

     数据内容:{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}

     TEMP是数据标签,可以按照自己的设,

     50的数据,具体按实际情况上传。

返回,表明数据上传成功。我用网络调试助手就可以返回,但是esp8266无返回。

(手机接了wifi然后又开了热点分享的原因吗?我把手机wifi断掉就ok了,真是折腾人!)。

HTTP/1.1 200 OK
Date: Sun, 09 Sep 2018 06:00:44 GMT
Content-Type: application/json
Connection: close
Server: Apache-Coyote/1.1
Pragma: no-cache
Content-Length: 26

{"errno":0,"error":"succ"}

最后可以在设备管理的数据展示里看到刚刚上传的数据。

通过手动发送成功之后,再用stm32控制就容易很多了。

你可能感兴趣的:(STM32,onenet)