4795|1

3

帖子

3

TA的资源

一粒金砂(初级)

楼主
 

制作自己的wifi开关 esp8266 lua开发 [复制链接]

本帖最后由 克隆大师 于 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文件:
  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

最新回复

很详细,非常感谢分享!   详情 回复 发表于 2019-10-22 23:40
点赞 关注(1)
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

很详细,非常感谢分享!

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表