節(jié)省ESP32網(wǎng)頁(yè)控制數(shù)據(jù)量
????????在使用ESP32時(shí)可以很方便將ESP32設(shè)備設(shè)置為熱點(diǎn)并通過(guò)網(wǎng)頁(yè)控制,常用的控制方式有GET請(qǐng)求或使用POST傳輸JSON格式的方式將需要的控制信號(hào)發(fā)送給ESP32,并且在開發(fā)過(guò)程中廣泛使用。
????????當(dāng)然這兩者存在一些問(wèn)題就是數(shù)據(jù)量太大,通過(guò)HTTP協(xié)議傳輸給ESP32后數(shù)據(jù)信息內(nèi)部包含很多無(wú)用信息,例如傳參數(shù)值1500,瀏覽器傳輸過(guò)去的肯定是4個(gè)字節(jié)加一個(gè)鍵以及一個(gè)分隔符等號(hào)或冒號(hào)等,這些鍵、分隔符發(fā)送到ESP32中,ESP32還需要去進(jìn)行數(shù)據(jù)的解析以及字符到整型的轉(zhuǎn)換這個(gè)過(guò)程是會(huì)消耗一定量的時(shí)間的而且數(shù)據(jù)越多消耗的時(shí)間也就越長(zhǎng)對(duì)于一些對(duì)實(shí)時(shí)性要求較高的場(chǎng)景就無(wú)法使用了。
????????這時(shí)就可以使用JS自帶的數(shù)值轉(zhuǎn)Byte的方式直接將所需要的數(shù)據(jù)裝入Byte數(shù)組,直接發(fā)送Byte數(shù)據(jù)到ESP32,ESP32只需要將Byte數(shù)組放入對(duì)應(yīng)的結(jié)構(gòu)體或直接放入數(shù)組將數(shù)值提取出來(lái)就可以了可以用極少的數(shù)據(jù)量來(lái)進(jìn)行文件的傳輸。
????? ? 想要實(shí)現(xiàn)該功能就需要用到JavaScript中的幾個(gè)函數(shù)。
? ? ? ? ESP32接收相關(guān)代碼示例 ESPIDF 兼容Arduino
上面是一個(gè)PWM輸出測(cè)試的相關(guān)應(yīng)用,根據(jù)這個(gè)道理還可以應(yīng)用在智能燈智能車上的控制,這樣只需在ESP32中定義好接收數(shù)據(jù)的格式以及對(duì)應(yīng)的控制器,就可以像使用一些SPI I2C設(shè)備一樣通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)對(duì)設(shè)備的控制。