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