測試使用工具:
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+CIPSTART="TCP","183.230.40.33",80
連接OneNet服務器
7.
AT+CIPSEND=201
發送數據,總共數據長度是201,這個201是需要計算總共要發送的數據,不能寫錯
8.
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
這個59是后面的整個數據流的長度
一個小技巧,可以用Notepad++軟件直接選中看這個長度是多少,別自己數,數錯了就悲劇了!
9.發送數據后看到服務器返回如下圖:(其中接收到的CLOSED是wifi模塊關閉TCP連接時候返回的)
10.如果想要再一次傳輸數據,從步驟6開始循環。
11.通過這樣的步驟就可以使用TCP模式上傳數據到OneNet服務器