欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

在英特爾Edison上創建并運行Mosquitto MQTT

[復制鏈接]
跳轉到指定樓層
樓主
ID:81203 發表于 2015-5-26 18:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
簡介
英特爾(R) Edison 開發板的一大特性是它不僅能夠兼容 Arduino*,同時還是一款 Linux* 單板計算機,能夠全面訪問 Arduino 草案的底層 Linux 功能。
在本系列博客中,我將介紹將 Linux 功能集成至 Arduino 草案的各種方法,以及如何利用現有代碼簡化物聯網開發。
首先,我們先來構建一個包含溫度傳感器、光線敏元件、LED 和開關的簡單傳感器節點。 然后,我們使用 MQTT 將該數據發布至互聯網。 使用 Node-Red 演示一些基本的數據分析,觸發活動并將命令傳回傳感器節點。
Edison 開發板隨附的 Linux 分發版來自 Yocto 項目 (http://www.yoctoproject.org)。 Yocto 是一個小型的 Linux 內核,專門針對資源有限的嵌入式系統設計。
MQTT
MQTT 是一個輕型協議,專門用于機器對機器 (M2M) 通信。 MQTT 使用基于 TCP/IP 協議的發布/訂閱消息轉發模式。 MQTT 協議的中心是 MQTT 服務器或代理,支持發布程序和訂閱程序進行訪問。 用戶可以使用 MQTT 構建一個傳感器網絡,其中各種傳感器都能夠以其傳感器獨有的消息形式發布傳感器值。 制動器能夠訂閱不同的消息,以據此采取措施。 MQTT 代理將處理從發布程序到訂閱程序的轉發消息。
示例:
微處理器 A 能夠讀取開關的狀態,并以 "switch = on" 形式的消息將開關狀態發布至 MQTT 服務器。 互聯網某處的微處理器 B 訂閱 MQTT 消息 "switch"。 現在,無論用戶何時觸發開關,微處理器 A 都會向 MQTT 代理發布一條消息。 代理將把消息轉發至訂閱程序列表。 當微處理器 B 收到消息時,將會對內容進行解析,確定開關的狀態,并相應地開啟或關閉指示燈。
如欲了解更多有關 MQTT的信息,請訪問 http://mqtt.org
Edison Yocto 操作系統配備名為 RSMB (Really Small Message broker) 的小型 MQTT 代理。 很遺憾,我們沒有大量 MQTT 客戶端進行測試。 在本文中,我們將構建另一個 MQTT 代理 Mosquitto,主要針對客戶端。 在后續文章中,我們將使用這些客戶端連接至 Arduino 草案。
在 Edison 上構建 Mosquitto
假定讀者已經安裝了 Edison 開發板,并且了解標準的 Linux 操作。
構建 Mosquitto 非常簡單。 以下是在 Edison 上構建 Mosquitto 的步驟:
  • 從 mosquitto.org 下載 mosquitto                 view sourceprint?
    1$> wget http://mosquitto.org/files/source/mosquitto-1.3.5.tar.gz


  • 解壓檔案                 view sourceprint?
    1$> tar xzf mosquitto-1.3.5 $> cd mosquitto-1.3.5


  • 構建                 view sourceprint?
    1$> make WITH_SRV=no


  • 測試和安裝 mosquitto 編譯                 view sourceprint?
    1# Create user mosquitto $> add user mosquitto # Test $> cd test/broker $> make test $> cd ../../ # Install $> cp client/mosquitto_pub /usr/bin $> cp client/mosquitto_sub /usr/bin $> cp lib/libmosquitto.so.1 /usr/lib $> cp src/mosquitto /usr/bin



在 mosquitto 根目錄中還有一個測試目標。 但是,該目標需要 Python3,Edison 操作系統上無法使用 Python3,因此后來的一些測試失敗。 測試/代理中的目標不需要 Python3,并包含所有基本的 MQTT 操作。
測試 mosquitto 客戶端和服務器
Edison 操作系統配置為自動啟動 rsmb 代理。 rsmb 已經設置為使用默認 TCP 端口 1883。 我們將使用默認 MQTT 端口在 rsmb 代理上測試 mosquitto 客戶端。 然后,我們將配置 mosquitto 代理在其他端口上運行,同時對其進行測試。
如要測試客戶端,請打開 Edison 的兩個 ssh 連接。 在第一個連接中,運行一個在 rsmb 代理上訂閱 'test' 主題并在 Edison 本地運行的 mosquitto_sub 客戶端

在第二個 ssh 連接中,向同一臺本地服務器的 test 主題發布一條 'Hello World!' 消息。
您應可看到窗口中的消息運行 mosquitto_sub 程序。 請注意,mosquitto_sub 客戶端是持久的,將持續偵聽來自服務器的新消息,直至其停止。

上述測試展示了我們所構建的能夠與本地 rsmb MQTT 服務器正常兼容的 mosquitto_sub 和 mosquitto_pub 客戶端。
我們可以使用在其他端口 (1993) 上運行的mosquitto 代理運行相同的測試

使用上述命令,但是使用 -p 1993 參數來運行 mosquitto_sub 和 mosquitto_pub,在端口 1993 上測試 mosquitto 代理。


總結我們在英特爾 Edison 上構建并運行了 mosquitto 服務器和客戶端。 在后續的文章中,我將開始開發能夠利用本文構建的 MQTT 客戶端的 Arduino 草案。
參考資料:
如欲了解 Mosquitto 文檔,請參閱 http://mosquitto.org/documentation
如欲了解有關英特爾 Edison 開發板的詳情,請訪問: http://www.intel.com/edison


有關編譯器優化的更完整信息,請參閱優化通知。


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表