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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5084|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人免费 | 高清成人免费视频 | 91免费入口 | 欧美精品一二区 | 一区二区三区视频在线免费观看 | 日韩激情在线 | 国产精品日女人 | 一色桃子av一区二区 | 久久亚洲国产 | 毛片入口| 天天色综 | 欧美在线观看一区 | 日韩精品一区二区三区视频播放 | 亚洲精品乱码久久久久久按摩观 | 一区网站| 久久成人人人人精品欧 | 国产精品欧美一区二区三区不卡 | 久久久久99| 久久精品国产一区二区电影 | 国产精品毛片 | 免费观看一级特黄欧美大片 | 亚洲电影一区二区三区 | 欧美在线a | 亚洲国产精品99久久久久久久久 | 亚洲高清三级 | 成人免费在线播放视频 | 日本午夜在线视频 | 91国在线观看| 91精品国产91久久久久久 | 毛片1 | 国产欧美精品一区二区 | 一区二区日本 | 国产视频线观看永久免费 | 精品成人av | 日韩av在线一区 | www,黄色,com| 免费国产一区 | 日韩一区二区在线播放 | 午夜视频网站 | 成人免费网视频 | 亚洲区一 |