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