首页 > 编程语言 >【花雕学编程】Arduino动手做(237)---使用 ESP32 V1 Rev1 自身的热点来创建一个简易的 HTTP 服务器,并控制板载LED

【花雕学编程】Arduino动手做(237)---使用 ESP32 V1 Rev1 自身的热点来创建一个简易的 HTTP 服务器,并控制板载LED

时间:2024-10-30 08:47:56浏览次数:3  
标签:动手做 板载 LED Arduino ESP32 引脚 server html Serial

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB FLASH ESP-WROOM-32开发板

在这里插入图片描述
处理器:
CPU:Xtensa 双核 32 位 LX6 微处理器,运行频率为 160 或 240 MHz,性能高达 600 DMIPS
超低功耗 (ULP) 协处理器
内存: 520 KiB SRAM
无线连接:
无线网络连接:802.11 b/g/n
蓝牙:v4.2 BR/EDR 和 BLE(与 Wi-Fi 共享无线电)
外设接口:
12 位 SAR ADC,多达 18 个通道
2 × 8 位 DAC
10 × 触摸传感器(电容式传感 GPIO)
4 × SPI
2 个 × I²S 接口
2 个 × I²C 接口
3 × UART
SD/SIO/CE-ATA/MMC/EMMC 主机控制器
SDIO/SPI 从控制器
以太网MAC 接口,支持专用 DMA 和 IEEE 1588 精确时间协议
CAN 总线 2.0
红外遥控器(TX/RX,最多 8 个通道)
电机 PWM
LED PWM(多达 16 个通道)
霍尔效应传感器
超低功耗模拟前置放大器
安全:
全部支持 IEEE 802.11 标准安全功能,包括 WFA、WPA/WPA2 和 WAPI
安全启动
Flash 加密
1024 位 OTP,客户最高 768 位
加密硬件加速:AES、SHA-2、RSA、椭圆曲线加密 (ECC)、随机数生成器 (RNG)
电源管理:
内部低压差稳压器
用于 RTC 的单个电源域
5μA 深度睡眠电流
从 GPIO 中断、定时器、ADC 测量、电容式触摸传感器中断中唤醒
电池管理
用于 3.7v 电池的连接器(如 18650)。

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB
FLASH ESP-WROOM-32开发板
{花雕动手做}项目之四:使用 ESP32 V1 Rev1 自身的热点来创建一个
简易的 HTTP 服务器,并控制板载LED

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
     实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB 
     FLASH ESP-WROOM-32开发板
   {花雕动手做}项目之四:使用 ESP32 V1 Rev1 自身的热点来创建一个
   简易的 HTTP 服务器,并控制板载LED
*/

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "ESP32_Hotspot";
const char* password = "12345678";

WebServer server(80);

const int ledPin = 22; // 确认板载LED引脚是否为2

void handleRoot() {
  String html = "<html><body>";
  html += "<h1>ESP32 LED </h1>";
  html += "<p><a href=\"/LED_ON\"><button>ON LED</button></a></p>";
  html += "<p><a href=\"/LED_OFF\"><button>OFF LED</button></a></p>";
  html += "</body></html>";
  server.send(200, "text/html", html);
}

void handleLEDOn() {
  digitalWrite(ledPin, LOW); // 打开LED
  server.send(200, "text/html", "<html><body><h1>LED ON</h1><p><a href=\"/\">HOME</a></p></body></html>");
  Serial.println("LED 已打开");
}

void handleLEDOff() {
  digitalWrite(ledPin, HIGH); // 关闭LED
  server.send(200, "text/html", "<html><body><h1>LED OFF</h1><p><a href=\"/\">HOME</a></p></body></html>");
  Serial.println("LED 已关闭");
}

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW); // 确保LED初始状态为关闭
  WiFi.softAP(ssid, password);
  Serial.println("访问以下地址连接到服务器:");
  Serial.println(WiFi.softAPIP());

  server.on("/", handleRoot);
  server.on("/LED_ON", handleLEDOn);
  server.on("/LED_OFF", handleLEDOff);

  server.begin();
  Serial.println("HTTP 服务器已启动");
}

void loop() {
  server.handleClient();
}

代码解读:
检查引脚配置:确保板载LED的引脚设置正确。ESP32的不同型号可能有不同的引脚配置,确保使用的是正确的引脚号(如引脚2)。
初始化设置:在setup函数中初始化LED引脚,并设置其初始状态为关闭。通过digitalWrite(ledPin, LOW)确保LED初始状态为关闭。
调试信息输出:通过Serial.println()函数在串口监视器中打印调试信息,帮助确认命令是否正确接收和执行。例如,在LED打开和关闭时打印相应的信息。
HTML响应页面:在处理函数中生成HTML响应页面,向用户提供反馈信息。通过server.send()函数发送HTML页面,确认LED状态的变化。
服务器处理请求:在loop函数中不断调用server.handleClient()函数,以处理客户端请求。确保服务器能够实时响应用户的操作。

实验串口返回情况

在这里插入图片描述

手机上搜索热点并连接

在这里插入图片描述
在这里插入图片描述

在手机端打开浏览器,输入IP地址:192.168.4.1

在这里插入图片描述
打开或者关闭LED

在这里插入图片描述
在这里插入图片描述
实验场景图
在这里插入图片描述
在这里插入图片描述

标签:动手做,板载,LED,Arduino,ESP32,引脚,server,html,Serial
From: https://blog.csdn.net/weixin_41659040/article/details/143335183

相关文章

  • Raspberry Pi和Arduino哪个更适合DIY项目
    RaspberryPi和Arduino都是流行的DIY项目工具,但它们各有特点和适用范围。RaspberryPi是一种微型计算机,适合需要计算能力的项目,如媒体中心、游戏机或小型服务器。Arduino是一个微控制器板,适合控制简单的硬件项目,如自动化系统和传感器网络。选择哪个取决于项目需求:需要更多计算能......
  • AI编程Arduino单片机点亮WS2812灯带彩虹灯效
    引言随着物联网(IoT)和智能家居的迅速发展,LED灯带因其灵活性和多样的显示效果,广泛应用于装饰、广告、舞台等多个领域。WS2812作为一种智能可控的LED灯带,以其独立控制、丰富的色彩和高亮度,成为众多开发者的首选。而在控制WS2812灯带的过程中,编写高效、稳定的单片机代码至关重要。......
  • 单色LED灯 Arduino
    单色LED灯1.LightEmittingDiode/发光二极管,简称LED。它是一种能够发出单一颜色光的半导体设备。它由PN结构成的,当电流通过时,电子与空穴复合,释放能量以形成光。单色LED的颜色取决于发光材料的能带结构,常见的颜色有红色、绿色、蓝色和黄色LED的优点包括:高能效:消耗较少电......
  • Arduino Nano点灯
    1、选开发板2、选芯片3、选端口4、编程器选项5、打开例程6、编译7、上传代码8、LED接法:9、实物10、I/O图 ......
  • 大模型畅销书推荐!动手做AI Agent +从零构建大模型 附书籍PDF
    本次书单我为大家收集了大模型相关的新书。探索《大模型应用开发动手做AIAgent》是畅销作者黄佳老师的新书,带领读者踏上AIAgent开发之旅,掌握尖端技术和实用技巧。01《大模型应用开发动手做AIAgent》本书特色从零开始,循序渐进,图解直击痛难点。理论与实践相结合,7......
  • 基于Arduino的遥控自平衡小车
    基于Arduino的遥控自平衡小车一、项目简介二、所需材料三、理论支持四、外壳设计五、线路连接六、检查MPU6050连接七、烧录库八、PID控制设置九、设置传感器参数十、无线移动控制十一、超声波模块一、项目简介一个使用ArduinoNano、MPU-6050以及便宜的6伏直流齿轮电......
  • Arduino Nano制作
    1、硬件原理图:2、相关文件路径:boards.txt(包含熔丝位及相关文件的名称信息)路径:D:\arduino-1.85\hardware\arduino\avrATmegaBOOT_168_atmega328.hex路径:D:\应用软件\arduino-1.85\hardware\arduino\avr\bootloaders\atmega3、读取芯片ID:4、进入熔丝位配置:5、设置熔丝位:bo......
  • Arduino UNO R3自学笔记24 之 Arduino如何使用MAX7219控制多个数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:前面学习了单个数码管的控制,但是在大多场合一个数码管是满足不了使用场景的,因此对于数码管的学习,应该学会用尽可能少的端口去驱动更多的数码管,在此情况下,MAX7219比较适合我们使用。1.MAX7219引脚及功能介绍......
  • 基于Arduino的超声波和舵机模块集成使用
    一.超声波模块和舵机模块集成使用超声波模块:HC-SR04舵机模块:SG90目的:通过ArduinoUNO核心板控制舵机旋转到不同位置,同时获取不同位置超声波模块和障碍物间的距离,配合控制算法,进行基于超声波智能避障小车的制作。二.源代码#include<Servo.h>#definetrigPin2#define......
  • Arduino UNO R3自学笔记23 之 Arduino如何使用4511控制数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:因为7段数码管控制需要用到7个IO,这会严重占用Arduino的IO口,因此我们采用现有IC来节省Arduino的IO口。1.CD4511介绍        CD4511是一款用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器。它具......