ESP8266 TCP透傳模式傳輸數據流步驟(轉)

原網址:http://www.cnblogs.com/Mysterious/p/4816482.html

測試使用工具:

WIFI模塊型號:ESP8266

https://item.taobao.com/item.htm?spm=a1z10.1-c.w137712-175513579.2.btbD9X&id=520305709648

USB-TTL調試工具:CP2102

https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-175517240.14.8HGQU4&id=39481188174

連接方法:

(這裏是用TTL直接調試ESP8266,不需要接Arduino主控板,接了反倒可能會影響通訊)

CP2102     ESP8266擴展板

5V-->      5v

GND-->     GND

RX-->      E-TX(可直接連接RX3引腳等同)

TX-->      E-RX(可直接連接TX3引腳等同)

調試軟件使用串口調試助手:

鏈接:http://pan.baidu.com/s/1nty5LSd 密碼:kxsh

sscom33這種助手雖然發指令好使(可以不用輸入回車,勾選新行就行了),但是在這裏不太好使,因爲要發送的數據有很多行。因此換用這個UartAssist。

但是發送數據時候一定要小心,因爲有可能發送數據時候多一個空格或者回車都會使發送失敗!因此每次輸入框時候建議,先按ctrl+A全選發送框的內容,然後輸入指令。記得基本上所有指令都需要加回車結尾!!!!

開啓了回傳數顯的,在你發送一條指令後,模塊會回覆一個你發送的指令,然後再返回OK,或者error,看到OK就可以進行下一步,看到ERROR,肯定是有操作有問題,指令錯了或者忘記回車了,或者多了幾個回車或者空格!

發送指令順序:

1.

AT

這個指令要看到有AT OK說明你的供電和TTL和wifi模塊通訊正常

2.

AT+CWMODE=3

設置模式3,STA+AP,其實我們只用了STA

3.

AT+RST

讓模塊復位,能在接收信息最下面看到 ready,說明模塊復位成功。復位後就是STA+AP模式了

4.

AT+CWJAP="your ssid","password"

輸入你無線路由器的用戶名和密碼,一定要寫正確,注意大小寫

5.

AT+CIFSR

查詢IP,因爲有STA和AP兩個模式,所以有兩組MAC和IP,常見的是192.168.x.x局域網IP

6.

AT+CIPMUX=0

設置單鏈接,透傳只能在單連接模式下進行,所以在建立連接之前一定要用(AT+CIPMUX=0 設置單連接) 

7.

AT+CIPMODE=1

設置透傳模式

8.

AT+CIPSTART="TCP","183.230.40.33",80

連接OneNet服務器

9.

AT+CIPSEND

啓動透傳發送

10.

複製代碼
POST /devices/79146/datapoints HTTP/1.1
api-key: pmWLtnkDBSreKfvg7GsClUXdXa4A
Host:api.heclouds.com
Connection:close
Content-Length:59

{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}
複製代碼

發送JSON數據流,格式一定要正確,大多數人失敗都是在這裏格式不對

其中79146修改爲你自己的設備ID

api-key後面的內容修改爲自己的API-KEY

"TEMP"這個是我的數據流名稱,修改爲自己想要的

“value”後面的50就是數據,輸入想要的。

然後回過頭看下Content-Length:59

Connection:colse這一條如果加了,服務器接收到一次數據後會斷開,如果不加可以連續發送數據。如果長時間不發送,也同樣會關閉鏈接的。

這個59是後面的整個數據流的長度

一個小技巧,可以用Notepad++軟件直接選中看這個長度是多少,別自己數,數錯了就悲劇了!

11.

+++

發送+++退出透傳模式 ,這個指令不用要回車(執行完這個以後模式還是1,最好執行下AT+CIPMODE=0)

12.到服務器看數據是否上傳成功,這個不再敘述,上一個日誌上寫的有。

13.通過以上步驟就可以通過ESP8266的TCP透傳模式發送數據到OneNet服務器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章