資料介紹
描述
這項作業是為“羅馬第一大學”的“物聯網”課程完成的。但是,當然,經過多次更新,代碼、使用的技術以及用戶體驗都發生了很大的變化和增加。這只是您將在我的 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調試助手中文版(物聯網開發必備) 9次下載
- 基于AWS的物聯網虛擬環境站
- 使用RIOT/Google IoT/MQTT的環境站
- 基于谷歌云的物聯網系統——用戶活動識別
- NodeMCU 通過MQTT 連接阿里云物聯網
- 物聯網小項目:STM32F103單片機通過MQTT協議連接阿里云
- 微信小程序使用MQTT遠程控制單片機——阿里云物聯網平臺
- 鴻蒙開發板上使用MQTT協議、OneNET實現第一個物聯網項目 0次下載
- 使用物聯網技術實現海量環境監測數據存儲與共享平臺的資料說明 0次下載
- 如何使用單片機實現TCP鏈接的基礎知識解決MQTT的聯網問題
- 如何使用MQTT客戶端連接阿里云MQTT服務器詳細教程說明
- MQTT是什么?物聯網開發入門之物聯網標準通信協議-MQTT詳細資料概述 34次下載
- 物聯網MQTT網關連接PLC配置全過程 32次下載
- 通過MQTT網關,開發物聯網云平臺流程圖 31次下載
- 基于MQTT的工業物聯網數據云平臺 33次下載
- 云翎智能低軌衛星物聯網終端助力全場景高效管理與應急響應 813次閱讀
- 【教程】設備通過MQTT協議接入OneNET平臺,建立可視化界面 4.1k次閱讀
- 通過物聯網管理多臺MQTT設備-基于米爾T527開發板 1.5k次閱讀
- MQTT和Modbus協議的區別 4.4k次閱讀
- paho-mqtt模塊實戰 2.3k次閱讀
- MQTT協議的概念和主要特性 MQTT協議于物聯網有何好處 3.4k次閱讀
- 盤點2023年值得嘗試的MQTT客戶端工具 7.1k次閱讀
- MQTT是什么? 1.5w次閱讀
- 如何利用ESP8266實現防雨物聯網氣象站的設計 6.2k次閱讀
- 如何移植MQTT物聯網通信協議 5.5k次閱讀
- 云計算、大數據與物聯網有什么聯系呢? 9.2k次閱讀
- 分布式工業物聯網云平臺是怎樣的 2k次閱讀
- 了解物聯網云服務之概貌,以進一步學習了解IoT 6.5k次閱讀
- 云計算與物聯網的關系_云計算和物聯網的優勢 1.5w次閱讀
- 物聯網環境下的云存儲安全技術研究 835次閱讀
下載排行
本周
- 1新一代網絡可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數據手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數據手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協議電壓誘騙控制器IC技術手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論