久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3822|回復: 2
打印 上一主題 下一主題
收起左側

ESP8266 lua設置TCP客戶端連接路由器

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 沙漠之痕 于 2018-11-7 12:45 編輯

1. 設置模塊連接路由器,并打印路由器分配的ip
Init.lua文件:
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束
tcpclient.lua文件:
wifi.setmode(wifi.STATION)
cfg={}
cfg.ssid="qqqqq"
cfg.pwd="11223344"
wifi.sta.config(cfg)
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)
tcpclient.lua文件結束

2. 參照官方手冊,創建客戶端連接服務器;看見模塊獲取了ip但是連接不上服務器
Init.lua文件:
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束

tcpclient.lua文件:
wifi.setmode(wifi.STATION)
local stacfg={
    ssid="qqqqq",      
    pwd="11223344"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1)
TCPClient = net.createConnection(net.TCP,0)  
TCPClient:connect(8080,"192.168.0.105")   
TCPClient:on("receive", function(sck, data)
        uart.write(0,data)
end)
TCPClient:on("disconnection", function(sck, c)
        print("Disconnection")
end)
TCPClient:on("connection", function(sck, c)
        print("Connection")
end)
----------Got IP Style:+IP-> xxx.xxx.xxx.xxx----------------------------
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)
----------------------------END Got IP----------------------------------
tcpclient.lua文件結束

3. 是不是,沒有獲取到ip就去連接了呢?添加一個定時器延時10秒后再去創建TCP客戶端連接服務器,這下可以看到能連接上服務器
Init.lua文件:
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束
tcpclient.lua文件:
wifi.setmode(wifi.STATION)
local stacfg={
    ssid="qqqqq",      
    pwd="11223344"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1)
----------Got IP Style:+IP-> xxx.xxx.xxx.xxx----------------------------
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)
----------------------------END Got IP----------------------------------
tmr.alarm(3,10000,0,function()
    TCPClient = net.createConnection(net.TCP,0)  
    TCPClient:connect(8080,"192.168.0.105")   
   
    TCPClient:on("receive", function(sck, data)
        uart.write(0,data)
    end)
    TCPClient:on("disconnection", function(sck, c)
        print("Disconnection")
    end)
    TCPClient:on("connection", function(sck, c)
        print("Connection")
    end)
end)
tcpclient.lua文件結束

那斷開服務器,再重新打開服務器,客戶端又不連接了。。。

4. 如何讓模塊斷開連接后一直自動重連服務器呢?
Init.lua文件:
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束
tcpclient.lua文件:
wifi.setmode(wifi.STATION)
local stacfg={
    ssid="qqqqq",      
    pwd="11223344"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1)
tmr.alarm(3,1000,1,function()
    TCPClient = net.createConnection(net.TCP,0)  
    TCPClient:connect(8080,"192.168.0.105")   
    TCPClient:on("receive", function(sck, data)
        uart.write(0,data)
    end)
    TCPClient:on("disconnection", function(sck, c)
        print("Disconnection")
        tmr.start(3)
    end)
    TCPClient:on("connection", function(sck, c)
        print("Connection")
        tmr.stop(3)
    end)
end)
----------Got IP Style:+IP-> xxx.xxx.xxx.xxx----------------------------
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)
----------------------------END Got IP----------------------------------
tcpclient.lua文件結束

5. 通過接收TCP服務器的控制指令“open”和“close”控制繼電器動作

Init.lua文件:
RELAY_Pin = 1
gpio.mode(RELAY_Pin, gpio.OUTPUT)
gpio.write(RELAY_Pin,0)
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束
tcpclient.lua文件:
LinkStat = 0      
TCPClient = nil   
ClientReceData = ""
ClientReceCnt = 0
ClientReceDataStat = true
wifi.setmode(wifi.STATION)
local stacfg={
    ssid="qqqqq",      
    pwd="11223344"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1)
tmr.alarm(1,1000,1,function()
    if LinkStat == 0 then
        TCPClient = net.createConnection(net.TCP,0)  
        TCPClient:connect(8080,"192.168.0.105")   
        TCPClient:on("receive", function(sck, data)
            ClientReceData = ClientReceData..data
            ClientReceCnt = 0
            ClientReceDataStat = true
        end)
        TCPClient:on("connection", function(sck, c)
            LinkStat = 1
            print("Connection")
            tmr.stop(1)
       end)
       TCPClient:on("disconnection", function(sck, c)
                LinkStat = 0
                print("Disconnection")
                tmr.start(1)
       end)
       if  LinkStat == 0 then print("LinkError") end
    end
end)
tmr.alarm(2,10,1,function()
    if ClientReceDataStat==true then
        ClientReceCnt=ClientReceCnt+1
        if ClientReceCnt>=10 then --receive finsion
           if ClientReceData=="open" then
                gpio.write(RELAY_Pin,1)
           end
           if ClientReceData=="close" then
                gpio.write(RELAY_Pin,0)
           end
           uart.write(0,ClientReceData)
           ClientReceData = ""
           ClientReceCnt = 0
           ClientReceDataStat = false
       end
   end
end)
----------Got IP Style:+IP-> xxx.xxx.xxx.xxx----------------------------
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)
----------------------------END Got IP----------------------------------
tcpclient.lua文件結束




6. 我想使用串口助手給模塊發送數據,然后讓模塊吧數據發送給TCP服務器:
TCP服務器發送的數據我們通過模塊的串口發送出來了,但是服務器并沒有接收到串口發送過來的數據

通過串口助手發送數據給服務器:
Init.lua文件
RELAY_Pin = 1
gpio.mode(RELAY_Pin, gpio.OUTPUT)
gpio.write(RELAY_Pin,0)
tmr.alarm(0,4000,0,function()
    dofile("tcpclient.lua")
end)
Init.lua文件結束
tcpclient.lua文件
LinkStat = 0      
TCPClient = nil   
ClientReceData = ""
ClientReceCnt = 0
ClientReceDataStat = true
wifi.setmode(wifi.STATION)
local stacfg={
    ssid="qqqqq",      
    pwd="11223344"  
}
wifi.sta.config(stacfg)
wifi.sta.autoconnect(1)
tmr.alarm(1,1000,1,function()
    if LinkStat == 0 then
        TCPClient = net.createConnection(net.TCP,0)  
        TCPClient:connect(8080,"192.168.0.105")   
        TCPClient:on("receive", function(sck, data)
            ClientReceData = ClientReceData..data
            ClientReceCnt = 0
            ClientReceDataStat = true
        end)
        TCPClient:on("connection", function(sck, c)
            LinkStat = 1
            print("Connection")
            tmr.stop(1)
       end)
       TCPClient:on("disconnection", function(sck, c)
                LinkStat = 0
                print("Disconnection")
                tmr.start(1)
       end)
       if  LinkStat == 0 then print("LinkError") end
    end
end)
tmr.alarm(2,10,1,function()
    if ClientReceDataStat==true then
        ClientReceCnt=ClientReceCnt+1
        if ClientReceCnt>=10 then --receive finsion
           if ClientReceData=="open" then
                gpio.write(RELAY_Pin,1)
           end
           if ClientReceData=="close" then
                gpio.write(RELAY_Pin,0)
           end
           uart.write(0,ClientReceData)
           ClientReceData = ""
           ClientReceCnt = 0
           ClientReceDataStat = false
       end
   end
end)
----------Got IP Style:+IP-> xxx.xxx.xxx.xxx----------------------------
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)
----------------------------END Got IP----------------------------------
------------------uart  send  data  to  server ----------------
uart.on("data",0,function(data)
    if  TCPClient ~= nil then
       TCPClient:send(data,function() end)
    end
end,0)
--------------------end uart send data to server------------------
tcpclient.lua文件結束






ESP8266 TCP客戶端連接路由器 lua源碼.zip (6.99 KB, 下載次數: 14)



交流QQ:1813763867
QQ群:607064330


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111843 發表于 2019-10-24 18:27 | 只看該作者
非常詳細,多謝分享!
回復

使用道具 舉報

板凳
ID:851122 發表于 2022-11-9 20:37 | 只看該作者
lua的教學資料有嗎?可以分享下經驗嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女在线观看 | 欧美视频日韩 | 国产欧美一区二区精品久导航 | 日韩一区二区三区在线 | 日本三级网址 | 国产中文视频 | 亚洲视频免费观看 | 91av精品 | www.日韩欧美 | 欧美一区二区三区在线免费观看 | 久久国产精品一区二区三区 | www.亚洲精品 | 激情久久网 | 999精彩视频 | 最新国产福利在线 | 国产黄色大片网站 | 中文字幕日韩欧美一区二区三区 | 九九99九九精彩46 | 亚洲精品女人久久久 | 欧美国产大片 | 人操人免费视频 | 色网在线观看 | 日韩中文字幕 | 伊人精品视频 | 五月婷婷 六月丁香 | 久久成人精品视频 | 麻豆久久久| 亚洲网在线| 亚洲精品第一 | 精品国产99 | 国产成人福利在线观看 | 国产精品一区二区在线 | 91高清视频在线 | 欧美a级成人淫片免费看 | 99精品免费久久久久久日本 | 人人做人人澡人人爽欧美 | 欧美一级在线观看 | 一区在线播放 | 亚洲精品1 | 成人综合视频在线观看 | 国产精品视频一区二区三区四区国 |