1. 程式人生 > >ESP8266--連線ONENET傳輸資料

ESP8266--連線ONENET傳輸資料

一、ESP8266初始化

1、復位

AT+RST

2、關閉回顯

ATE0

3、設定AP/STA模式

AT+CWMODE_CUR=3

4、連線到可上網熱點

AT+CWJAP_CUR=“thingcom-1705","12345678901"

5、連線平臺伺服器IP和埠號

AT+CIPSTART=2,\"TCP\",\"183.230.40.39\",6002

二、傳輸資料

連線裝置:

10 30 00 03 45 44 50 01 40 01 2c 00 07 39 38 31 37 39 35 38 00 1c 37 36 63 34 4f 
35 79 51 3d 47 61 6b 51 43 75 6c 68 5a 50 76 72 78 4c 4a 7a 73 41 3d
含義:

第 0 位元組 [ 0X10 ] // 訊息型別 - 連線裝置雲訊息

第 1 位元組 [ 0X30 ] // 訊息長度 - 48

第 2 - 3 位元組 [ 0X00 0X03 ] // 協議描述長度 - 3

第 4 - 6 位元組 [ 0X45 0X44 0X50 ] // 協議描述 - EDP

第 7 位元組 [ 0X01 ] // 協議版本 - 1

第 8 位元組 [ 0X40 ] // 連線標誌 - 第一種連線方式

第 9 - 10 位元組 [ 0X01 0X2C ] // 保持連線時間 - 300

第 11 - 12 位元組 [ 0X00 0X07 ] // 裝置ID長度 - 7

第 13 - 19 位元組 [ 0X39 0X38 0X31 0X37 0X39 0X35 0X38 ] // 裝置ID - 9817958

第 20 - 21 位元組 [ 0X00 0X1C ] // Api-key長度 - 28

第 22 - 49 位元組 [ 0X37 0X36 0X63 0X34 0X4F 0X35 0X79 0X51 0X3D 0X47 0X61 0X6B 
0X51 0X43 0X75 0X6C 0X68 0X5A 0X50 0X76 0X72 0X78 0X4C 0X4A 0X7A 0X73 0X41
 0X3D ] // Api-key - 76c4O5yQ=GakQCulhZPvrxLJzsA=

 

向裝置傳輸資料:

80 67 80 00 07 39 38 31 37 39 35 38 01 00 5A 7B 0A 09 22 64 61 74 61 73 74 72
65 61 6D 73 22 3A 09 5B 7B 0A 09 09 09 22 69 64 22 3A 09 22 77 65 6E 64 75 22 
2C 0A 09 09 09 22 64 61 74 61 70 6F 69 6E 74 73 22 3A 09 5B 7B 0A 09 09 09 09 
09 22 76 61 6C 75 65 22 3A 09 39 39 39 0A 09 09 09 09 7D 5D 0A 09 09 7D 5D 0A 
7D

含義;

第 0 位元組 [ 0X80 ] // 訊息型別 - SaveData訊息

第 1 位元組 [ 0X67 ] // 訊息長度 - 103

第 2 位元組 [ 0X80 ] // 標誌 - 有裝置ID,無訊息編號

第 3 - 4 位元組 [ 0X00 0X07 ] // 裝置ID長度 - 7

第 5 - 11 位元組 [ 0X39 0X38 0X31 0X37 0X39 0X35 0X38 ] // 裝置ID - 9817958

第 12 位元組 [ 0X01 ] // 資料型別格式 - 1, json

第 13 - 14 位元組 [ 0X00 0X5A ] // json資料長度 - 90

第 15 - 104 位元組 [ 0X7B 0X0A 0X09 0X22 0X64 0X61 0X74 0X61 0X73 0X74 0X72 0X65 
0X61 0X6D 0X73 0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09 0X09 0X09 0X22 0X69 0X64 
0X22 0X3A 0X09 0X22 0X77 0X65 0X6E 0X64 0X75 0X22 0X2C 0X0A 0X09 0X09 0X09 
0X22 0X64 0X61 0X74 0X61 0X70 0X6F 0X69 0X6E 0X74 0X73 0X22 0X3A 0X09 0X5B 
0X7B 0X0A 0X09 0X09 0X09 0X09 0X09 0X22 0X76 0X61 0X6C 0X75 0X65 0X22 0X3A 
0X09 0X39 0X39 0X39 0X0A 0X09 0X09 0X09 0X09 0X7D 0X5D 0X0A 0X09 0X09 0X7D 
0X5D 0X0A 0X7D ]
// json資料 - {

"datastreams": [{

"id": "wendu",

"datapoints": [{

"value": 999

}]

}]

}

注意事項:

1、 串列埠之間波特率匹配

2、在透傳模式開始傳輸後要按16進位制傳輸否則無法連線和傳輸資料。資料最後需要回車後傳送。

 

參考教程:https://open.iot.10086.cn/doc/art76.html#29

線上ACSSI轉換工具;http://www.ab126.com/goju/1711.html

三、資料/命令傳送與響應

1 、連線響應與請求

1.1 、連線請求

0X10 0X30 0X00 0X03 0X45 0X44 0X50 0X01 0X40 0X01 0X2C 0X00 0X07 0X39 0X38 
0X31 0X37 0X39 0X35 0X38 0X00 0X1C 0X37 0X36 0X63 0X34 0X4F 0X35 0X79 0X51
 0X3D 0X47 0X61 0X6B 0X51 0X43 0X75 0X6C 0X68 0X5A 0X50 0X76 0X72 0X78 0X4C 
0X4A 0X7A 0X73 0X41 0X3D

第 0 位元組 [ 0X10 ] // 訊息型別 - 連線裝置雲訊息

第 1 位元組 [ 0X30 ] // 訊息長度 - 48

第 2 - 3 位元組 [ 0X00 0X03 ] // 協議描述長度 - 3

第 4 - 6 位元組 [ 0X45 0X44 0X50 ] // 協議描述 - EDP

第 7 位元組 [ 0X01 ] // 協議版本 - 1

第 8 位元組 [ 0X40 ] // 連線標誌 - 第一種連線方式

第 9 - 10 位元組 [ 0X01 0X2C ] // 保持連線時間 - 300

第 11 - 12 位元組 [ 0X00 0X07 ] // 裝置ID長度 - 7

第 13 - 19 位元組 [ 0X39 0X38 0X31 0X37 0X39 0X35 0X38 ] // 裝置ID - 9817958

第 20 - 21 位元組 [ 0X00 0X1C ] // Api-key長度 - 28

第 22 - 49 位元組 [ 0X37 0X36 0X63 0X34 0X4F 0X35 0X79 0X51 0X3D 0X47 0X61 0X6B 
0X51 0X43 0X75 0X6C 0X68 0X5A 0X50 0X76 0X72 0X78 0X4C 0X4A 0X7A 0X73 0X41
 0X3D ] // Api-key - 76c4O5yQ=GakQCulhZPvrxLJzsA=

1.2連線成功

0X20 0X02 0X00 0X00

第 0 位元組 [ 0X20 ] // 訊息型別 - 連線裝置雲響應訊息

第 1 位元組 [ 0X02 ] // 訊息長度 - 2

第 2 位元組 [ 0X00 ] // 標誌位 - 後面訊息體無授權碼

第 3 位元組 [ 0X00 ] // 返回碼 - 連線成功

1.3連線失敗

0X20 0X02 0X00 0X04

第 0 位元組 [ 0X20 ] // 訊息型別 - 連線裝置雲響應訊息

第 1 位元組 [ 0X02 ] // 訊息長度 - 2

第 2 位元組 [ 0X00 ] // 標誌位 - 後面訊息體無授權碼

第 3 位元組 [ 0X04 ] // 返回碼 - 驗證失敗,使用者ID鑑權失敗

2、 Ping請求與響應

2.1、請求

0XC0 0X00

第 0 位元組 [ 0XC0 ] // 訊息型別 - Ping訊息

第 1 位元組 [ 0X00 ] // 訊息長度 – 0

2.2響應

Ping通:

0XD0 0X00

第 0 位元組 [ 0XD0 ] // 訊息型別 - Ping響應訊息

第 1 位元組 [ 0X00 ] // 訊息長度 - 0

Ping失敗:

0X40 0X01 0X6E

第 0 位元組 [ 0X40 ] // 訊息型別 - 連線關閉訊息

第 1 位元組 [ 0X01 ] // 訊息長度 - 1

第 2 位元組 [ 0X6E ] // 連線關閉錯誤碼 – 110

3 傳輸資料

3.1 資料上傳

0X80 0X66 0X80 0X00 0X07 0X39 0X38 0X31 0X37 0X39 0X35 0X38 0X01 0X00 0X59 
0X7B 0X0A 0X09 0X22 0X64 0X61 0X74 0X61 0X73 0X74 0X72 0X65 0X61 0X6D 0X73 
0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09 0X09 0X09 0X22 0X69 0X64 0X22 0X3A 0X09 
0X22 0X77 0X65 0X6E 0X64 0X75 0X22 0X2C 0X0A 0X09 0X09 0X09 0X22 0X64 0X61 
0X74 0X61 0X70 0X6F 0X69 0X6E 0X74 0X73 0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09 
0X09 0X09 0X09 0X09 0X22 0X76 0X61 0X6C 0X75 0X65 0X22 0X3A 0X09 0X35 0X30 
0X0A 0X09 0X09 0X09 0X09 0X7D 0X5D 0X0A 0X09 0X09 0X7D 0X5D 0X0A 0X7D

第 0 位元組 [ 0X80 ] // 訊息型別 - SaveData訊息

第 1 位元組 [ 0X66 ] // 訊息長度 - 102

第 2 位元組 [ 0X80 ] // 標誌 - 有裝置ID,無訊息編號

第 3 - 4 位元組 [ 0X00 0X07 ] // 裝置ID長度 - 7

第 5 - 11 位元組 [ 0X39 0X38 0X31 0X37 0X39 0X35 0X38 ] // 裝置ID - 9817958

第 12 位元組 [ 0X01 ] // 資料型別格式 - 1, json

第 13 - 14 位元組 [ 0X00 0X59 ] // json資料長度 - 89

第 15 - 103 位元組 [ 0X7B 0X0A 0X09 0X22 0X64 0X61 0X74 0X61 0X73 0X74 0X72 0X65 
0X61 0X6D 0X73 0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09 0X09 0X09 0X22 0X69 0X64 
0X22 0X3A 0X09 0X22 0X77 0X65 0X6E 0X64 0X75 0X22 0X2C 0X0A 0X09 0X09 0X09 
0X22 0X64 0X61 0X74 0X61 0X70 0X6F 0X69 0X6E 0X74 0X73 0X22 0X3A 0X09 0X5B 
0X7B 0X0A 0X09 0X09 0X09 0X09 0X09 0X22 0X76 0X61 0X6C 0X75 0X65 0X22 0X3A 
0X09 0X35 0X30 0X0A 0X09 0X09 0X09 0X09 0X7D 0X5D 0X0A 0X09 0X09 0X7D 0X5D 
0X0A 0X7D ]
// json資料 - {

"datastreams": [{

"id": "wendu",

"datapoints": [{

"value": 50

}]

}]

}

3.2 資料上傳響應

0X80 0X66 0X80 0X00 0X07 0X39 0X38 0X31 0X37 0X39 0X35 0X38 0X01 0X00 0X59
 0X7B 0X0A 0X09 0X22 0X64 0X61 0X74 0X61 0X73 0X74 0X72 0X65 0X61 0X6D 0X73
 0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09 0X09 0X09 0X22 0X69 0X64 0X22 0X3A 0X09
 0X22 0X77 0X65 0X6E 0X64 0X75 0X22 0X2C 0X0A 0X09 0X09 0X09 0X22 0X64 0X61
 0X74 0X61 0X70 0X6F 0X69 0X6E 0X74 0X73 0X22 0X3A 0X09 0X5B 0X7B 0X0A 0X09
 0X09 0X09 0X09 0X09 0X22 0X76 0X61 0X6C 0X75 0X65 0X22 0X3A 0X09 0X35 0X30
 0X0A 0X09 0X09 0X09 0X09 0X7D 0X5D 0X0A 0X09 0X09 0X7D 0X5D 0X0A 0X7D