ESP8266 TCP Client(基于Lua脚本语言)
Init.lua代码
gpio.mode(4,gpio.OUTPUT) gpio.write(4,1) enduser_setup.start( function() print("Connected to wifi as:" .. wifi.sta.getip()) end, function(err, str) print("enduser_setup: Err #" .. err .. ": " .. str) end ); tmr.alarm(0, 1000, 1, function() gpio.write(4,1-gpio.read(4)) end) tmr.alarm(1, 3000, 0, function() dofile("Client.lua") end)
client.lua
ClientConnectedFlage = 0 TcpConnect = nil tmr.alarm(1, 1000, 1, function() if ClientConnectedFlage == 0 then Client = net.createConnection(net.TCP, 0) --创建一个TCP连接,连接的服务器IP和端口号 Client:connect(8080,"192.168.1.223") Client:on("receive", function(Client, data) --网络接收到的数据发送到串口 uart.write(0,data) end) --连接上服务器进入这个函数 Client:on("connection", function(sck, c) ClientConnectedFlage = 1 --置一连接上标志 TcpConnect = Client --把连接的socket赋值给TcpConnect,发送串口接收的数据到网络使用 print("Link OK") --停止这个定时器 tmr.stop(1) Client:on("disconnection", function(sck, c) --断开连接进入这个函数 ClientConnectedFlage = 0 --连接标志清零 TcpConnect = nil --赋值为nil tmr.start(1) --启动这个定时器,好重新执行这个定时器里的函数,重新连接 end) end) if ClientConnectedFlage == 0 then print("Link Error") end end end) uart.on("data",0,function(data) if TcpConnect ~= nil then TcpConnect:send(data) --串口数据发送到网络 end end, 0) printip = 0 wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T) printip = 0 end) wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T) if printip == 0 then print("+IP"..T.IP) end printip = 1 end)
扫码关注微信公众号 “小樊Study”获取更多
淘宝店铺