【IOT】nodeMCU(五-下)通过TCP通信局域网实现控制灯

    xiaoxiao2023-11-10  146

    通过前面的wifi,net,gpio模块的学习

    现在可以在局域网内控制D4口 使 8266的蓝灯亮或灭了 8266 创建服务器,手机的TCP测试助手发送 开/关控制:

    代码:

    8266:

    wifi.setmode(wifi.SOFTAP) led = 4 gpio.mode(led, gpio.OUTPUT) cfg={} cfg.ssid="8266wifi" cfg.pwd="zfw123456" wifi.ap.config(cfg) print(wifi.ap.getip()) sv = net.createServer(net.TCP,300) sv:listen(80,function(c) c:on("receive",function(c,msg) if(msg=="open") then gpio.write(led, gpio.LOW) else if(msg=="close") then gpio.write(led, gpio.HIGH) end end end) c:send(" tcp connection..") end)

    手机端创建TCO client 连接 192.168.4.1 80 发送 open 灯亮, 发送 close 灯灭

    改进 双方添加反馈

    通过 gpio.read(led) 获取 led的状态从而回复client 是否成功 又是一顿 if else 给你吃 添加上判断 led 的状态就可以了

    if(gpio.read(led)==0) then c:send("open succeed!") else c:send("open failed!") end
    if(gpio.read(led)==1) then c:send("close succeed!") else c:send("close failed!") end

    总代码:

    wifi.setmode(wifi.SOFTAP) led = 4 gpio.mode(led, gpio.OUTPUT) cfg={} cfg.ssid="8266wifi" cfg.pwd="zfw123456" wifi.ap.config(cfg) print(wifi.ap.getip()) sv = net.createServer(net.TCP,300) sv:listen(80,function(c) c:on("receive",function(c,msg) print("client let u "..msg.." led") if(msg=="open") then gpio.write(led, gpio.LOW) if(gpio.read(led)==0) then c:send("open succeed!") else c:send("open failed!") end else if(msg=="close") then gpio.write(led, gpio.HIGH) if(gpio.read(led)==1) then c:send("close succeed!") else c:send("close failed!") end end end end) c:send(" tcp connection..") end)

    手机:

    最新回复(0)