上一期写了一个ESP32CAM点灯程序《ESP32-CAM、ESP8266、WIFI、蓝牙、摄像头设备实现嵌入式服务器点灯(原理图+源码)》获得了官方2021年度免费方案销量top100的好成绩,链接附上:https://www.cirmall.com/circuit/19262/
这次再升级一下,使用现在最流行的WebSocket技术在ESP32CAM上构建一个Websocket服务器实时响应浏览器客户端的请求,实现实时点灯,这次客户端再也不用发送get或者post请求响应了,与上一期的功能一样,但是实现的方案发生了变化。
B站视频演示如下:https://www.bilibili.com/video/BV1BU4y1d7iZ
Websocket技术介绍:现在网页与单片机的通信方式一共有2种:一种是tcp/ip协议下的post和get请求,一种是Websocket通信方式。前者在我发布的很多电路方案中都有体现,但是后者是第一次出现,后期我会将两者结合起来构建物联网监控系统。总体来概括后者的功能:在网页不需要刷新的条件下让网页与服务器长期链接,所以在网页上可以实时打印出开关灯的状态和服务器返回的消息。如下图所示:
在单片机上运行Websocket有什么用呢?第一可以实现在线OTA固件升级,第二可以实现网页与单片机实时交互,不需要使用get请求也能提交表单。在物联网中起到一个实时反馈的好效果。后期我会做好几个专题,包括:Websocket图传、Websocket智能小车、Websocket网页智能配网、Websocket物联网监控系统、等等。
这次的代码也不算复杂,程序中开了一个热点,手机和笔记本电脑在浏览器输入192.168.4.1就可以访问到websocket的主页,这主页是写死在单片机里面的。可以方便更改。下面是我原创开源的源码截图。
读者可以好好参考我的代码,我的这个方案可以实现网页推送信息给单片机,单片机也可以推送信息给所有网页,功能相当强大,当然少不了我经典的点灯程序,呵呵。下面是串口打印调试输出:
后面也没有什么可以说的,免费嘛欢迎下载测试,买家可以用这个方案写一个网页遥控器,或者什么网页小游戏也是没有问题的,但是你要是想写网页配网程序,我估计你还是得买我的程序,因为我写的websocket网页配网程序真的非常丝滑,一般人还真的写不出来的。
后期我还会推出java版本和JavaWeb版本的Websocket服务器与ESP32客户端通过Websocket相互通信,包括图传技术,MQTT技术,图像处理技术,3D VR智能眼镜等等,组成物联网监控系统,全国独家原创,值得期待。