本帖最后由 克隆大师 于 2018-11-8 20:13 编辑
先看下esp8266-12f控制原理图
先上传一下用到的工具:
安卓版手机网络调试助手:
网络调试助手手机版.zip
(298.55 KB, 下载次数: 46)
esp8266 lua开发使用的固件:
lua开发固件.zip
(297.52 KB, 下载次数: 51)
esp8266 wifi开关lua源码:
ESP8266 开放热点tcp服务 lua源码.zip
(3.73 KB, 下载次数: 48)
esp8266 lua开发工具:
https://pan.baidu.com/s/14ZMpgeWlZpiAET5ZjL3X9w提取码:0k0n
操作流程:
(1)设置模块工作在station模式下
(2)设置模块开放热点
(3)模块开启热点后,开启TCP服务器监听某个端口
(4)解析TCP客户端发送的“open”开继电器 ; 发送“close” 关闭继电器 ---- 使用手机端的网络调试助手
(5)lua程序分为两个文件一个是”
init.lua“ esp8266模块可以自动识别的文件,在该文件中通过dofile加载 “
tcpserver.lua” 文件
(6)lua开发工具不支持中文,所以不要写中文注释
实现wifi控制继电器的开关只需要这两个 .lua文件就可以实现了
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文件结束
lua程序下载成功后用手连接esp8266开放的热点
打开手机上的网络调试助手,建立TCP客户端连接模块开启的TCP服务器
客户端发送”open”开继电器
客户端发送”close”关闭继电器
然后再试下
发送其他数据
不过这样手动的填写控制指令太费事,会安卓的朋友可以自己编写一个安卓app,把控制指令封装一下,使用效果会更好吧!!!
也是参考其他的文章学习整理的希望有兴趣的朋友互相交流
参考博客:
https://www.cnblogs.com/yangfengwu/category/1099910.html