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