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

通过前面的wifi,net,gpio模块的学习 现在可以在局域网内控制D4口 使 8266的蓝灯亮或灭了
8266 创建服务器,手机的TCP测试助手发送 开/关控制:
代码: 8266:

wifi.setmode(wifi.SOFTAP) led = 4gpio.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 灯灭
【IOT】nodeMCU(五-下)通过TCP通信局域网实现控制灯
文章图片

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

改进 双方添加反馈 通过 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 = 4gpio.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)

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

手机:
【【IOT】nodeMCU(五-下)通过TCP通信局域网实现控制灯】【IOT】nodeMCU(五-下)通过TCP通信局域网实现控制灯
文章图片


    推荐阅读