作者:Jeremy Cook
Arduino 网络服务器通过 Wi-Fi 网络与微控制器进行交互曾经是一件相当新奇的事情。如今,您可以使用 ESP32 开发板和 Arduino IDE,在短短几分钟内启动并运行本地 ESP32 网络服务器。
在本次演示中,您需要一台 Adafruit ESP32 Feather,外加一个运行频率为 2.4 GHz 的 Wi-Fi 网络。我们将使用 Arduino 2.0 IDE 对 ESP32 进行编程。我们还采用了磁体、LED 和电阻器,但这些可有可无。
ESP32 网络服务器软件准备
通过安装 Arduino 2.0 IDE,开始 ESP32 网络服务器的设置。要用于 ESP32 设备,请打开 Arduino IDE > Preferences(首选项)对话框,并将此行添加到附加电路板管理器 URL 字段:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
导航至 Tools(工具)> Board(电路板)> Boards manager(电路板管理器),并搜索“esp32”。安装出现的“esp32 by Espressif Systems”板定义,您将能够对 ESP32 板进行编程,并获得一系列示例。
LED 服务器控制
通过 USB 将您的 ESP32 Feather 开发板插入您的计算机,并在调试图标右侧的下拉菜单中选择适当的端口。选择后,您将看到一个电路板列表。在这种情况下,键入 Adafruit esp32 并选择出现的 Adafruit ESP32 Feather 选项。
导航至 File(文件)> Examples(示例)> WiFi 并加载 SimpleWiFiServer。修改代码行 30 和 31,以包含您实际的 SSID 和密码。如果存在多个选项,请确保您正在访问 2.4 GHz 网络。点击上传按钮,它会编译并发送程序到您的电路板上。
编程完成后,ESP32 Feather 将尝试连接到您的网络。在 Arduino IDE 中打开串口监视器(右上角的图标),并将其设置为 115200 波特。这会列出一个用于访问的 IP 地址,尽管您可能需要重置和/或向下滚动才能显示。在浏览器中导航到列出的 IP 地址,您会看到两行文本和链接,邀请您打开或关闭引脚 5。
您可以将一个 LED/电阻器连接到引脚 5(如第一张图片所示),让代码按原样工作。或者,您可以将其设置为内置 LED,以避免这种轻微的硬件复杂性。为此,在第 38、103 和 106 行用 LED_BUILTIN 代替[引脚] 5,它将在没有任何外部硬件的情况下点亮。或者,您也可以将第 87 行和第 88 行中的“引脚 5 的 LED”更改为“内置 LED”,以使用户界面更加准确。重新上传以使更改生效。
适用于您的 ESP32 网络服务器的霍尔效应传感器
远程控制很棒,但是您希望您的 ESP32 网络服务器在远程位置感知什么呢?这里,我们将利用 ESP32-WROOM-32E 模块的内置霍尔效应传感器,向我们展示附近的磁场。
将以下代码行直接添加到第 88 行的 client.print 函数下:
int val = 0;
val = hallRead();
client.print("magnet status ");
client.print(val);
该代码建立了一个变量“val”,用于存储霍尔效应读数。它读取板载霍尔传感器,并在客户端的网络浏览器上打印结果。请注意,这是一个取决于磁场方向的模拟值,如对比霍尔效应传感器与簧片开关的文章所述。
图片来源:Jeremy Cook
为进行测试,请将代码上传到您的 ESP32 Feather,并将您的浏览器指向正确的 IP 地址。现在您会注意到第三行显示磁场读数。
在 ESP32-WROOM-32E 模块顶部放置一块磁铁,然后刷新您的浏览器。该值将根据存在的磁场进行更新。您仍然可以通过跟随页面链接或简单地导航到相应的地址来关闭和打开灯光,但是现在此操作也将更新磁场值。
进一步利用 ESP32
本文概述了如何使用 ESP32 开发板和 Wi-Fi 网络,通过 Arduino 设置一个非常简单的网络服务器。ESP32 的 Wi-Fi 功能允许通过恰当的设置访问云和更广阔的互联网。该模块可用于各种消费、DIY 和原型制作应用。
在 Arduino IDE 中创建您的 ESP32 网络服务器之前,请在 Arrow.com 查看行业领先制造商提供的大量产品,如下所示,以便开始使用。