久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4955|回復: 2
打印 上一主題 下一主題
收起左側

制作自己的wifi開關 ESP8266 lua使用mqqt遠程通信

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 沙漠之痕 于 2018-11-7 13:10 編輯

一 . 在本地電腦上安裝emqtt服務器:


1.首先安裝補丁:把補丁拷貝到" C:\Windows\System32 "文件夾下


2. 控制臺模式下啟動:emqttd console
(1) 控制臺下切換到emqttbin目錄下。如:


快速切換方法:在此目錄下按住“Shift”同時點擊鼠標右鍵選擇“在此處打開                命令窗口”



(2)啟動mqtt服務器 “emqttd console”


3. 通過網頁登陸查看鏈接信息
   用戶名:admin
碼:public





查看本機ip




鏈接上一個客戶端

我們再啟動一個客戶端讓兩個客戶端通信

我們在查看下鏈接的客戶端

客戶端通信





此種方法會打開一個窗口,關掉窗口emqtt服務也關閉;
emqtt服務器一直運行的
(1)控制臺先定位到emqttbin目錄下“D:\MqttServer\emqttd\bin
    (2)emqttd install
(3)啟動emqttd服務:emqttd start
(4)停止emqttd服務:emqttd stop
(5)卸載emqttd服務:emqttd uninstall




二. ESP8266 模塊連接emqtt服務器進行遠程控制
init.lua文件:
  1. RELAY_Pin = 1

  2. gpio.mode(RELAY_Pin, gpio.OUTPUT)

  3. gpio.write(RELAY_Pin,0)

  4. tmr.alarm(0,4000,0,function()

  5.     dofile("mqtt.lua")

  6. end)
復制代碼


init.lua文件結束
mqtt.lua文件:
  1. MqttServerIP="192.168.0.105"      

  2. MqttServerPort=1883         

  3. MqttUserName="admin"              

  4. MqttUserPassword="public"      

  5. MqttLinkStat = 0                  

  6. UartReceData = ""               

  7. UartReceCnt = 0                  

  8. UartReceTempCnt = 0              

  9. wifi.setmode(wifi.STATION)      

  10. local stacfg={

  11.     ssid="qqqqq",      

  12.     pwd="11223344"  

  13. }

  14. wifi.sta.config(stacfg)        

  15. wifi.sta.autoconnect(1)         

  16. Clientid = wifi.sta.getmac()     

  17. ClientSubscribeTopic = "AAA"   

  18. ClientPublishTopic = "111"      

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

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

  21. local function ConnectSuccess(client)  

  22.     print("MqttServer connect sucess")

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

  24.     MqttLinkStat = 1

  25.     tmr.stop(3)

  26. end

  27. local function ConnectFailed(client, reason)

  28.     print("MqttServer connect fail"..reason)

  29.     MqttLinkStat = 0

  30.     tmr.start(3)

  31.    

  32. end

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

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

  35. end)

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

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

  38.         if data == "open" then

  39.             gpio.write(RELAY_Pin,1)  

  40.             if gpio.read(RELAY_Pin)==1 then

  41.                 if MqttClient ~= nil then

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

  43.                 end

  44.             end  

  45.         end

  46.         if data == "close" then

  47.             gpio.write(RELAY_Pin,0)

  48.             if gpio.read(RELAY_Pin)==0 then

  49.                 if MqttClient ~= nil then

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

  51.                 end

  52.             end

  53.         End

  54. uart.write(0,data)

  55. end)

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

  57.      if UartReceCnt ~= 0 then

  58.         if UartReceTempCnt == UartReceCnt then

  59.             UartReceTempCnt = 0

  60.             UartReceCnt = 0  

  61.             --send to-Mqtt

  62.             if MqttClient ~= nil then

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

  64.             end

  65.         else

  66.             UartReceTempCnt = UartReceCnt

  67.         end

  68.      end

  69. end)

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

  71.             UartReceData = UartReceData..data

  72.             UartReceCnt = UartReceCnt + 1   

  73. end,0)   

  74. printip = 0

  75. wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)

  76.     printip = 0

  77. end)

  78. wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)

  79.    if printip == 0 then

  80.       print("+IP "..T.IP)

  81.    end

  82.    printip = 1

  83. end)

復制代碼
mqtt.lua文件結束







模塊通過串口發送數據






PC客戶端發送”open”開繼電器



PC客戶端發送”close”關繼電器






mqtt客戶端.zip (118.4 KB, 下載次數: 34)                                                          
ESP8266 連接mqtt遠程控制 lua源碼.zip (700 Bytes, 下載次數: 30)

emqtt安裝包:https://pan.baidu.com/s/1EyPovGzNPAePmx4JT5urew提取碼:za3g
交流QQ:1813763867   QQ群:607064330



ESP8266 制作自己的wifi開關資料匯總:

鏈接:https://pan.baidu.com/s/1wtIwd5csjieme7O-PfGhbA
提取碼:71kt
連接失效請聯系本人及時更改

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:424598 發表于 2019-1-11 15:10 來自手機 | 只看該作者
謝謝發布,很詳細!
回復

使用道具 舉報

板凳
ID:158908 發表于 2019-1-14 09:36 來自手機 | 只看該作者
好東西,謝謝樓主
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久久久久中文字幕 | 亚洲精品一区国语对白 | 国产乱人伦 | 91热在线| 欧美一区二区三区在线视频 | av入口| 99riav国产一区二区三区 | 成人福利片| 久久久一区二区三区四区 | 欧美午夜精品 | 欧美日韩精品一区二区三区四区 | 毛片入口 | 激情六月丁香 | 亚洲成av人影片在线观看 | 国内精品久久久久久久 | 在线观看国产www | 国产 欧美 日韩 一区 | av特级毛片 | 日韩一区二区三区在线 | 久久综合久色欧美综合狠狠 | 高清欧美性猛交 | 欧美日韩国产一区二区三区 | 国产精品不卡视频 | 成人久久久久 | 中文字幕日韩三级 | 欧洲毛片 | 免费一级淫片aaa片毛片a级 | 中文字幕视频网 | 91精品免费视频 | 亚洲aⅴ| 久久久久国产精品一区二区 | 亚洲欧美一区二区在线观看 | 日日摸夜夜添夜夜添特色大片 | 亚洲一二三区在线观看 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 网站黄色在线 | 九色在线观看 | 精品国产18久久久久久二百 | 久久久久久国产 | 福利视频一二区 | 国产精品日日摸夜夜添夜夜av |