在本文中,我們將向您展示如何使用阿里云IoT平臺輕松將Android Things連接到您的物聯(lián)網(wǎng)(IoT)網(wǎng)絡(luò),我們喊唯將為該項(xiàng)目構(gòu)造一個示例:功能性甲醛和溫度傳感器。有些人可能不了解Android Things,簡單來說, 它就是讓開發(fā)者可以使用Android開發(fā)工具開發(fā)嵌入式設(shè)備 。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比梅河口網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式梅河口網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋梅河口地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
項(xiàng)目設(shè)備清單
NXP i.MX7D
設(shè)備接線圖
在設(shè)置硬件之后,是時候在阿里云IoT平臺上配置軟件了。
首先,導(dǎo)航到物聯(lián)網(wǎng)控制臺并激活阿里云IoT。創(chuàng)建高級產(chǎn)品并添加產(chǎn)品屬性定義:
Android Things設(shè)備開發(fā)
1、使用鄭皮培Android Studio創(chuàng)建Android Things項(xiàng)目,并授予網(wǎng)絡(luò)權(quán)限
2、將“eclipse.paho.mqtt”存儲庫添加到gradle
3、通過I2C讀取DHT12數(shù)據(jù)
4、通過UART獲取Ze08CH2O數(shù)據(jù)
5、創(chuàng)建阿里云IoT連接并報(bào)告數(shù)據(jù)
設(shè)備啟動后,您可以在阿里云IoT控制臺上查看設(shè)備的實(shí)時數(shù)據(jù), 設(shè)備管理 - 運(yùn)行狀態(tài) 。
此項(xiàng)目握物在GIT上的地址是:,有興趣的朋友可以試試。
物聯(lián)網(wǎng) (internet of thing) ,表示的是可以把一些帶某些傳感器的設(shè)備(終端),接入到互聯(lián)網(wǎng)的行為。
通過互聯(lián)網(wǎng)連接這些設(shè)備,這些設(shè)備就能夠互相協(xié)作。
而 MQTT 就是這些設(shè)備之間數(shù)據(jù)通信的一個基于 TCP/IP 的協(xié)議。
每個終端都和實(shí)現(xiàn)了 MQTT 協(xié)議的代理/服務(wù)器相連。
通過 published MQTT 代理服務(wù)器的某個 主題 發(fā)送數(shù)據(jù)。
通過 subscription 從 MQTT 代理服務(wù)器獲取自己訂閱的 主題 數(shù)據(jù)。
MQTT 協(xié)議是一種輕量級的、靈活的網(wǎng)絡(luò)協(xié)議。并且非常適合 IOT 的場景。
大多數(shù)開發(fā)人員已經(jīng)熟悉了 HTTP WEB 協(xié)議。那么為什么不讓 IOT 設(shè)置鏈接到 WEB 服務(wù)?
設(shè)備可以采用 HTTP 請求的形式發(fā)送數(shù)據(jù),并采用 HTTP 響應(yīng)的形式從服務(wù)器獲取數(shù)據(jù),接受更新。
因?yàn)閷τ?IOT 的設(shè)備來說,這種 主動請求-- 被動等待應(yīng)答的 數(shù)據(jù)傳輸模型存在嚴(yán)重的局限性:
那么,MQTT 為什么如此輕便且靈活?MQTT 協(xié)議的一個關(guān)鍵的特性是 發(fā)布/訂閱模型 。它將數(shù)據(jù)的發(fā)布者和接受者分離。
一個設(shè)備終端既可以是數(shù)據(jù)的發(fā)布者 (published) 也可以是數(shù)據(jù)的訂閱者 (subscription) 。
一個設(shè)備如果要發(fā)布數(shù)據(jù),只需要往代理服務(wù)器中 相應(yīng)的主題發(fā)布數(shù)據(jù)內(nèi)容即可。
一個設(shè)備如果需要接受到數(shù)據(jù),只需要在代理服務(wù)器中, 提前訂閱自己需要關(guān)注的主題即可。
MQTT 最基本的體驗(yàn),就是使用 mosquitto 。
Mosquitto是一款實(shí)現(xiàn)了 MQTT v3.1 協(xié)議的開源消息代理軟件,提供輕量級的,支持發(fā)布/訂閱的的消息推送模式,使設(shè)備對設(shè)備之間的短消息通信簡單易用。
它可以理解成一個 MQTT 的代理服務(wù)器。
基本步驟如下:
安裝成功截圖
使用 brew services start mosquitto 啟動 MQTT 服務(wù)
運(yùn)行截圖
然后再打開另外兩個終端窗口,模擬兩個IOT設(shè)備。A 訂閱 MQTT 服務(wù)。B 向 MQTT 的服務(wù)枝悶唯發(fā)送數(shù)據(jù)。
A訂閱當(dāng)前MQTT的某個服務(wù)。
B向 MQTT 服務(wù)器發(fā)布(published) 數(shù)據(jù)。
然后,我們就可以在A控制臺里看到由 B 通過 MQTT 服務(wù)發(fā)送的數(shù)據(jù)了。
基本流程圖
控制臺 A 向 MQTT 服務(wù)器訂閱 dw/demo 服務(wù),并被動的等待 MQTT 服務(wù)器返回?cái)?shù)據(jù)。
控制臺 B 主動的向 MQTT 服務(wù)器的 dw/demo 服務(wù)發(fā)送 published 數(shù)據(jù),之后。服務(wù)器會主動向事先訂閱了 dw/demo 的終端分發(fā)此消息。
MQTT 是一種鏈接協(xié)議,它指定了如何組織數(shù)據(jù)字節(jié)并通過 TCP/IP 網(wǎng)絡(luò)傳輸它們。但實(shí)際上,開發(fā)人員并不需要鏈接這個鏈接協(xié)議的具體細(xì)節(jié)。我們只需要知道,每條消息都有一個命令和數(shù)據(jù)有效負(fù)載猛培。該命令定義消息類型(比如 CONNECT 消息或者 SUB SCRIBE 消息)。所有的 MQTT 庫和工具都提供了直接處理這些消息的基本方法,并且能自動填充一些必要的字段(在數(shù)據(jù)包的對應(yīng)字節(jié)填充),比如消息和客戶端 ID。
首先客戶端發(fā)送一罩舉條 CONNECT消息 來鏈接代理。CONNECT 消息要求建立從客戶端到代理服務(wù)器的鏈接。
CONNECT 命令的基本參數(shù)
當(dāng)客戶端向代理服務(wù)器發(fā)送一條 CONNECT 命令之后,服務(wù)器會調(diào)用 CONNACK 命令,告知服務(wù)鏈接的狀態(tài)。
CONNACK 命令的基本參數(shù)
當(dāng)客戶端和服務(wù)器建立連接之后,客戶端就可以向服務(wù)器訂閱某些主題的。(發(fā)送一條或多條 SUBSCRIBE消息 )。
表明當(dāng)服務(wù)器接受到其他終端推送的此主題數(shù)據(jù)時,服務(wù)器會默認(rèn)發(fā)送給它。
SUBSCRIBE 參數(shù)列表
當(dāng)客戶端成功的向服務(wù)器訂閱某個主題之后,服務(wù)器會返回一條 SUBACK 的消息,其中包含一個或者多個 returnCode 參數(shù)。
SUBACK消息參數(shù)
returnCode : 值 0 - 2 ,表示成功訂閱,并返回這個訂閱消息的 QOS。值 128 : 訂閱失敗。
既然客戶端可以向服務(wù)器訂閱某個主題,當(dāng)然也可以取消訂閱。
與 SUBSCRIBE 訂閱命令相反的命令是 UNSUBSCRIBE 取消訂閱命令。
此命令非常簡單。只有一個topic(主題)參數(shù)。
上面講的是訂閱,訂閱是需要有消息從服務(wù)器發(fā)送過來的。但是服務(wù)器本身基本不產(chǎn)生數(shù)據(jù),那數(shù)據(jù)從何而來呢?
通過另外一個客戶端執(zhí)行 PUBLISH 命令,往代理服務(wù)器發(fā)送數(shù)據(jù)。并最終通過代理服務(wù)器將數(shù)據(jù)傳遞給訂閱了此服務(wù)的客戶端。
PUBLISH 消息參數(shù)
對于 MQTT 的一張基本理解圖
基本流程圖:
最后總結(jié)
參考資料: 初識 MQTT
網(wǎng)頁標(biāo)題:在阿里云上部署mqtt服務(wù)器 阿里云mqtt服務(wù)器搭建 emq
文章路徑:http://bm7419.com/article28/dsjjjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)頁設(shè)計(jì)公司、云服務(wù)器、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)