发 帖  

[经验] 制作自己的wifi开关:ESP8266模块开放热点开启TCP服务 控制继电器

2018-11-8 16:46:47  701 WIFI 继电器 TCP
分享
1
ESP8266空白固件终极使用:  
ESP8266烧写固件软件:
手机网络调试助手(安卓版):
网络调试助手手机版.zip (298.55 KB, 下载次数: 4)

ESP8266使用lua语言开发的固件:
lua开发固件.zip (297.52 KB, 下载次数: 8)

编写lua并上传至ESP8266的开发工具:
链接:https://pan.baidu.com/s/1iuZrGJqloYyzUwJxqGxDRQ 提取码:0a75

前面忘了上传使用到的工具这里集体补上。。。


这次让模块开放热点后开启TCP服务,去监听某个端口,接收控制指令
原理图:


编写lua程序:
init.lua文件:
  1. RELAY_Pin = 1
  2. gpio.mode(RELAY_Pin, gpio.OUTPUT)
  3. gpio.write(RELAY_Pin,0)
  4. tmr.alarm(0,5000,0,function()
  5.        dofile("tcpserver.lua")
  6. end)
复制代码
init.lua文件结束

tcpserver.lua文件:
  1. ServerReceData = ""
  2. ServerReceCnt = 0
  3. ServerReceStat = false
  4. wifi.setmode(wifi.STATIONAP)
  5. local apcfg = {
  6.     ssid="ESP-server",   
  7.     pwd="11223344"   
  8. }
  9. wifi.ap.config(apcfg)
  10. local ClientSocket = nil   
  11. Server = net.createServer(net.TCP,28800)
  12. Server:listen(8080,function(socket)
  13.        ClientSocket=socket
  14.        ClientSocket:on("receive",function(sck,data)
  15.              ServerReceData = ServerReceData..data
  16.              ServerReceCnt = 0
  17.              ServerReceStat = true
  18.        end)
  19.        ClientSocket:on("disconnection",function() ClientSocket=nil
  20.             print("\r\nDisconnec\r\n")
  21.        end)
  22.     end)
  23. tmr.alarm(1,10,1,function()
  24.     if ServerReceStat==true then
  25.         ServerReceCnt = ServerReceCnt+1
  26.         if ServerReceCnt >= 10 then
  27.              if ServerReceData=="open" then gpio.write(RELAY_Pin,1) end
  28.              if ServerReceData=="close" then gpio.write(RELAY_Pin,0) end
  29.              uart.write(0,ServerReceData)
  30.              ServerReceData = ""
  31.              ServerReceCnt = 0
  32.              ServerReceStat = false
  33.         end
  34.    end
  35. end)
复制代码
tcpserver.lua文件结束



手机连接模块开放的热点




客户端连接服务器




手机客户端发送”open”开继电器



手机客户端发送“close”关闭继电器


手机客户端发送其他数据






视频演示:
http://v.youku.com/v_show/id_XMzkwNzc2ODQxNg==.html?x&sharefrom=android&sharekey=8fb979185ea5a76ccc44c39478acca010&qq-pf-to=pcqq.c2c


要是自己会安卓就好了,可以自己编写一个单独控制的app,把控制指令全部封装好,就不用这样一直输入指令了。。。




相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表