上一期寫(xiě)了一個(gè)ESP32CAM點(diǎn)燈程序《ESP32-CAM、ESP8266、WIFI、藍(lán)牙、攝像頭設(shè)備實(shí)現(xiàn)嵌入式服務(wù)器點(diǎn)燈(原理圖+源碼)》獲得了官方2021年度免費(fèi)方案銷量top100的好成績(jī),鏈接附上:https://www.cirmall.com/circuit/19262/
這次再升級(jí)一下,使用現(xiàn)在最流行的WebSocket技術(shù)在ESP32CAM上構(gòu)建一個(gè)Websocket服務(wù)器實(shí)時(shí)響應(yīng)瀏覽器客戶端的請(qǐng)求,實(shí)現(xiàn)實(shí)時(shí)點(diǎn)燈,這次客戶端再也不用發(fā)送get或者post請(qǐng)求響應(yīng)了,與上一期的功能一樣,但是實(shí)現(xiàn)的方案發(fā)生了變化。
B站視頻演示如下:https://www.bilibili.com/video/BV1BU4y1d7iZ
Websocket技術(shù)介紹:現(xiàn)在網(wǎng)頁(yè)與單片機(jī)的通信方式一共有2種:一種是tcp/ip協(xié)議下的post和get請(qǐng)求,一種是Websocket通信方式。前者在我發(fā)布的很多電路方案中都有體現(xiàn),但是后者是第一次出現(xiàn),后期我會(huì)將兩者結(jié)合起來(lái)構(gòu)建物聯(lián)網(wǎng)監(jiān)控系統(tǒng)。總體來(lái)概括后者的功能:在網(wǎng)頁(yè)不需要刷新的條件下讓網(wǎng)頁(yè)與服務(wù)器長(zhǎng)期鏈接,所以在網(wǎng)頁(yè)上可以實(shí)時(shí)打印出開(kāi)關(guān)燈的狀態(tài)和服務(wù)器返回的消息。如下圖所示:
在單片機(jī)上運(yùn)行Websocket有什么用呢?第一可以實(shí)現(xiàn)在線OTA固件升級(jí),第二可以實(shí)現(xiàn)網(wǎng)頁(yè)與單片機(jī)實(shí)時(shí)交互,不需要使用get請(qǐng)求也能提交表單。在物聯(lián)網(wǎng)中起到一個(gè)實(shí)時(shí)反饋的好效果。后期我會(huì)做好幾個(gè)專題,包括:Websocket圖傳、Websocket智能小車、Websocket網(wǎng)頁(yè)智能配網(wǎng)、Websocket物聯(lián)網(wǎng)監(jiān)控系統(tǒng)、等等。
這次的代碼也不算復(fù)雜,程序中開(kāi)了一個(gè)熱點(diǎn),手機(jī)和筆記本電腦在瀏覽器輸入192.168.4.1就可以訪問(wèn)到websocket的主頁(yè),這主頁(yè)是寫(xiě)死在單片機(jī)里面的??梢苑奖愀摹O旅媸俏以瓌?chuàng)開(kāi)源的源碼截圖。
讀者可以好好參考我的代碼,我的這個(gè)方案可以實(shí)現(xiàn)網(wǎng)頁(yè)推送信息給單片機(jī),單片機(jī)也可以推送信息給所有網(wǎng)頁(yè),功能相當(dāng)強(qiáng)大,當(dāng)然少不了我經(jīng)典的點(diǎn)燈程序,呵呵。下面是串口打印調(diào)試輸出:
后面也沒(méi)有什么可以說(shuō)的,免費(fèi)嘛歡迎下載測(cè)試,買家可以用這個(gè)方案寫(xiě)一個(gè)網(wǎng)頁(yè)遙控器,或者什么網(wǎng)頁(yè)小游戲也是沒(méi)有問(wèn)題的,但是你要是想寫(xiě)網(wǎng)頁(yè)配網(wǎng)程序,我估計(jì)你還是得買我的程序,因?yàn)槲覍?xiě)的websocket網(wǎng)頁(yè)配網(wǎng)程序真的非常絲滑,一般人還真的寫(xiě)不出來(lái)的。
后期我還會(huì)推出java版本和JavaWeb版本的Websocket服務(wù)器與ESP32客戶端通過(guò)Websocket相互通信,包括圖傳技術(shù),MQTT技術(shù),圖像處理技術(shù),3D VR智能眼鏡等等,組成物聯(lián)網(wǎng)監(jiān)控系統(tǒng),全國(guó)獨(dú)家原創(chuàng),值得期待。