資料介紹
描述
這項(xiàng)作業(yè)是為“羅馬第一大學(xué)”的“物聯(lián)網(wǎng)”課程完成的。但是,當(dāng)然,經(jīng)過(guò)多次更新,代碼、使用的技術(shù)以及用戶體驗(yàn)都發(fā)生了很大的變化和增加。這只是您將在我的 Github 上找到的最終項(xiàng)目的第一次嘗試。
結(jié)構(gòu)概述
- 5個(gè)虛擬傳感器,實(shí)現(xiàn)為簡(jiǎn)單的nodejs程序,使用MQTT協(xié)議與谷歌云平臺(tái)交換遙測(cè)值;
- 谷歌云平臺(tái),提供Cloud IoT 核心和Pub/Sub API,用于管理連接、設(shè)備以及與 Web 應(yīng)用程序交換的消息;
- 使用nodejs + express和一些其他相關(guān)框架構(gòu)建的 web 應(yīng)用程序;
- 用于存儲(chǔ)的Mongodb NoSQL 數(shù)據(jù)庫(kù);
注意:我的 G ithub上提供的代碼用于我的個(gè)人 google 帳戶上的憑據(jù)。我沒(méi)有上傳密鑰,如果你想運(yùn)行它,你需要自己設(shè)置。
MQTT 簡(jiǎn)介
MQTT(消息隊(duì)列遙測(cè)傳輸)是一種開(kāi)放的OASIS和ISO 標(biāo)準(zhǔn)(ISO/IEC 20922) 輕量級(jí)的發(fā)布-訂閱網(wǎng)絡(luò)協(xié)議,用于在設(shè)備之間傳輸消息。該協(xié)議通常運(yùn)行在 TCP/IP 之上;但是,任何提供有序、無(wú)損、雙向連接的網(wǎng)絡(luò)協(xié)議都可以支持 MQTT。它專為與需要“小代碼足跡”或網(wǎng)絡(luò)帶寬有限的遠(yuǎn)程位置的連接而設(shè)計(jì)。
代理充當(dāng)郵局,MQTT 不使用預(yù)期收件人的地址,而是使用名為“主題”的主題行,任何想要該消息副本的人都將訂閱該主題。多個(gè)客戶端可以從單個(gè)代理接收消息(一對(duì)多功能)。同樣,多個(gè)發(fā)布者可以將主題發(fā)布給單個(gè)訂閱者(多對(duì)一)。
請(qǐng)注意,在這種情況下,我們將使用多個(gè)發(fā)布設(shè)備,但只有一個(gè)訂閱者,或者至少只有一個(gè)保存消息的訂閱者,因?yàn)閿?shù)據(jù)庫(kù)通過(guò) Web 儀表板連接到代理。
云平臺(tái)設(shè)置
任何工程師都知道,谷歌提供的谷歌云平臺(tái)是市場(chǎng)上最強(qiáng)大的云計(jì)算服務(wù)套件之一。在這個(gè)項(xiàng)目中,它被用作基于云的后端來(lái)控制 MQTT,并實(shí)現(xiàn) Publish/Subscribe 消息傳遞模式。
設(shè)置非常簡(jiǎn)單,需要以下步驟:
- 訪問(wèn)谷歌云平臺(tái),選擇物聯(lián)網(wǎng)核心API;
- 創(chuàng)建一個(gè)寄存器和 5 個(gè)不同的設(shè)備(帶有相應(yīng)的鍵),每個(gè)傳感器一個(gè):溫度、濕度、風(fēng)向、風(fēng)強(qiáng)、雨高;
- 使用 Pub/Sub API 向注冊(cè)者添加主題和訂閱;
一些有用的設(shè)置鏈接是:
- https://cloud.google.com/iot/docs/quickstart?authuser=1
- https://cloud.google.com/iot/docs/how-tos/devices?authuser=1
注意:拉取操作將需要身份驗(yàn)證,請(qǐng)確保創(chuàng)建服務(wù)帳戶密鑰,如以下鏈接中所述簡(jiǎn)單說(shuō)明https://cloud.google.com/docs/authentication/getting-started
傳感器
由于代碼主要基于谷歌文檔提供的代碼,我不會(huì)深入解釋,實(shí)際上它只需要快速設(shè)置和功能上的一些更改。publishAsync()
const direction = getRandomArbitrary(0, 360);
var date = parseInt(Date.now());
const payload = "virtual:"+" "+deviceId+" "+direction+" "+date;
console.log('Publishing message:', payload);
client.publish(mqttTopic, payload, {qos: 1});
publishAsync(mqttTopic, client, iatTime, 1, connectionArgs);
我們已將 Pub/Sub API 設(shè)置為每種遙測(cè)僅接受一個(gè)主題,因此我們需要指定從哪個(gè)設(shè)備發(fā)送消息,如代碼所示。因此,發(fā)布的每條消息都由以下部分組成:
- “虛擬設(shè)備”指示器,為了與下一個(gè)任務(wù)兼容而引入
- deviceId,它告訴設(shè)備發(fā)送的遙測(cè)類型
- 遙測(cè)值
- 日期
假設(shè)我們不想丟失發(fā)送的任何值,我設(shè)置qos: 1
, 以允許重傳消息。
最后,要運(yùn)行其中一個(gè)傳感器,您只需更改以下設(shè)置
// SETUP
const projectId = `your_project_ID`;
const deviceId = `your_device_ID`;
const registryId = `your_register_ID`;
const region = `your_region`;
然后運(yùn)行:
$ node device_name.js
執(zhí)行將導(dǎo)致:
這里是谷歌云平臺(tái)的鏈接,指的是如何通過(guò) MQTT 網(wǎng)橋發(fā)布:
- https://cloud.google.com/iot/docs/how-tos/mqtt-bridge?authuser=1#downloading_mqtt_server_certificates
網(wǎng)絡(luò)應(yīng)用程序
該代碼基于類似 MVC 的結(jié)構(gòu),并使用了不同的技術(shù)使其看起來(lái)更好,但這些與本項(xiàng)目的主要目標(biāo)無(wú)關(guān),因此我將在結(jié)論中提供一些參考。
但是,圖片顯示了管理 MQTT 交互的代碼部分。實(shí)際上,該listenForMessages()
功能允許應(yīng)用程序從 Google 云中提取消息,然后在將socket.io發(fā)送到主視圖后保存遙測(cè)數(shù)據(jù)。
同樣在這種情況下,要使用該代碼,您只需要更改訂閱設(shè)置并生成一個(gè)config/keys.js文件來(lái)放置貓鼬的 URI。然后你可以運(yùn)行:
$ node app.js
至于其他部分,這里有一個(gè)指向 Google 文檔相應(yīng)部分的鏈接:
注意:要簡(jiǎn)單地將數(shù)據(jù)存儲(chǔ)在 MongoDB 中,您可以通過(guò)以下鏈接在 mLab 中創(chuàng)建一個(gè)帳戶:https ://mlab.com/ 。
結(jié)論
在主頁(yè)上,應(yīng)用程序?qū)@示當(dāng)前值,并在出現(xiàn)新值時(shí)刷新它們。相反,在其他頁(yè)面上,您可以看到舊值。
?
- 基于AWS的物聯(lián)網(wǎng)虛擬環(huán)境站
- 使用RIOT/Google IoT/MQTT的環(huán)境站
- 基于谷歌云的物聯(lián)網(wǎng)系統(tǒng)——用戶活動(dòng)識(shí)別
- NodeMCU 通過(guò)MQTT 連接阿里云物聯(lián)網(wǎng)
- 物聯(lián)網(wǎng)小項(xiàng)目:STM32F103單片機(jī)通過(guò)MQTT協(xié)議連接阿里云
- 微信小程序使用MQTT遠(yuǎn)程控制單片機(jī)——阿里云物聯(lián)網(wǎng)平臺(tái)
- 鴻蒙開(kāi)發(fā)板上使用MQTT協(xié)議、OneNET實(shí)現(xiàn)第一個(gè)物聯(lián)網(wǎng)項(xiàng)目 0次下載
- 使用物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)海量環(huán)境監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)與共享平臺(tái)的資料說(shuō)明 0次下載
- 如何使用單片機(jī)實(shí)現(xiàn)TCP鏈接的基礎(chǔ)知識(shí)解決MQTT的聯(lián)網(wǎng)問(wèn)題
- 如何使用MQTT客戶端連接阿里云MQTT服務(wù)器詳細(xì)教程說(shuō)明
- MQTT是什么?物聯(lián)網(wǎng)開(kāi)發(fā)入門(mén)之物聯(lián)網(wǎng)標(biāo)準(zhǔn)通信協(xié)議-MQTT詳細(xì)資料概述 33次下載
- 物聯(lián)網(wǎng)MQTT網(wǎng)關(guān)連接PLC配置全過(guò)程 30次下載
- 通過(guò)MQTT網(wǎng)關(guān),開(kāi)發(fā)物聯(lián)網(wǎng)云平臺(tái)流程圖 31次下載
- 基于MQTT的工業(yè)物聯(lián)網(wǎng)數(shù)據(jù)云平臺(tái) 33次下載
- MQTT物聯(lián)網(wǎng)網(wǎng)關(guān)的常見(jiàn)類型 31次下載
- 通過(guò)物聯(lián)網(wǎng)管理多臺(tái)MQTT設(shè)備-基于米爾T527開(kāi)發(fā)板 505次閱讀
- MQTT和Modbus協(xié)議的區(qū)別 1903次閱讀
- paho-mqtt模塊實(shí)戰(zhàn) 1113次閱讀
- MQTT協(xié)議的概念和主要特性 MQTT協(xié)議于物聯(lián)網(wǎng)有何好處 2232次閱讀
- 盤(pán)點(diǎn)2023年值得嘗試的MQTT客戶端工具 4540次閱讀
- 深入淺出地學(xué)習(xí)MQTT協(xié)議 978次閱讀
- MQTT是什么? 1.2w次閱讀
- 如何利用ESP8266實(shí)現(xiàn)防雨物聯(lián)網(wǎng)氣象站的設(shè)計(jì) 4963次閱讀
- 如何移植MQTT物聯(lián)網(wǎng)通信協(xié)議 4274次閱讀
- 云計(jì)算、大數(shù)據(jù)與物聯(lián)網(wǎng)有什么聯(lián)系呢? 8353次閱讀
- 分布式工業(yè)物聯(lián)網(wǎng)云平臺(tái)是怎樣的 1694次閱讀
- 了解物聯(lián)網(wǎng)云服務(wù)之概貌,以進(jìn)一步學(xué)習(xí)了解IoT 6051次閱讀
- 云計(jì)算與物聯(lián)網(wǎng)的關(guān)系_云計(jì)算和物聯(lián)網(wǎng)的優(yōu)勢(shì) 1.3w次閱讀
- 物聯(lián)網(wǎng)保護(hù)環(huán)境的三種應(yīng)用解析 5023次閱讀
- 物聯(lián)網(wǎng)環(huán)境下的云存儲(chǔ)安全技術(shù)研究 689次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多