ESP32 网络服务器控制输出

      最后更新:2021-10-16 08:34:07 手机定位技术交流文章

      在此程序中, 您将学习如何使用 ESP32 和 WebSocket 通讯协议创建网络服务器 。 例如, 我们将演示如何创建一个网页, 使您能够远程控制 ESP32 输出。 输出状况将在网页上显示, 并自动更新到所有客户端 。

      您可能注意到, 当您同时打开多个标签( 在同一设备或其他设备上) 时, 状态并没有完全改变, 标签会自动打开, 直到您重新加载您的网页。 为了解决这个问题, 我们可以使用 WebSocket 协议, 允许我们将更改通知所有客户端, 并相应刷新网页 。

      协议介绍

      WebSocket 是客户端与服务器之间的持续连接, 使双方能够通过 TCP 连接进行通信。 这意味着数据可以随时从客户端发送到服务器, 或者从服务器发送到客户端 。

      客户端使用 WebSocket 握手来建立与服务器的 WebSocket 连接。 握手从 HTTP 请求/ 回应开始, 以便服务器在同一端口管理 HTTP 和 WebSocket 连接。 当客户端与服务器连接时, 他们可以实时传递 WebSocket 数据 。

      服务器( ESP32) 可以将信息传送给客户或所有客户, 而不必使用 WebSocket 协议来请求。 这样也使我们能够在出现更改时向 Web 浏览器发送通知 。

      这可能发生在网站(点击按钮)或ESP32结尾处(按下电路上的物理按钮)。

      服务器网页

      这是我们将为这个项目创建的网站。

      • ESP32网络服务器提供了一个网页,带有改变GPIO 2状态的按钮。
      • 为了简单起见,我们控制GPIO 2板LED。这个例子可用于控制任何其他GPIO。
      • 此界面显示当前 GPS 状态。 每当 GPIO 状态改变时, 都会刷新 。
      • GPSO 状态在所有客户端中自动更新。 这意味着, 如果您在同一或不同设备上打开多个网络浏览器标签, 它们都会同时更新 。

      工作原理

      下面的图表描述了按开关按钮时发生的情况。

      按下“切换”按钮时,会发生下列事件:

      1. 点击“切换”按钮
      2. 客户端( 您的浏览器) 通过 WebSocket 协议的“ 切换” 信息发送数据 。
      3. ESP32 (服务器) 收到此信息, 因此知道它应该改变 LED 的状态。 在关闭前打开 LED 。
      4. 包含更新的LED状态的数据随后通过WebSocket协议发送给所有客户。
      5. 客户接收信息,并相应调整网站上的LED状况,使我们能够在发生变化后立即使几乎所有客户都了解最新情况。

      库安装

      服务器代码

      代码分解

      详情请见。 此项目是2011年叙利亚抗争特别报导的一部分。 com/esp32_webserver_control.html和全球之声在线.com/esp32_webserver_control.html。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/11836.html

          热门文章

          文章分类