先看下ESP8266控制继电器的原理图
先传下使用到的工具:lua开发固件.zip
其他工具请参考链接:https://pan.baidu.com/s/1V4PBsZugO70Vpb8fR-w43A
提取码:sp97
其中有烧写固件的软件; 空白固件; lua开发工具等
ESP8266烧写lua开发固件后只需要使用lua进行开发即可
下面是lua开发的源码; ESP8266模块内部默认的是init.lua文件 想要在添加问价文件只能在init.lua文件中通过dofile加载其他文件
在本次的wifi开关中 只是用了两个.lua 文件 一个是"init.lua"用于初始化继电器IO,加载tcpserver.lua文件 另一个就是"tcpserver.lua"文件,在该文件中实现了模块的开放热点,建立TCP服务器,监听端口 接收TCP客户端发送的数据, 解析控制继电器的指令实现控制继电器等 ;
直接贴程序:
init.lua文件:
RELAY_Pin = 1
gpio.mode(RELAY_Pin, gpio.OUTPUT)
gpio.write(RELAY_Pin,0)
tmr.alarm(0,5000,0,function()
dofile("tcpserver.lua")
end)
init.lua文件结束
tcpserver.lua文件:
ServerReceData = ""
ServerReceCnt = 0
ServerReceStat = false
wifi.setmode(wifi.STATIONAP)
local apcfg = {
ssid="ESP-server",
pwd="11223344"
}
wifi.ap.config(apcfg)
local ClientSocket = nil
Server = net.createServer(net.TCP,28800)
Server:listen(8080,function(socket)
ClientSocket=socket
ClientSocket:on("receive",function(sck,data)
ServerReceData = ServerReceData..data
ServerReceCnt = 0
ServerReceStat = true
end)
ClientSocket:on("disconnection",function() ClientSocket=nil
print("\r\nDisconnec\r\n")
end)
end
)
tmr.alarm(1,10,1,function()
if ServerReceStat==true then
ServerReceCnt = ServerReceCnt+1
if ServerReceCnt >= 10 then
if ServerReceData=="open" then gpio.write(RELAY_Pin,1) end
if ServerReceData=="close" then gpio.write(RELAY_Pin,0) end
uart.write(0,ServerReceData)
ServerReceData = ""
ServerReceCnt = 0
ServerReceStat = false
end
end
end)
tcpserver.lua文件结束
手机连接模块开放的热点,打开网络调试助手
建立TCP客户端连接服务器
APP客户端发送”open”开继电器
客户端发送”close”关闭继电器
发送其他数据是不能控制继电器的
更多资料参考:https://www.cnblogs.com/yangfengwu/category/1099910.html