本帖最后由 沙漠之痕 于 2018-11-7 13:10 編輯
一 . 在本地電腦上安裝emqtt服務(wù)器:
1.首先安裝補(bǔ)丁:把補(bǔ)丁拷貝到" C:\Windows\System32 "文件夾下
2. 控制臺(tái)模式下啟動(dòng):emqttd console
(1) 控制臺(tái)下切換到emqtt的bin目錄下。如:
快速切換方法:在此目錄下按住“Shift”同時(shí)點(diǎn)擊鼠標(biāo)右鍵選擇“在此處打開(kāi) 命令窗口”
(2)啟動(dòng)mqtt服務(wù)器 “emqttd console”
3. 通過(guò)網(wǎng)頁(yè)登陸查看鏈接信息 用戶名:admin 密碼:public
查看本機(jī)ip:
鏈接上一個(gè)客戶端 我們?cè)賳?dòng)一個(gè)客戶端讓兩個(gè)客戶端通信
我們?cè)诓榭聪骆溄拥目蛻舳?/div> 客戶端通信
此種方法會(huì)打開(kāi)一個(gè)窗口,關(guān)掉窗口emqtt服務(wù)也關(guān)閉; 讓emqtt服務(wù)器一直運(yùn)行的 (1)控制臺(tái)先定位到emqtt的bin目錄下“D:\MqttServer\emqttd\bin” (2)emqttd install (3)啟動(dòng)emqttd服務(wù):emqttd start (4)停止emqttd服務(wù):emqttd stop (5)卸載emqttd服務(wù):emqttd uninstall
二. ESP8266 模塊連接emqtt服務(wù)器進(jìn)行遠(yuǎn)程控制
init.lua文件: - RELAY_Pin = 1
- gpio.mode(RELAY_Pin, gpio.OUTPUT)
- gpio.write(RELAY_Pin,0)
- tmr.alarm(0,4000,0,function()
- dofile("mqtt.lua")
- end)
復(fù)制代碼
init.lua文件結(jié)束 mqtt.lua文件: - 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)
復(fù)制代碼mqtt.lua文件結(jié)束
模塊通過(guò)串口發(fā)送數(shù)據(jù)
PC客戶端發(fā)送”open”開(kāi)繼電器
PC客戶端發(fā)送”close”關(guān)繼電器
mqtt客戶端.zip
(118.4 KB, 下載次數(shù): 34)
2018-11-7 11:52 上傳
點(diǎn)擊文件名下載附件
PC端mqtt測(cè)試軟件
ESP8266 連接mqtt遠(yuǎn)程控制 lua源碼.zip
(700 Bytes, 下載次數(shù): 30)
2018-11-7 12:52 上傳
點(diǎn)擊文件名下載附件
源碼
emqtt安裝包: https://pan.baidu.com/s/1EyPovGzNPAePmx4JT5urew提取碼:za3g
交流QQ:1813763867 QQ群:607064330
ESP8266 制作自己的wifi開(kāi)關(guān)資料匯總:
鏈接: https://pan.baidu.com/s/1wtIwd5csjieme7O-PfGhbA
提取碼:71kt
連接失效請(qǐng)聯(lián)系本人及時(shí)更改
|