ESP8266 -- lua开发学习之路 五 (TCP客户端透传)

lua开发8266API手册:https://nodemcu.readthedocs.io/en/master/

 

 

透传本人理解就是把串口接收的数据通过网络发送给服务器,  客户端接收的数据通过串口再发送出去 ESP8266充当一个通道把网络数据与串口联系起来

init.lua文件:

--[[
init.lua文件中不用做过多的操作初始化和加载文件...
]]
gpio.mode(4,gpio.OUTPUT)
gpio.write(4,1)

tmr.alarm(1, 3000, 0, function()
    dofile("tcpclient.lua")
end)

tcpclient.lua文件:

LinkStat = 0        --定义连接状态
TCPClient = nil     --创建tcp客户端返回参数



wifi.setmode(wifi.STATIONAP)

local APcfg = {
    ssid="ESP8266WIFI",
    pwd="12345678"      
}
wifi.ap.config(APcfg) 

local stacfg={
    ssid="TP-Link",      
    pwd="12345678"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1) --设置模块自动连接WIFI网络


--[[
定时器3 每秒循环一次
在定时器中去创建客户端连接服务器,注册接收数据事件,断开事件,重连事件
在连接上服务器后停止此定时器
断开连接后启动此定时器,再次去连接服务器
]]
tmr.alarm(3,1000,1,function()
    if LinkStat == 0 then  --LinkStat=0表示没有连接服务器
        TCPClient = net.createConnection(net.TCP,0)   --创建客户端
     
        TCPClient:connect(8080,"192.168.191.1")   --连接服务器 端口和ip

        TCPClient:on("receive", function(sck, data) --注册接收数据函数 把接收的数据通过串口发送出去
              uart.write(0,data) 
        end)
        TCPClient:on("connection", function(sck, c) --注册重连函数连接断开会调用此函数
            LinkStat = 1
            print("Link OK")
            tmr.stop(3)

            TCPClient:on("disconnection", function(sck, c) --注册断函数,断开连接时启动定时器重新连接
                LinkStat = 0
                print("link no")
                tmr.start(3)
            end)
       end)
       if  LinkStat == 0 then print("LinkError") end
    end
end)


--串口接收事件
uart.on("data",0,function (receive)       
               if  TCPClient ~= nil then--当客户端有链接时把串口接收的数据发送给tcp服务器
                  TCPClient:send(receive,function() end)
               end
end,0)

 

 

 

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值