esp8266 ap 配网例程
时间: 2025-01-03 13:15:33 浏览: 16
### ESP8266 AP模式配网示例子程序
当ESP8266处于AP模式时,能够作为一个无线接入点供其他设备连接。这使得它非常适合用于配置网络设置或其他控制目的的应用场景。下面提供一段简单的Lua脚本代码来展示如何让ESP8266进入AP模式并启动一个简易Web服务器来进行Wi-Fi配置。
```lua
-- 设置ESP8266为AP模式
wifi.setmode(wifi.SOFTAP)
-- 配置SSID和密码
cfg={}
cfg.ssid="MyESP8266"
cfg.pwd="12345678"
-- 应用配置
wifi.ap.config(cfg)
-- 创建HTTP服务器实例
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
-- 发送HTML表单给客户端浏览器
local html = [[
<html>
<body>
<h1>Configure Wi-Fi</h1>
<form action="/" method="POST">
SSID:<br><input type="text" name="ssid"><br>
Password:<br><input type="password" name="pwd"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
]]
conn:send(html)
-- 处理提交的数据
if string.find(payload,"POST") then
ssid_start = string.find(payload,"ssid=")+5
pwd_start = string.find(payload,"&pwd=")+5
new_ssid = string.sub(payload,ssid_start,string.find(payload,"&",-1)-1)
new_pwd = string.sub(payload,pwd_start)
file.open("config.lua","w+")
file.writeline("cfg={}")
file.writeline('cfg.ssid="'..new_ssid..'"')
file.writeline('cfg.pwd="'..new_pwd..'"')
file.close()
wifi.sta.config(new_ssid,new_pwd)
wifi.sta.connect()
conn:send("<html><head></head><body>Configuration saved and attempting to connect...</body></html>")
end
collectgarbage()
end)
end)
```
这段代码首先设置了ESP8266的工作模式为仅AP模式[^1]。接着定义了一个带有默认名称和密码的Wi-Fi热点,并通过`wifi.ap.config()`函数应用这些参数。之后创建了一个TCP服务器监听端口80上的HTTP请求,在接收到GET请求时返回一个包含两个输入框(分别对应新的SSID和密码)以及提交按钮的网页;而在处理POST请求时,则会读取用户填写的信息并将它们写入名为`config.lua`的新文件中以便后续重启后仍能保持配置不变,同时尝试使用新获取到的凭证去建立STA连接[^2]。
阅读全文