Node.js | 你的物联网系统,有个管家待认领
很多时候,专业的事情都要交给专业的人来做,才会更放心。
例如买了套房,交房装修完毕,欢天喜地入住后,房子的日常养护和维护之类的事情,都由谁来负责呢?
物业呗~买了房子就自然需要房子所在小区提供的物业服务啦。
毕竟公共区域的维护和清洁、楼宇的日常保养、公共设施的故障修理和养护……没谁能比物业公司做的更好了,他们在人员、技能、经验等各方面都是专业的。最重要的是,你只需支付一些费用,就可以安心享受便捷周到的服务!
类似的情况出现了:你们公司最近基于 Azure IoT 技术新开发了一套物联网系统,经过小半个月的冲刺,整个系统已经顺利上线。但客户提出了一个新需求:既然你们还挺擅长的,干脆把这套系统的监控和后续维护工作也交给你们吧,快出个方案,没问题的话这就开始着手进行吧,要快哦~
这是要让物联网的建设者分分钟 Cosplay 成管家的节奏啊。内部分析发现,想要完美地完成专业的物联网后期监控和维护工作,你们需要:
开发一套远程监控系统;
提供一套将物联网边缘设备与监控系统连接在一起的机制;
通过监控系统集中采集设备数据;
分析采集到的数据,然后从中发现重要的信息;
速度!速度!!速度!!!
童鞋,既然你们的物联网本身就是基于 Azure IoT 技术构建的,那么你听说过 Azure IoT 套件中提供的预配置解决方案吗?
Azure IoT 套件预配置解决方案提供了一些常见的 IoT 解决方案,预配置的方案只需简单修改即可直接投入使用,快速满足用户的常见需求。目前 Azure IoT 套件提供了下列三个预配置解决方案:
接下来,我们一起看看如何通过「远程监视」这个预配置解决方案,为你的物联网系统请一个满是「英伦范儿」细致周到的管家。下文是使用 Node.js 作为开发语言,将物联网设备连接至 Azure IoT 套件中提供的远程监控预配置解决方案,借此把示例中创建的虚拟设备所采集的外部温度、内部温度,以及湿度信息发送到远程监视系统中,并将这些数据分析处理后现实在仪表板上。
一起按照步骤操作试试看吧。
准备工作
首先我们需要预配远程监视预配置解决方案,并在该解决方案中预配新的自定义设备。
如果尚未在 Azure 帐户中预配远程监视预配置解决方案,请执行下列操作:
在 https://www.azureiotsuite.cn/ 页上,单击「+」创建解决方案。
在「远程监视」面板上,单击「选择」创建解决方案。
在「创建远程监视解决方案」页上输入解决方案名称,选择部署到的区域,然后选择要使用的 Azure 订阅。
等待预配过程完成。
预配好远程监视解决方案后,单击「启动」,即可在浏览器中打开解决方案仪表板。
随后我们需要在远程监视方案中预配设备,为此请在解决方案仪表板中执行以下操作:
1、在仪表板左下角,单击「添加设备」。
2、在「自定义设备」面板中单击「新增」。
3、选择「让我定义自己的设备 ID」,输入设备 ID(例如「mydevice」),单击「检查 ID」验证该名称是否尚未使用,然后单击「创建」预配设备。
4、记下设备凭据(设备 ID、IoT 中心主机名和设备密钥)。客户端应用程序需要这些值才能连接到远程监视解决方案。然后单击「完成」。
5、在解决方案仪表板上的设备列表中选择设备。然后在「设备详细信息」面板中单击「启用设备」。设备状态现在为「正在运行」。至此远程监视解决方案已经可以从设备接收遥测数据,并在设备上调用方法。
创建 Node.js 示例解决方案
接下来我们需要使用 Node.js 创建示例解决方案。首先请确保已在开发计算机上安装 Node.js 0.11.5 版或更高版本。若要检查版本,可在命令行中运行 node –version。
随后请执行下列操作:
1、在开发计算机上创建名为 RemoteMonitoring 的文件夹,在命令行环境中导航到此文件夹。
2、运行以下命令下载并安装完成示例应用所需的包:
3、在 RemoteMonitoring 文件夹中,创建名为 remote_monitoring.js 的文件,在文本编辑器中打开此文件。
4、在 remote_monitoring.js 文件中,添加以下 require 语句:
5、在 require 语句之后添加以下变量声明。将占位符值[Device Id] 和[Device Key]替换为在远程监控解决方案仪表板中记下的设备值。使用解决方案仪表板中的 IoT 中心主机名替换[IoTHub Name]。例如,如果 IoT中心主机名是 contoso.azure-devices.net,则将 [IoTHub Name] 替换为 contoso:
6、添加以下变量用于定义一些基本遥测数据:
13、添加以下代码用于创建客户端实例:
14、添加以下代码来执行下述操作:
打开连接
发送 DeviceInfo 对象
设置所需属性的处理程序
发送报告的属性
为直接方法注册处理程序
开始发送遥测数据
NodeJS
5、设备处理方法时,运行设备代码的控制台中会显示消息。方法的结果将添加到解决方案门户中的历史记录:
就酱,不需要太多额外的工作就可以创建预配置的解决方案,并根据实际情况简单调整,快速将设备连接到远程监控系统中。你 get 了吗?
如果你在创建预配置解决方案时遇到还没有解决的问题,可以在文章底部留言给我哦~立即访问http://market.azure.cn
Node.js | 你的物联网系统,有个管家待认领的更多相关文章
- Node.js 教程 04 - 模块系统
前言: Node.js的模块系统类似于C/C++的文件引用,可以声明对象,也可以定义类 创建对象. 大家这么理解,就简单了. 定义: 为了让Node.js的文件可以相互调用,Node.js提供了一个简 ...
- NodeBB – 基于 Node.js 的开源论坛系统
NodeBB 是一个更好的论坛平台,专门为现代网络打造.它是免费的,易于使用. NodeBB 论坛软件是基于 Node.js 开发,支持 Redis 或 MongoDB 的数据库.它利用 Web So ...
- node.js开发博客系统---前端项目搭建(一)
Express: https://github.com/petecoop/generator-express 安装node.js和npm 执行: npm install -g yo npm insta ...
- Node.js(二)常用的系统模块
http模块 第一章已经介绍了 node.js 的模块都可以传一个回调函数 回调函数支持两个参数 error , data let fs = require('fs'); fs.readFile( ...
- Node.js开发博客系统
数据库设计 用户表: id phone password nickname head_img personal_sign level_id create_time update_time is_del ...
- node.js 开发博客系统
1. 安装yoman :npm install -g yo 2. 安装 generator-express :npm install -g generator-express 3. 安装 bower ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- 提升node.js中使用redis的性能
问题初现 某基于node.js开发的业务系统向外提供了一个dubbo服务,提供向第三方缓存查询.设置多项业务数据并聚合操作结果.在QPS达到800时(两台虚拟机,每台机器4Core8G4node进程) ...
- Jenkins 配置 Node.js 项目
开始 弄清楚 Jenkins 服务器 用 Jenkins 管理员账号下载 NodeJS Plugin 系统管理 ---> 全局工具配置 ---> NodeJS ---> 安装 --- ...
随机推荐
- vue中computed与methods的异同
在vue.js中,有methods和computed两种方式来动态当作方法来用的 如下: 两种方式在这种情况下的结果是一样的 写法上的区别是computed计算属性的方式在用属性时不用加(),而met ...
- C# 关于跨线程访问控件问题
跨线程访问控件问题的原因是:控件都是在主线程中创建的,而系统默认控件的修改权归其创建线程所有.在子线程中如果需要直接修改控件的内容,需要使用委托机制将控件的修改操作交给主线程处理.因此,当没有使用委托 ...
- limit 检索记录行
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定 ...
- centos 7 安装python3
centos系统默认已安装python2.7,python3需要手动安装.以上是安装步骤 一.备份原来的2.7版本 首先看一下默认的python2.7在哪里 [root@apple ~]# cd / ...
- Java基础--正则表达式的规则
注意:正则表达式只关注格式是否正确,不关注内容是否有效. 一.字符集合, []表示一个字符. 1.[abc] :指a,b,c中的任意一个字符. 2.[^abc]:指除了a,b,c外的任意字符. 3.[ ...
- POST和 GET
http GET 和 POST 请求的优缺点.区别以及误区 Get和Post在面试中一般都会问到,一般的区别: (1)post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及 ...
- EIGRP-7-可靠传输协议
可靠传输协议(RTP,Reliable Transport Protocol)负责管理ElGRP数据包的发送和接收.可靠传输意味着传输是有保障的,并且数据包会被按顺序发送.这种传输效果是依靠Cisco ...
- 不要忽视Web编程中的小细节
概述:长时间以来,我们创造了某些在构造和范围内用以提升网站易用性的约定和实践.然后在我们进行web编程的时候总有一些疏忽和纰漏.这里总结了一些web编程时容易出现的小错误,并给出了相应的补救方法,希望 ...
- mysql执行计划 const eq_ref ref range index all
explain:查询查询性能或者需要查看使用索引状态 一.type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) ...
- PHP var_export
var_export可以将一个数组转为一个字符串 不同于var_dump,var_export并不会输出数据的类型以及字符大小等,只会简单把数组的key跟value拼接成一个字符串 <?php ...