无线连接自己的服务器,制作自己的wifi开关 ESP8266 lua开发连接本地emqtt服务器实现远程控制...

mqtt.lua文件: 实现连接路由器去连接mqtt服务器实现控制

MqttServerIP="192.168.0.105"

MqttServerPort=1883

MqttUserName="admin"

MqttUserPassword="public"

MqttLinkStat = 0

UartReceData = ""

UartReceCnt = 0

UartReceTempCnt = 0

wifi.setmode(wifi.STATION)

local stacfg={

ssid="qqqqq",

pwd="11223344"

}

wifi.sta.config(stacfg)

wifi.sta.autoconnect(1)

Clientid = wifi.sta.getmac()

ClientSubscribeTopic = "AAA"

ClientPublishTopic = "111"

MqttClient=mqtt.Client(Clientid,3,MqttUserName,MqttUserPassword)

MqttClient:lwt(ClientPublishTopic,"offline",1,1)

local function ConnectSuccess(client)

print("MqttServer connect sucess")

client:subscribe(ClientSubscribeTopic,0,function(client)print("subscribe sucess")end)

MqttLinkStat = 1

tmr.stop(3)

end

local function ConnectFaiLED(client, reason)

print("MqttServer connect fail"..reason)

MqttLinkStat = 0

tmr.start(3)

end

tmr.alarm(3, 2000, 1, function()

MqttClient:connect(MqttServerIP, MqttServerPort, 0,ConnectSuccess,ConnectFailed)

end)

MqttClient:on("offline", function(client, topic, data) tmr.start(3) end)

MqttClient:on("message", function(client, topic, data)

if data == "open" then

gpio.write(RELAY_Pin,1)

if gpio.read(RELAY_Pin)==1 then

if MqttClient ~= nil then

MqttClient:publish(ClientPublishTopic,"ON-RELAY",1,1,function(client)  end)

end

end

end

if data == "close" then

gpio.write(RELAY_Pin,0)

if gpio.read(RELAY_Pin)==0 then

if MqttClient ~= nil then

MqttClient:publish(ClientPublishTopic,"OFF-RELAY",1,1,function(client)  end)

end

end

End

uart.write(0,data)

end)

tmr.alarm(2,10,1,function()

if UartReceCnt ~= 0 then

if UartReceTempCnt == UartReceCnt then

UartReceTempCnt = 0

UartReceCnt = 0

--send to-Mqtt

if MqttClient ~= nil then

MqttClient:publish(ClientPublishTopic,UartReceData,1,1,function(client)  end)

end

else

UartReceTempCnt = UartReceCnt

end

end

end)

uart.on("data",0,function(data)

UartReceData = UartReceData..data

UartReceCnt = UartReceCnt + 1

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)

mqtt.lua文件结束

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值