zoukankan      html  css  js  c++  java
  • 六,ESP8266 TCP Client(基于Lua脚本语言)

    今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼......

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

    gpio.mode(4,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)

     

     

     

    现在测试

     

     现在创建服务器

     

     发送数据测试

     

    现在断开连接

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

     

     如果用的ESP12系列的可以现在就用这个读取AD的电压值

     

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

     

     

     现在的init.lua

    gpio.mode(4,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上

     

    https://www.cnblogs.com/yangfengwu/p/7533845.html

  • 相关阅读:
    linux分析、诊断及调优必备的“杀器”之二
    浏览器被“hao123.3377.com”主页劫持的解决办法
    Nginx一个实现负载均衡的强大web server
    【百度之星
    c/c++ 参数传递
    【百度之星】-IP聚合
    百度之星-大搬家-递推
    IOS开发之Swift学习笔记
    【Leetcode】84. Largest Rectangle in Histogram 85. Maximal Rectangle
    【Leetcode】82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/7533302.html
Copyright © 2011-2022 走看看