本篇文章繼續(xù)講解ESP8266的使用第四部分,希望與大家一起學(xué)習(xí)進步!也歡迎讀者朋友關(guān)注、收藏、分享和點贊,感謝支持!
1.對于協(xié)議的選擇
不知道大家還記不記得這張圖,我讓你們選擇協(xié)議的時候,選擇TCP協(xié)議。
這里的協(xié)議比較多,對于后面的幾個協(xié)議我也不太懂,這里說一下http協(xié)議。
2.HTTP協(xié)議初探
在Tlink平臺的官網(wǎng)幫助中心,這里放了很多API的開放接口,下面也有在線測試的工具。這里我們做一個測試。
使用這條post請求對傳感器數(shù)據(jù)進行寫入。
我們測試全部正確。如果這里的序列號是你自己的,可以看到平臺的你建立的設(shè)備數(shù)據(jù)會更新。
3.萬事具備,只欠東風(fēng)
對于TCP協(xié)議,讓你自己定義5個傳感器,還要定義協(xié)議,看到http協(xié)議,是不是覺得很簡單,在POST語句中間,可以一次把數(shù)據(jù)全部傳輸上去,對我當時就這么想,用一下HTTP協(xié)議試一下。問題來了: 用單片機發(fā)送給WIFI的http協(xié)議是要分成POST請求,數(shù)據(jù)頭,數(shù)據(jù)長度,數(shù)據(jù)type,數(shù)據(jù)內(nèi)容,而且還需要去JSON的數(shù)據(jù)。(有的可以不需要)于是就花了很大的力氣去改寫這個POST請求,格式一:
格式二:
格式三:
反正改寫這些東西花了一下午。然后一直覺得那里不對勁,就去吃飯了。吃飯的路上,突然想到,我可以給Tlink的工作人員打個電話問一下呀。哈哈,吃完飯回來就打了電話,當時那邊的工程師態(tài)度很好,很耐心的幫我解釋,解釋TCP協(xié)議怎么用,http協(xié)議怎么用。最后大家誰也猜不到問題的答案是什么?因為Tlink平臺的人員自己使用過HTTP協(xié)議感覺非常復(fù)雜,所以現(xiàn)在的Tlink平臺上的API接口不是給我們用WIFI傳輸數(shù)據(jù)用的,而是人家使用APP調(diào)用的接口。所以使用TCP/UDP工具模仿HTTP協(xié)議通信的時候,不管怎么樣改寫都是錯誤的。
4.調(diào)試工具
我最開始對這些協(xié)議是一臉懵逼,怎么改寫,什么意思都不清楚。推薦兩個工具:
在線HTTP接口測試https://www.sojson.com/httpRequest/
在線JSON校驗格式化工具http://www.bejson.com/
5.總結(jié)
這篇帖子解釋了為什么選擇TCP協(xié)議而不選擇HTTP協(xié)議作為我們傳輸數(shù)據(jù)的協(xié)議。其中穿插了對HTTP協(xié)議的測試,TCP/UDP工具的模仿,POST請求的改寫,等等內(nèi)容。最后的兩個工具在調(diào)試HTTP協(xié)議的時候,經(jīng)??梢杂玫?。
對了必須提醒你一點,在傳輸數(shù)據(jù)到Tlink云平臺的時候,每一次刷新的時間至少要超過1s,用500ms好像剛剛好,但是還有點問題,1s以上都是沒問題的。但是你知道低于500ms會出現(xiàn)什么問題嗎?