一、方法一(会编译,功能很强大)
自动配网首先想到的是esp8266的startsmart功能。官方文档介绍如下:
1、仅在wifi.STATION模式下可用。
2、语法:
wifi.startsmart(type, callback)
参量
type ESP_TOUCH为0,AIR_KISS为1。
callbackfunction(ssid, password) end在配置后会被调用的形式的回调函数。
3、范例
wifi.setmode(wifi.STATION)
wifi.startsmart(0,
function(ssid, password)
print(string.format("Success. SSID:%s ;
PASSWORD:%s", ssid, password))
end
)
然并卵,出错了!~~~~~~~~
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/17d508c67a134db789b64d70fdeb2faa.jpg)
文章图片
为啥呢?原来官方默认是关闭的,指导为啥!~
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/39bc9824d3804f23ad6eebb4d004c138.jpg)
文章图片
咋办呢?度娘有解决办法,思路是修改源文件,再重新编译。
这个博客介绍的很棒,有空研究下!点这里
嫌编译麻烦的,可以刷下下边这个固件,先试试!不过模块不应适合你!~~ NodeMCU固件(含WiFi配置) 链接:https://pan.baidu.com/s/1jwWB7ZxoEY1tK0Tilq_OoA 提取码:0y6t 二、使用enduser模块实现
1、构建添加模块固件
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/53568b0083a14d01b976ad0417145055.jpg)
文章图片
2、
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/0672dd81db5046b8b67f4fb39d908064.jpg)
文章图片
3、电脑连接模块开放的网络
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/7bdae87b53e64263bf743ff9c9c00dbe.jpg)
文章图片
4、通过网页配置联网 192.168.4.1或者example.com
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/7dc41e7c50d44f9dba0ba6f0c7877b5d.jpg)
文章图片
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/d6a238d1794045dfa045b9642f6916e2.jpg)
文章图片
5、配网成功后貌似模块的网络信号就消失了
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/64df40bb9f204bfcaf253400a00a40eb.jpg)
文章图片
官方语法:
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/1b9553ead8444d0cb0a2812235e8dd02.jpg)
文章图片
wifi.setmode(wifi.STATIONAP)
wifi.ap.config({ssid="MyPersonalSSID", auth=wifi.OPEN})
enduser_setup.manual(true)
enduser_setup.start(
function()
print("Connected to WiFi as:" .. wifi.sta.getip())
end,
function(err, str)
print("enduser_setup: Err #" .. err .. ": " .. str)
end
)
【使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)】
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/ba47445823654a4388ed44e210d1299d.jpg)
文章图片
![使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)](https://img.it610.com/image/info8/08c0db4fc1e24182b54beb7794a47fc7.jpg)
文章图片
**
但是,但是,但是,实践证明!~手动连接成功率不高,又慢!!!建议自动模式!!!! 只需要 enduser_setup.start()就OK!其他步骤同上文! **
enduser_setup.start(
function()
print("Connected to WiFi as:" .. wifi.sta.getip())
end,
function(err, str)
print("enduser_setup: Err #" .. err .. ": " .. str)
end
)
下边看 使用nodemcu玩转物联网系列(八)实现自动配网:
led_pin = 1--需要控制的led灯--原来的手动
--wifi.setmode(wifi.STATION)
--cfg = {}
--cfg.ssid = "kyn"
--cfg.pwd = "20160118"
--wifi.sta.config(cfg)
--wifi.sta.connect()--自动配网
enduser_setup.start(
function()
print("Connected to WiFi as:" .. wifi.sta.getip())
end,
function(err, str)
print("enduser_setup: Err #" .. err .. ": " .. str)
end
)DeviceId = "587667371"
ProductId = "325428"
AuthoInfo = "test"
host = "183.230.40.39"
port = 6002timer = tmr.create()
function con()
if wifi.sta.getip() == nil then
print("coneting........")
else
timer:stop()
print("success!~")
print(wifi.sta.getip())client_hum = mqtt.Client(DeviceId,120,ProductId,AuthoInfo)
client_hum:connect(host,port,0,
function(client)
print("connect success!")
end)
function h()client_hum:subscribe("$dp",0,
function(client)
print("subscribe success")
end)client_hum:on("message",
function(client,topic,message)
print(message)pwm.setup(led_pin, 500, 0)
pwm.start(led_pin)
pwm.setduty(led_pin,message)
end)
end
timer:alarm(1000,tmr.ALARM_AUTO,h)end
end
timer:alarm(1000,tmr.ALARM_AUTO,con)
部分内容转载了:https://blog.csdn.net/dianzishi123/article/details/84962435
向作者致谢!~
推荐阅读
- NodeMCU(1)环境搭建与固件烧录
- NodeMCU网络UDP客户端请求,示例代码(C++开发)
- NodeMCU的smartConfig功能代码实现手机app配置模块连接网络(C++开发)
- 物联网|NodeMcu—局域网通信
- 编程语言|关于NodeMCU的内存测试
- NodeMCU--MQTT学习笔记(一)
- 硬件|从无到有玩NodeMcu(web端控制)
- 使用nodemcu玩转物联网系列(二)(nodemcu做为station模式连接无线路由器)
- ESP8266|NodeMCU介绍
- NodeMCU|NodeMCU入门,烧程序点灯。