ESP32 是一款功能强大的微控制器,常用于物联网(IoT)项目。它支持 Wi-Fi 和蓝牙连接,可以方便地实现联网控制。以下是一个基本的示例,展示如何使用 ESP32 连接到 Wi-Fi 网络,并通过一个简单的 HTTP 服务器控制一个 LED。
硬件准备
- ESP32 开发板
- 一个 LED
- 一个 220Ω 电阻
- 面包板和连接线
电路连接
- 将 LED 的正极(长脚)通过 220Ω 电阻连接到 ESP32 的一个 GPIO 引脚(例如 GPIO 2)。
- 将 LED 的负极(短脚)连接到 GND。
软件准备
- 安装 Arduino IDE。
- 在 Arduino IDE 中安装 ESP32 开发板支持包。
代码实现
以下是一个示例代码,用于在 ESP32 上创建一个简单的 HTTP 服务器,通过访问特定的 URL 来控制 LED 的开关。
cpp复制代码
|---|------------------------------------------------------------------------------|
| | #include <WiFi.h>
|
| | #include <ESPAsyncWebServer.h>
|
| | |
| | const char* ssid = "your_SSID";
|
| | const char* password = "your_PASSWORD";
|
| | |
| | AsyncWebServer server(80);
|
| | const int ledPin = 2;
|
| | bool ledState = false;
|
| | |
| | void setup() {
|
| | pinMode(ledPin, OUTPUT);
|
| | digitalWrite(ledPin, ledState);
|
| | |
| | Serial.begin(115200);
|
| | |
| | WiFi.begin(ssid, password);
|
| | |
| | while (WiFi.status() != WL_CONNECTED) {
|
| | delay(1000);
|
| | Serial.println("Connecting to WiFi...");
|
| | }
|
| | |
| | Serial.println("Connected to WiFi");
|
| | Serial.println("IP address: ");
|
| | Serial.println(WiFi.localIP());
|
| | |
| | AutoConnectPortal portal;
|
| | portal.begin();
|
| | |
| | AsyncPage page = AsyncPage("/control")
|
| | .title("LED Control")
|
| | .p() << F("Control the LED:")
|
| | .form(FPOST("/led"))
|
| | .label("State") & .checkbox("state", "On", ledState)
|
| | .submit("Submit");
|
| | |
| | server.on("/led", HTTP_POST, [](AsyncWebServerRequest *request){
|
| | String stateStr = request->arg("state");
|
| | ledState = (stateStr == "on");
|
| | digitalWrite(ledPin, ledState);
|
| | request->send_P(200, "text/plain", ledState ? "LED is ON" : "LED is OFF");
|
| | });
|
| | |
| | server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
|
| | request->send_P(200, "text/html", page.html());
|
| | });
|
| | |
| | server.begin();
|
| | }
|
| | |
| | void loop() {
|
| | }
|
说明
- Wi-Fi 连接:代码首先尝试连接到指定的 Wi-Fi 网络。
- HTTP 服务器 :使用
AsyncWebServer
库创建一个简单的 HTTP 服务器。 - LED 控制页面:创建一个简单的 HTML 页面,允许用户通过复选框控制 LED 的开关状态。
- 处理 POST 请求:当表单提交时,服务器处理 POST 请求并更新 LED 的状态。
步骤
- 将上述代码复制到 Arduino IDE 中。
- 根据你的 Wi-Fi 网络设置修改
ssid
和password
。 - 选择正确的 ESP32 开发板和端口,然后上传代码。
- 打开串口监视器,查看 ESP32 的 IP 地址。
- 在浏览器中访问
http://<ESP32_IP>/control
,通过表单控制 LED。
这样,你就实现了一个简单的 ESP32 联网控制项目。根据需要,你可以进一步扩展这个项目,添加更多的传感器和控制设备。