IoT 参考实现:环境监测解决方案的制作
此物联网参考实现基于现有的 Intel® 物联网空气质量传感器代码示例,构建了一个更全面的环境监测解决方案。
获取新的 Intel® 物联网开发套件,这是一个完整的软硬件解决方案,让开发者可以使用 Intel® Galileo 和 Intel® Edison 板卡创建激动人心的新解决方案。访问 Intel® 物联网开发者中心。
为了展示 Intel 开发者中心提供的物联网 (IoT) 代码示例作为更复杂解决方案基础的价值,本项目扩展了先前在空气质量传感器方面的工作。此物联网参考实现基于现有的 Intel® 物联网空气质量传感器代码示例,构建了一个更全面的环境监测解决方案。该解决方案使用 Intel® System Studio IoT Edition 和 Intel® NUC(作为网关)开发,通过 Arduino* 技术连接传感器,解决方案基于 Ubuntu*。数据通过 Amazon Web Services (AWS)* 传输到云端。
物联网有望从以前难以获取的来源提供数据,作为智能的基础,从而带来商业价值和人类洞察,最终改善人类生活质量。空气质量就是一个很好的例子,它包含了我们周围的至关重要的信息,但常常被忽视,其重要性从我们近期的舒适度到我们物种的终极福祉(就污染及其对气候和环境的长期影响而言)不等。
从历史上看,IT 基础设施一直被认为对环境有负面影响,因此物联网可能会被视为一个重要的转折点。也就是说,在我们努力更深入地了解世界以及我们对它的影响时,我们正在开发技术来提供信息,从而推动明智的决策。
例如,物联网传感器可以收集关于二氧化碳、甲烷和其他温室气体水平的数据,以及一氧化碳、己烷和苯等毒素,以及灰尘和烟雾等颗粒刺激物。它们还可以根据温度、光照水平和气压等读数,捕获关于这些污染物在广阔或有限区域上影响的详细信息。
基于先前的空气质量传感器应用程序
Intel® 开发者中心物联网价值主张的一部分来自于种子项目的建立,这些项目为进入众多物联网解决方案领域提供了切入点。这些项目既是供有兴趣的开发者可以重现的教学示例,也是新颖解决方案的出发点。
现有的空气质量传感器应用程序
本开发叙述中描述的环境监测器是对先前项目的一种改编,该项目范围更小,是一个空气质量传感器实现。先前空气质量传感器解决方案是使用 Intel® 物联网开发套件的一系列操作指南 Intel® 物联网代码示例练习的一部分。
有关该应用程序的更多信息可在 GitHub 存储库中找到:https://github.com/intel-iot-devkit/how-to-code-samples/blob/master/air-quality-sensor/javascript/README.md
该应用程序的核心功能围绕单个空气质量传感器,包括以下内容:
- 持续检查空气质量,检测是否存在超过设定阈值的空气污染物。
- 发出声音警报,一旦基于某个阈值被超过而产生警报,即表明空气不健康。
- 将警报历史记录存储在云端,跟踪并提供应用程序每次生成警报的历史记录。
应用程序代码使用 JavaScript* 构建为 Node.js* 项目,并使用了 Intel® 物联网开发套件中的 MRAA(I/O 库)和 UPM(传感器库)。该软件与以下硬件组件接口:
- Intel® NUC
- Arduino 101*
- Grove* 入门套件
注意:此处我们使用 Intel® NUC,但请点击 此处 查看其他兼容的网关。
您也可以使用 Grove* 物联网商业开发套件 来实现此解决方案。用于创建该应用程序的 IDE 是 Intel® System Studio IoT Edition。
空气质量传感器应用程序为环境监测器提供了基础。
改编现有项目以创建新解决方案
本文档展示了如何轻松修改和扩展像先前空气质量传感器这样的项目。反过来,新的环境监测解决方案(如图 1 所示)通过添加额外的传感器扩展了物联网功能,并为用户提供了操作系统选择的灵活性(即,您可以使用 Intel® 物联网网关软件套件或 Ubuntu* Server)。
表 1. 传感器图标图例
![]() | ![]() | ![]() | ![]() |
灰尘 | 气体 | 温度 | 湿度 |
现有的空气质量传感器应用程序的范围相对简单,这为扩展其功能提供了很大的机会。
团队选择添加一些新传感器来扩展现有解决方案的功能。环境监测解决方案包括新的灰尘、温度和湿度传感器。
除了在此项目计划中所做的更改之外,有兴趣的各方还可以根据需要对解决方案的其他部分进行更改。例如,这可能包括添加或删除传感器或执行器,切换到不同的集成开发环境 (IDE)、编程语言或操作系统,或者添加全新的软件组件或应用程序以创建新颖的功能。
环境监测解决方案的硬件组件
- Intel® NUC
- Arduino 101*
- Grove* 传感器
Intel® NUC 基于 Intel® Atom™ 处理器 E3815,提供无风扇散热解决方案,4 GB 板载闪存(以及用于额外存储的 SATA 连接),以及广泛的 I/O 端口。Intel® NUC 被设计为一个高度紧凑且可定制的设备,能够提供与台式机 PC 相当的性能。它提供了以下关键优势:
- 强大的计算资源,确保流畅的性能,运行时不会出现卡顿。
- 现成的商业可用性,有助于确保项目能够按计划进行。
- 预验证了解决方案所使用的操作系统(Ubuntu)。
Arduino 101* 板卡使 Intel® NUC 在硬件和引脚方面都与 Arduino 扩展板兼容,符合项目团队的开源理念。虽然蓝牙* 在当前迭代的解决方案中没有使用,但该硬件确实具备该功能,项目团队正在考虑将来使用。
Intel® NUC 和 Arduino 101 板卡如图 3 所示,其规格见表 2。
表 2. 环境监测解决方案中使用的原型硬件
Intel® NUC Kit DE3815TYKHE | Arduino 101 板卡 | |
---|---|---|
处理器/微控制器 | Intel® Atom™ 处理器 E3815 (512K 缓存, 1.46 GHz) | Intel® Curie™ 计算模块 @ 32 MHz |
内存 | 8 GB DDR3L-1066 SODIMM (最大) |
|
网络/I/O | 集成 10/100/1000 LAN |
|
尺寸 | 190 毫米 x 116 毫米 x 40 毫米 | 68.6 毫米 x 53.4 毫米 |
完整规格 | 规格 | 规格 |
对于原型创建所需的传感器和其他组件,团队选择了 Grove* Arduino 入门套件*(由 Seeed Studio* 制造),该套件基于 Grove* 物联网商业开发套件中使用的 Grove* 入门套件 Plus。这套组件价格低廉,并且由于是预先选择的零件集,因此减少了识别和采购物料清单的工作量。组件列表、功能和连接性见表 3。
表 3. 物料清单
组件 (Component) | 详细说明 | 引脚连接 | 连接类型 | |
---|---|---|---|---|
基础系统 | Intel® NUC Kit DE3815TYKHE | 网关 | ||
Arduino* 101 板卡 | 传感器集线器 | USB | ||
Grove* - Base Shield | Arduino 101 扩展板 | 扩展板 | ||
USB Type A 转 Type B 线缆 | 将 Arduino 101 板卡连接到 Intel® NUC | |||
传感器 | Grove - 绿色 LED | LED 指示监视器状态 | D2 | Digital |
Grove - 气体传感器 (MQ2) | 气体传感器(CO、甲烷、烟雾等) | A1 | 模拟 | |
Grove - 灰尘传感器 | 颗粒物传感器 | D4 | Digital | |
Grove - 温湿度气压传感器 (BME280) | 温度、湿度、气压传感器 | 总线 0 | I2C |
利用该物料清单和连接方案,团队组装了环境监测器的原型模型,如下图所示。
环境监测解决方案的软件组件
除了物理模型之外,环境监测解决方案还包含各种软件组件,本节将对此进行描述。如上所述,该解决方案包括一个运行在 Intel® NUC 上的管理应用程序,以及一个供普通用户使用的移动客户应用程序,该应用程序设计用于在平板电脑或智能手机上运行。
先前的空气质量传感器应用程序运行在 Intel® 物联网网关软件套件上。相比之下,环境监测解决方案使用的是 Ubuntu* Server。
用于开发环境监测解决方案软件的 IDE 是 Intel® System Studio IoT Edition,它有助于连接到 Intel® NUC 并开发应用程序。
与先前的空气质量传感器应用程序一样,本解决方案使用 Intel® 物联网开发套件中的 MRAA 和 UPM 来与平台 I/O 和传感器数据进行接口。MRAA 库提供了硬件的抽象层,允许直接访问 Intel® NUC 上的 I/O,以及 Firmata*,它允许与 Arduino* 开发环境进行编程交互,利用 Arduino 的硬件抽象功能。使用 MRAA 抽象 Firmata 可以更精确地控制 Intel® NUC 上的 I/O,简化从传感器收集数据的过程。UPM 是在 MRAA 之上开发的一个库,它提供了一个用户友好的 API,并提供了用于访问传感器的特定函数调用。
管理应用程序
作为解决方案内置的一个简单的管理应用程序,其用户界面如下所示,运行在 Intel® NUC 上。该应用程序提供了解决方案传感器阵列数据的视图,并能够生成数据随时间变化的视图。它还提供了按钮,管理员可以使用这些按钮通过生成超出预设“正常”范围的模拟传感器数据来触发事件。该应用程序被设计为可扩展的,例如,有潜力支持多个地理位置的附加传感器类型。
图 7 显示了管理应用程序的主窗口,模拟了传感器数据都在预设限值内的正常运行状态。此窗口包含用于设置基于各种传感器的警报阈值的控件,并显示阈值本身和当前传感器读数。
在图 8 中,已按下生成模拟事件的按钮之一。该按钮的活动状态通过视觉指示,数据读数显示超出正常参数,并且警报指示器处于活动状态。操作员可以确认警报,即使应用程序继续记录非正常数据,也可以消除警报。一旦传感器数据恢复到正常范围,屏幕将恢复到正常运行状态。
管理应用程序还提供了查看时间序列传感器数据的能力,如图 9 所示。利用此功能,操作员可以跟踪给定传感器数据随时间的变化,这提供了简单的趋势信息,可以借助分析进行增强。
环境监测解决方案使用 AWS* 云服务提供一个中央存储库,用于存储实时和历史传感器数据。例如,这种基于云的存储可用于聚合来自多个传感器的数据,作为大范围污染水平及其影响的视图基础。针对存储数据或实时流式数据运行的分析,可能会基于对大气中有趣物质的大规模视图生成洞察。
利用这些能力,开发组织可以建立一个潜在的开放式监测范围,无论是在调查的因素还是观察的地理区域方面。管理应用程序利用基于云的资源来支持对大数据进行大规模分析,为未来的创新奠定基础。
注意:管理应用程序可以通过后端数据存储或使用消息队列遥测传输* (MQTT*)(一种机器对机器消息传递服务器)的数据存储来访问 AWS* 上的数据。有关这些选项的实现指南可在以下位置找到:
结论
本开发叙述中讨论的解决方案提供了一个示例,说明 Intel 提供的现有物联网解决方案如何为相关项目的开发提供跳板。在这种情况下,一个相对简单的空气质量传感器应用程序是更复杂、更强大的环境监测解决方案的基础,该解决方案结合了额外的传感器和更强大的系统硬件,同时保留了原始解决方案从想法到实现的快速能力。使用这种方法,开发新解决方案的物联网项目团队不必从头开始。