触发传感器的水果质量检测


文档摘要

触发传感器的水果质量检测 本课概述的草图笔记 草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。 课前测验 课前测验 引言 物联网应用程序不仅仅是单一设备捕获数据并将其发送到云端,它通常涉及多个设备协同工作,使用传感器从物理世界中捕获数据,根据这些数据做出决策,并通过执行器或可视化与物理世界进行交互。 在本课中,你将学习如何设计复杂的物联网应用程序,包括集成多个传感器、多种云服务来分析和存储数据,并通过执行器展示响应。你将学习如何设计一个水果质量控制系统原型,包括如何使用接近传感器触发物联网应用程序,以及该原型的架构。

触发传感器的水果质量检测

本课概述的草图笔记

草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。

课前测验

课前测验

引言

物联网应用程序不仅仅是单一设备捕获数据并将其发送到云端,它通常涉及多个设备协同工作,使用传感器从物理世界中捕获数据,根据这些数据做出决策,并通过执行器或可视化与物理世界进行交互。

在本课中,你将学习如何设计复杂的物联网应用程序,包括集成多个传感器、多种云服务来分析和存储数据,并通过执行器展示响应。你将学习如何设计一个水果质量控制系统原型,包括如何使用接近传感器触发物联网应用程序,以及该原型的架构。

在本课中,我们将涵盖:

这是该项目的最后一课,因此在完成本课及作业后,请不要忘记清理你的云服务。你需要这些服务来完成作业,所以请确保先完成作业。

如果需要,请参阅项目清理指南了解具体步骤。

设计复杂的物联网应用程序

物联网应用程序由许多组件组成。这包括各种事物(设备)和互联网服务。

物联网应用程序可以描述为“事物”(设备)发送数据以生成“见解”。这些“见解”生成“行动”,以改进业务或流程。例如,发动机(事物)发送温度数据。这些数据被用来评估发动机是否按预期运行(见解)。然后,该见解被用来优先安排发动机的维护计划(行动)。

  • 不同的事物收集不同的数据片段。
  • 物联网服务对这些数据提供见解,有时会用来自其他来源的数据来增强这些数据。
  • 这些见解驱动行动,包括控制设备中的执行器,或可视化数据以供人类决策。

参考物联网架构

参考物联网架构

上述图表显示了一个参考物联网架构。

参考架构 是一种你可以用来设计新系统的示例架构。在这种情况下,如果你正在构建一个新的物联网系统,可以按照参考架构操作,适当地替换自己的设备和服务。

  • 事物 是从传感器捕获数据的设备,可能与边缘服务交互以解释这些数据,例如图像分类器来解释图像数据。设备的数据被发送到物联网服务。
  • 见解 来自无服务器应用或对存储数据进行的分析。
  • 行动 可以是发送给设备的命令,或者可视化数据以允许人类做出决策。

参考物联网架构

上述图表显示了迄今为止课程中涵盖的一些组件和服务,以及它们如何在参考物联网架构中连接在一起。

  • 事物 - 你已经编写了设备代码来从传感器捕获数据,并使用自定义视觉在云端和边缘设备上分析图像。这些数据被发送到IoT Hub。
  • 见解 - 你已经使用Azure函数来响应发送到IoT Hub的消息,并将数据存储起来以便以后分析。
  • 行动 - 你已经根据云端的决策和发送给设备的命令控制了执行器,并且使用Azure地图可视化了数据。

✅ 思考一下你使用过的其他物联网设备,比如智能家居设备。这些设备及其软件中的事物、见解和行动是什么?

这种模式可以根据需要扩展得更大或更小,添加更多的设备和服务。

数据和安全

在定义系统的架构时,你需要不断考虑数据和安全。

  • 设备发送和接收什么数据?
  • 如何保护和保障这些数据?
  • 如何控制对设备和云服务的访问?

✅ 思考一下你拥有的任何物联网设备的数据安全性。在传输过程中或存储时,有多少数据是个人的并且应该保密?哪些数据不应该存储?

设计水果质量控制系统

现在让我们将事物、见解和行动的概念应用到水果质量检测器的设计中,以设计一个更大的端到端应用程序。

想象一下,你被分配了一个任务,要在加工工厂中构建一个水果质量检测器。水果通过传送带系统运输,目前员工们花费时间手动检查水果并在水果到达时移除未成熟的水果。为了降低成本,工厂所有者希望有一个自动化系统。

✅ 随着物联网(以及技术总体趋势)的兴起,越来越多的手动工作被机器取代。做一些研究:估计有多少工作会因物联网而失去?建造物联网设备会创造多少新工作?

你需要构建一个系统,在水果到达传送带时检测水果,然后拍照并使用边缘运行的AI模型进行检查。结果会被发送到云端进行存储,如果水果未成熟,则会发出通知以便移除未成熟的水果。

事物 检测传送到传送带上的水果的检测器
拍摄和分类水果的摄像头
在边缘运行分类器的边缘设备
通知未成熟水果的设备
见解 决定检查水果的成熟度
存储成熟度分类的结果
确定是否需要提醒未成熟水果
行动 发送命令给设备拍摄水果并使用图像分类器检查
发送命令给设备提醒水果未成熟

应用程序原型化

水果质量检测的参考架构

上述图表显示了此原型应用程序的参考架构。

  • 具有接近传感器的物联网设备检测到水果的到来。这会向云端发送一条消息,表示检测到了水果。
  • 云端的无服务器应用会发送命令给另一个设备来拍照并对图像进行分类。
  • 具有摄像头的物联网设备拍照并将图像发送到边缘运行的图像分类器。结果随后被发送到云端。
  • 云端的无服务器应用存储这些信息以供日后分析,查看水果中有多少是未成熟的。如果水果未成熟,它会发送命令给另一个物联网设备,通过LED通知工厂工人有未成熟的水果。

整个物联网应用程序可以用单个设备实现,所有启动图像分类和控制LED的逻辑都内置其中。它可以仅使用IoT Hub来跟踪检测到的未成熟水果数量并配置设备。在这节课中,我们扩展了它以演示大规模物联网应用程序的概念。

对于原型,你将在单个设备上实现所有这些功能。如果你使用的是微控制器,则可以使用单独的边缘设备来运行图像分类器。你已经学到了构建此功能所需的大部分内容。

从传感器触发水果质量检查

物联网设备需要某种触发器来指示水果准备好进行分类。其中一个触发器可能是通过测量水果在传送带上到达正确位置的距离来实现的。

接近传感器向物体(如香蕉)发射激光束,并测量激光束反弹回来的时间

接近传感器可用于测量传感器到物体的距离。它们通常会发射电磁辐射的光束,如激光束或红外线,然后检测反射回的光束。激光束发送和信号反弹回来之间的时间可以用来计算到传感器的距离。

你可能已经在不知不觉中使用了接近传感器。大多数智能手机在通话时会关闭屏幕以防止意外结束通话,这是通过接近传感器实现的,该传感器在通话时检测靠近屏幕的物体并禁用触摸功能,直到手机距离一定距离。

任务 - 使用距离传感器触发水果质量检测

根据相关指南,使用接近传感器检测物体:

用于水果质量检测的数据

原型水果检测器具有多个组件相互通信。

组件相互通信

  • 接近传感器测量水果的距离并将其发送到IoT Hub
  • 控制摄像头的命令来自IoT Hub到摄像头设备
  • 图像分类结果被发送到IoT Hub
  • 控制LED以在水果未成熟时发出警报的命令从IoT Hub发送到具有LED的设备

最好在构建应用程序之前定义这些消息的结构。

几乎每个有经验的开发人员在其职业生涯中都会花数小时、数天甚至数周来追踪由于发送的数据与预期不符而导致的错误。

例如 - 如果你发送温度信息,如何定义JSON?你可以有一个名为temperature的字段,或者使用常见的缩写temp

{ "temperature": 20.7 }

与:

{ "temp": 20.7 }

你还需要考虑单位——温度是摄氏度还是华氏度?如果你使用消费设备测量温度,并且它们更改了显示单位,你需要确保发送到云端的单位保持一致。

✅ 做一些研究:单位问题是如何导致价值1.25亿美元的火星气候轨道器坠毁的?

思考一下用于水果质量检测的数据。你会如何定义每条消息?在哪里分析数据并决定发送哪些数据?

例如 - 使用接近传感器触发图像分类。物联网设备测量距离,但决策在哪里做出?设备是否决定水果足够近并发送消息告诉IoT Hub触发分类?还是发送接近测量值并让IoT Hub决定?

这些问题的答案是——视情况而定。每个用例都是不同的,这就是为什么作为物联网开发者,你需要理解你要构建的系统,如何使用它,以及要检测的数据。

  • 如果决策是由IoT Hub做出的,你需要发送多个距离测量值。
  • 如果发送的消息过多,会增加IoT Hub的成本,并增加物联网设备所需的带宽(特别是在工厂中有数百万台设备的情况下)。它还可能导致设备变慢。
  • 如果在设备上做出决策,你需要提供一种方法来微调机器。

使用开发设备模拟多个物联网设备

为了构建原型,你需要你的物联网开发套件表现得像多个设备,发送遥测数据并响应命令。

在Raspberry Pi或虚拟物联网硬件上模拟多个物联网设备

当使用像Raspberry Pi这样的单板计算机时,你可以同时运行多个应用程序。这意味着你可以通过创建多个应用程序来模拟多个物联网设备,每个应用程序代表一个“物联网设备”。例如,你可以将每个设备实现为单独的Python文件,并在不同的终端会话中运行它们。

注意,某些硬件在被多个同时运行的应用程序访问时可能无法正常工作。

在微控制器上模拟多个设备

在微控制器上模拟多个设备更为复杂。不像单板计算机,你不能同时运行多个应用程序,你必须在一个应用程序中包含所有单独物联网设备的逻辑。

一些使这一过程更容易的建议:

  • 为每个物联网设备创建一个或多个类——例如类叫做DistanceSensor, ClassifierCamera, LEDController. Each one can have it's own setup and loop methods called by the main setup and loop functions.
  • Handle commands in a single place, and direct them to the relevant device class as required.
  • In the main loop function, you will need to consider the timing for each different device. For example, if you have one device class that needs to process every 10 seconds, and another that needs to process every 1 second, then in your main loop function use a 1 second delay. Every loop,调用每秒需要处理的相关代码,并使用计数器来计数每个循环,在计数器达到10时处理另一个设备(之后重置计数器)。

进入生产阶段

原型将成为最终生产系统的基础。当你进入生产阶段时,一些不同之处可能包括:

  • 耐用组件——使用能够承受工厂噪音、热量、振动和压力的硬件。
  • 使用内部通信——一些组件可以直接通信,避免跳转到云端,只在需要时将数据发送到云端存储。具体实现取决于工厂设置,可以直接通信,或者使用网关设备在边缘运行部分物联网服务。
  • 配置选项——每个工厂和用例都不同,因此硬件需要可配置。例如,接近传感器可能需要在不同的距离检测不同的水果。与其硬编码分类触发距离,你希望可以通过云端配置,例如使用设备双胞胎。
  • 自动移除未成熟水果——而不是使用LED提醒水果未成熟,自动设备会移除它们。

✅ 做一些研究:生产设备与开发套件在其他方面有何不同?

挑战

在本课中,你已经学习了一些设计物联网系统的概念。回想一下之前的项目。它们如何适应上面显示的参考架构?

选择迄今为止的一个项目,思考一个更复杂解决方案的设计,结合多个超出项目范围的功能。绘制架构并思考你需要的所有设备和服务。

例如——结合GPS与传感器监测冷藏卡车内的温度、发动机开关时间和司机身份的车辆跟踪设备。涉及的设备和服务是什么?传输的数据是什么?以及安全性和隐私方面的考虑是什么?

课后测验

课后测验

复习与自学

作业

构建水果质量检测器

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


发布者: 作者: 转发
评论区 (0)
U