社区导航

 

搜索
查看: 1298|回复: 1
打印 上一主题 下一主题

[原创] 制作自己的wifi开关 esp8266 lua开发

[复制链接]

4

TA的帖子

3

TA的资源

一粒金砂(初级)

Rank: 1

跳转到指定楼层
楼主
发表于 2018-11-8 20:12 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
本帖最后由 克隆大师 于 2018-11-8 20:13 编辑

先看下esp8266-12f控制原理图



先上传一下用到的工具:
安卓版手机网络调试助手:    网络调试助手手机版.zip (298.55 KB, 下载次数: 15)
esp8266 lua开发使用的固件: lua开发固件.zip (297.52 KB, 下载次数: 12)
esp8266  wifi开关lua源码:    ESP8266 开放热点tcp服务 lua源码.zip (3.73 KB, 下载次数: 13)
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文件:
  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. )
  24. tmr.alarm(1,10,1,function()
  25.     if ServerReceStat==true then
  26.         ServerReceCnt = ServerReceCnt+1
  27.         if ServerReceCnt >= 10 then
  28.             if ServerReceData=="open" then gpio.write(RELAY_Pin,1) end
  29.             if ServerReceData=="close" then gpio.write(RELAY_Pin,0) end
  30.             uart.write(0,ServerReceData)
  31.             ServerReceData = ""
  32.             ServerReceCnt = 0
  33.             ServerReceStat = false
  34.         end
  35.     end
  36. end)
复制代码

tcpserver.lua文件结束





lua程序下载成功后用手连接esp8266开放的热点


打开手机上的网络调试助手,建立TCP客户端连接模块开启的TCP服务器


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



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



然后再试下发送其他数据





不过这样手动的填写控制指令太费事,会安卓的朋友可以自己编写一个安卓app,把控制指令封装一下,使用效果会更好吧!!!


也是参考其他的文章学习整理的希望有兴趣的朋友互相交流
参考博客:https://www.cnblogs.com/yangfengwu/category/1099910.html







4.png (126.15 KB, 下载次数: 0)

4.png
收藏收藏1 收藏干货 分享分享


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

沙发
发表于 2019-10-22 23:40 | 只看该作者

很详细,非常感谢分享!



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-12-23 07:57 , Processed in 0.100295 second(s), 18 queries , Gzip On, MemCache On.

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