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