使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)

一、方法一(会编译,功能很强大)
自动配网首先想到的是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服务器)
文章图片

为啥呢?原来官方默认是关闭的,指导为啥!~使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

咋办呢?度娘有解决办法,思路是修改源文件,再重新编译。
这个博客介绍的很棒,有空研究下!点这里
嫌编译麻烦的,可以刷下下边这个固件,先试试!不过模块不应适合你!~~ NodeMCU固件(含WiFi配置) 链接:https://pan.baidu.com/s/1jwWB7ZxoEY1tK0Tilq_OoA 提取码:0y6t 二、使用enduser模块实现
1、构建添加模块固件
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

2、
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

3、电脑连接模块开放的网络
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

4、通过网页配置联网 192.168.4.1或者example.com
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

5、配网成功后貌似模块的网络信号就消失了
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

官方语法:
使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

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服务器)
文章图片

使用nodemcu玩转物联网系列(九)(通过“自动配网”功能实现nodemcu连接oennet服务器)
文章图片

**
但是,但是,但是,实践证明!~手动连接成功率不高,又慢!!!建议自动模式!!!! 只需要 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
向作者致谢!~

    推荐阅读