资料介绍
描述
这项作业是为“罗马第一大学”的“物联网”课程完成的。但是,当然,经过多次更新,代码、使用的技术以及用户体验都发生了很大的变化和增加。这只是您将在我的 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/ 。
结论
在主页上,应用程序将显示当前值,并在出现新值时刷新它们。相反,在其他页面上,您可以看到旧值。
- 基于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物联网网关的常见类型 31次下载
- 通过物联网管理多台MQTT设备-基于米尔T527开发板 505次阅读
- MQTT和Modbus协议的区别 1903次阅读
- paho-mqtt模块实战 1113次阅读
- MQTT协议的概念和主要特性 MQTT协议于物联网有何好处 2232次阅读
- 盘点2023年值得尝试的MQTT客户端工具 4540次阅读
- 深入浅出地学习MQTT协议 978次阅读
- MQTT是什么? 1.2w次阅读
- 如何利用ESP8266实现防雨物联网气象站的设计 4963次阅读
- 如何移植MQTT物联网通信协议 4274次阅读
- 云计算、大数据与物联网有什么联系呢? 8353次阅读
- 分布式工业物联网云平台是怎样的 1694次阅读
- 了解物联网云服务之概貌,以进一步学习了解IoT 6051次阅读
- 云计算与物联网的关系_云计算和物联网的优势 1.3w次阅读
- 物联网保护环境的三种应用解析 5023次阅读
- 物联网环境下的云存储安全技术研究 689次阅读
下载排行
本周
- 1elmo直线电机驱动调试细则
- 4.76 MB | 9次下载 | 6 积分
- 2GB 4706.17-2010 家用和类似用途电器的安全电动机-压缩机的特殊要求
- 3.47 MB | 6次下载 | 1 积分
- 3WIFI智能音箱原理图完整版
- 0.09 MB | 5次下载 | 10 积分
- 4GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 3次下载 | 1 积分
- 5ADL-GPIB IEEE 488命令集函数参考手册
- 0.67 MB | 2次下载 | 5 积分
- 6H10-T108KYG/5M数据表
- 0.73 MB | 2次下载 | 免费
- 748V三相逆变器电路图
- 0.54 MB | 1次下载 | 5 积分
- 8如何使用C2000 CLB实现Traction Inverter应用中的PWM输出保护功能
- 1.32 MB | 1次下载 | 免费
本月
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 53次下载 | 免费
- 2800VA纯正弦波逆变器的参考设计
- 2.96MB | 22次下载 | 免费
- 3SW6308V原理图设计指南
- 0.75 MB | 15次下载 | 1 积分
- 4SW6308V三口多协议升降压移动电源SOC中文手册
- 1.61 MB | 14次下载 | 1 积分
- 5纯电动汽⻋的主要部件及⼯作原理
- 5.76 MB | 13次下载 | 5 积分
- 6新概念模拟电路(电子版全集)
- 29.33 MB | 11次下载 | 免费
- 7GP328和GP88S对讲机的维修实列资料合集免费下载
- 0.03 MB | 10次下载 | 10 积分
- 8SW6308V寄存器手册
- 1.08 MB | 10次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191366次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73805次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多