您的位置:首页 > 理论基础 > 计算机网络

六,ESP8266 TCP Client(基于Lua脚本语言)

2017-09-16 22:44 465 查看
今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼......

Init.lua 没啥改变,,就改了一下加载Client.lua

gpio.mode(4,gpio.OUTPUT)
gpio.mode(2,gpio.OUTPUT)
gpio.write(4,1)

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

wifi.setmode(wifi.STATIONAP)

cfg={}
cfg.ssid="Hellow8266"
cfg.pwd="11223344"
wifi.ap.config(cfg)

apcfg={}
apcfg.ssid="qqqqq"
apcfg.pwd="11223344"
wifi.sta.config(apcfg)
wifi.sta.autoconnect(1)

ClientConnectedFlage = 0
TcpConnect = nil
tmr.alarm(1, 1000, 1, function()

if  ClientConnectedFlage == 0 then
Client = net.createConnection(net.TCP, 0)
Client:connect(8080,"192.168.1.103")

Client:on("receive", function(Client, data)
uart.write(0,data)
end)

Client:on("connection", function(sck, c)
ClientConnectedFlage = 1
TcpConnect = Client
print("Link OK")
tmr.stop(1)

Client:on("disconnection", function(sck, c)
ClientConnectedFlage = 0
TcpConnect = 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)










现在测试



现在创建服务器





发送数据测试



现在断开连接



第一次没有截到网络调试助手的图,模块就连接上了,,所以又断开了一次





现在就用这个读取AD的电压值





命令和回复呢咱就这样规定





现在的init.lua

gpio.mode(4,gpio.OUTPUT)
gpio.mode(2,gpio.OUTPUT)
gpio.write(4,1)

if  adc.force_init_mode(adc.INIT_ADC) then
node.restart()
return
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

wifi.setmode(wifi.STATIONAP)

cfg={}
cfg.ssid="Hellow8266"
cfg.pwd="11223344"
wifi.ap.config(cfg)

apcfg={}
apcfg.ssid="qqqqq"
apcfg.pwd="11223344"
wifi.sta.config(apcfg)
wifi.sta.autoconnect(1)

ClientConnectedFlage = 0
TcpConnect = nil
tmr.alarm(1, 1000, 1, function()

if  ClientConnectedFlage == 0 then
Client = net.createConnection(net.TCP, 0)
Client:connect(8080,"192.168.1.103")

Client:on("receive", function(Client, data)
uart.write(0,data)
ReadAd(data)
end)

Client:on("connection", function(sck, c)
ClientConnectedFlage = 1
TcpConnect = Client
print("Link OK")
tmr.stop(1)

Client:on("disconnection", function(sck, c)
ClientConnectedFlage = 0
TcpConnect = nil
tmr.start(1)
end)
end)

if  ClientConnectedFlage == 0 then
print("Link Error")
end
end
end)

function ReadAd(data)
if  data == "++MD9" then
ad = adc.read(0)
if  TcpConnect ~= nil then
TcpConnect:send("++MDAD="..ad)
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)






现在测试

对了测试的电压是0-1V 然后分辨率是 1024



我现在接到3.3上



如果数据向加CRC校验,看这篇文章的最后

http://www.cnblogs.com/yangfengwu/p/7531730.html

五,ESP8266 TCP服务器多连接

TCP 就说道这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: