玖叶教程网

前端编程开发入门

nodemcu连接Wifi,并连接Tcp服务器,实现手机控制LED小灯开和关

上期文章讲述了nodemcu如何刷新固件,并成功点亮了小LED灯。有兴趣的朋友可以回看往期文章。

今天小智来说下,nodemcu如何连接wifi,并连接Tcp服务器,实现手机控制一个LED小灯开关。

编写以下三个文件,上传到nodemcu即可实现wifi以及连接TCP服务器的功能。

init.lua

function startup()
 if file.open("init.lua") == nil then
 print("init.lua deleted or renamed")
 else
 print("NodeMcu is Running")
 file.close("init.lua") 
 run()
 end
end
function run()
 dofile("wifi.lua") 
end
startup()

wifi.lua

function wifi_connect(name, password) 
 wifi.setmode(wifi.STATIONAP)
 wifi.sta.config(name, password)
 wifi.sta.connect()
 tmr.alarm(2, 1000, 1, function()
 if wifi.sta.getip() == nil then
 print("Connecting Wifi...")
 else
 tmr.stop(2)
 print("Connected, IP is "..wifi.sta.getip())
 end
 end)
end
wifi_connect('你的wifi ssid','你的wifi密码')

tcpclient.lua

function tcp_connect(ip, port)
 sk=net.createConnection(net.TCP, 0)
 sk:on("receive", 
 function(sck, c)
 rec = crypto.toHex(c)
 print(rec == "10") 
 local switch = { 
 ["10"] = function() 
 print("switch:"..rec) 
 gpio.write(1, gpio.HIGH)
 end, 
 ["11"] = function() 
 print("switch:"..rec) 
 gpio.write(1, gpio.LOW)
 end, 
 ["20"] = function() 
 print("switch:"..rec) 
 gpio.write(2, gpio.HIGH) 
 end,
 ["21"] = function() 
 print("switch:"..rec) 
 gpio.write(2, gpio.LOW)
 end 
 }
 switch[rec]()
 end)
 sk:connect(port, ip)
end
tcp_connect("192.168.249.211", 8282)

连接家里wifi时,小智写死了ssid和密码,我们先从最简单的开始,后面章节逐步展开SmartConfig这类通过手机设置ESP8266连接家中wifi的知识。

关于协议

上用简单的应用了一个协议,控制端控制一个2路继电器(开关量触发),协议内容分别是十六进制格式如下:

10-1路继电器关,11-1路继电器开,20-2路继电器关,21-2路继电器开

指令分别控制D1和D2输出电平。

Lua的十六进制实在是有点恶心~:)其实完全可以只用字符串,我习惯了用十六进制,所以发送时需勾选十六进制发送。

上传到mcu,跑一下,可以看到效果,我的小视频中可以看最终效果。

好啦,这期就到这里,小智打包了这个范例代码,朋友们请从私信“MCUWIFI”即可获取。持续关注,小搜将为大家带来更多有意思的文章。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言