zoukankan      html  css  js  c++  java
  • 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”获取更多

     

    淘宝店铺

  • 相关阅读:
    函数
    A × B problem
    求n的阶乘
    自己构建一个vector函数
    int与string的互相转化
    列一列(斐波那契数列)
    找一找
    c++大数计算模板
    JSON--js中 json字符串转对象、对象转字符串
    JSON
  • 原文地址:https://www.cnblogs.com/fw-qql/p/11661284.html
Copyright © 2011-2022 走看看