当前位置: 首页> 科技> 互联网 > 无极门户网站_app推广放单平台_二十条优化措施_百度域名收录提交入口

无极门户网站_app推广放单平台_二十条优化措施_百度域名收录提交入口

时间:2025/7/14 6:33:35来源:https://blog.csdn.net/2303_80346267/article/details/143526202 浏览次数:0次
无极门户网站_app推广放单平台_二十条优化措施_百度域名收录提交入口

在物联网项目中,ESP32作为接入点(AP)可以生成热点网络,设备连接到ESP32后,可以通过Web页面进行交互,例如控制LED的亮灭。本文将讲解如何在MicroPython下实现:

  1. ESP32作为Wi-Fi热点;
  2. 创建简单的Web服务器;
  3. 控制LED的亮灭。

通过学习本教程,你将能够使用ESP32在局域网中创建网页控制器,实现LED灯的远程控制。

搭建ESP32热点

ESP32作为Wi-Fi接入点,可以创建热点,供其他设备连接。热点模式适用于无需外部网络的本地控制场景。

代码实现

我们首先定义一个函数,使ESP32创建一个热点并显示其IP地址。

import networkdef create_ap(ssid, password):ap = network.WLAN(network.AP_IF)       # 配置为AP模式ap.active(True)                        # 激活AP模式ap.config(essid=ssid, password=password)  # 设置热点SSID和密码print("热点已启动,IP地址为:", ap.ifconfig()[0])# 启动热点
create_ap("ESP32_Hotspot", "12345678")
  • network.WLAN(network.AP_IF):配置Wi-Fi为AP模式。
  • ap.config(essid=ssid, password=password):设定热点的名称和密码。
  • ap.ifconfig():获取网络配置,ap.ifconfig()[0]返回IP地址。

现在,ESP32将创建一个名为ESP32_Hotspot的Wi-Fi热点,密码为12345678。设备可以连接此热点进行通信。

创建Web服务器

ESP32作为HTTP服务器,可以在用户访问其IP地址时返回网页并接受用户的请求,接下来我们将搭建简单的服务器,实现网页控制LED。

代码实现

我们创建一个简单的Web服务器,允许用户通过点击网页上的按钮来控制LED的开关。

import socket
from machine import Pin# LED连接的GPIO引脚
led = Pin(2, Pin.OUT)def web_page():"""生成网页内容"""# HTML代码,包含按钮用以控制LED状态html = """<html><head><title>ESP32 LED控制</title></head><body><h2>ESP32 LED 控制器</h2><p>点击按钮来切换LED状态。</p><a href="/?led=on"><button>LED ON</button></a><a href="/?led=off"><button>LED OFF</button></a></body></html>"""return html# 创建并启动服务器
def start_server():s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('', 80))s.listen(5)print("服务器启动,监听端口80")while True:conn, addr = s.accept()print("客户端连接自", addr)request = conn.recv(1024).decode()print("请求内容:", request)# 检测请求中的LED控制指令if '/?led=on' in request:led.value(1)  # 点亮LEDelif '/?led=off' in request:led.value(0)  # 熄灭LED# 返回HTML页面response = web_page()conn.send("HTTP/1.1 200 OK\n")conn.send("Content-Type: text/html\n")conn.send("Connection: close\n\n")conn.sendall(response)conn.close()# 运行服务器
start_server()
  • LED控制:在web_page()中生成一个简单的HTML页面,包含两个按钮:LED ONLED OFF。这些按钮指向带有不同参数的URL,用于控制LED。
  • 请求解析if '/?led=on' in request检测GET请求中的参数来判断是否需要点亮或熄灭LED。
  • HTTP响应conn.send()用于将网页内容返回给客户端。

运行效果

  • 将ESP32连接至电源,其他设备连接至ESP32_Hotspot热点。
  • 打开浏览器访问ESP32的IP地址(如192.168.4.1)。
  • 点击按钮即可控制LED的亮灭状态。

状态反馈

在实际应用中,通常需要在页面上实时显示LED的状态。我们可以对网页进行扩展,使页面根据LED状态动态显示。

def web_page():"""生成带状态反馈的网页内容"""# 检查LED当前状态if led.value() == 1:led_state = "ON"else:led_state = "OFF"html = """<html><head><title>ESP32 LED控制</title></head><body><h2>ESP32 LED 控制器</h2><p>LED 当前状态: <strong>{}</strong></p><a href="/?led=on"><button>LED ON</button></a><a href="/?led=off"><button>LED OFF</button></a></body></html>""".format(led_state)return html

刷新页面时会动态显示LED状态(ON或OFF),更便于用户了解设备当前状态。

完整代码

以下是实现上述功能的完整代码,将ESP32设为热点,启动Web服务器,并通过网页控制LED。

import network
import socket
from machine import Pin# 创建热点
def create_ap(ssid, password):ap = network.WLAN(network.AP_IF)ap.active(True)ap.config(essid=ssid, password=password)print("热点已启动,IP地址为:", ap.ifconfig()[0])# LED控制代码
led = Pin(2, Pin.OUT)def web_page():"""生成网页内容并包含LED状态"""led_state = "ON" if led.value() == 1 else "OFF"html = """<html><head><title>ESP32 LED控制</title><meta charset="UTF-8"></head><body><h2>ESP32 LED 控制器</h2><p>LED 当前状态: <strong>{}</strong></p><a href="/?led=on"><button>LED ON</button></a><a href="/?led=off"><button>LED OFF</button></a></body></html>""".format(led_state)return htmldef start_server():s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('', 80))s.listen(5)print("服务器启动,监听端口80")while True:conn, addr = s.accept()print("客户端连接自", addr)request = conn.recv(1024).decode()print("请求内容:", request)if '/?led=on' in request:led.value(1)  # 点亮LEDelif '/?led=off' in request:led.value(0)  # 熄灭LEDresponse = web_page()conn.send("HTTP/1.1 200 OK\n")conn.send("Content-Type: text/html\n")conn.send("Connection: close\n\n")conn.sendall(response)conn.close()# 启动程序
create_ap("ESP32_Hotspot", "12345678")
start_server()

总结

本文介绍了ESP32在MicroPython环境下的Wi-Fi热点模式、简单Web服务器搭建及GPIO控制方法。通过将这些功能组合,你可以构建基于ESP32的局域网控制系统,实现对LED等外设的网页控制。这种方法非常适合本地物联网项目,如家居自动化、传感器数据展示等。

关键字:无极门户网站_app推广放单平台_二十条优化措施_百度域名收录提交入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: