资料介绍
描述
使用 IR 传感器检测房间中的人员
您是否想远程监控建筑物中的房间或空间,并确保房间在应有的使用时处于使用状态?那么你来对地方了。在Helium ,我们经常被问到如何做到这一点的最佳方式。我们的建议(如下详述)是构建能够完成这项工作的传感器和 Web 应用程序的快速 POC 版本。如果您想大规模部署这些,请致电我们。
虽然这绝不是一个完整的空间监控应用程序,但它是一个合适的、轻量级的版本,如果供应商将其作为一个打包的解决方案进行宣传,您需要支付 50-100 倍以上的费用。
我们将涵盖的内容
自行部署此传感器系统应该相当简单,不到 45 分钟。以下是我们将介绍的内容:
- 使用 Grid-EYE 传感器、Pi 和 Helium Atom 构建人员计数器原型。
- 使用 Helium、JSON、OpenCV 和 Matplotlib 库在 Python 中对 Grid-EYE 进行编程。具体来说,我们将从 Grid-EYE 捕获原始读数并进行一些边缘处理以将其转换为简单的 JSON。
这会很有趣。让我们骑吧。
所需的硬件和软件
要构建您自己的轻量级人数统计应用程序,您需要以下硬件和软件:
- 氦气开发套件 -我们在这里使用 Raspberry Pi 变体,但任何人都可以。您可以在此处购买一个(以及所有其他 Helium 硬件)。
- Grid-EYE红外热像仪传感器 -特别是 AMG8833。该传感器由 Panasonic 制造,但下面我们使用的是 Adafruit 销售的分线板版本。
- 氦仪表板帐户 -如果您还没有访问权限,请在此处免费获得一个。
- AWS IoT 帐户 -如果您是初学者,请在此处注册。
- 一个监控空间——这个应该很容易。我们推荐您的办公室,或者您最喜欢的炸玉米饼卡车的线路。或者也许你的猫住在哪里。
构建 Grid-EYE
首先,我们需要创建我们的传感器。这就是您将要构建的内容:
您需要通过 将 Grid-EYE 连接到 Raspberry Pi I2C
。电压线将5V
取决于3.3V
所选的 Grid-EYE 型号。引脚和I2C
Raspberry Pi 是04(SCL)
和06(SDA)
。对于这个项目,中断引脚可以保持断开状态。
如果您使用的是 DigiKey Grid-EYE,则 Grid-EYE 的电源电压应连接到 Raspberry Pi3.3V
引脚。如果您使用的是 Adafruit Grid-Eye,则 Grid-Eye 的电源电压应连接到 5V 引脚。
在这里,我使用的是 Adafruit Grid-Eye:
作为参考,这里是完成板的整体示意图。
完成此操作后,拍照,在 Twitter 上发布带有创意标签的照片,然后将其放在一边。现在是时候使用 Helium 启动您自己的分布式低功耗广域网 (DLPWAN)。
部署您的氦元素网关
Helium Element Gateways 创建了一个(分布式低功耗广域网(DLPWAN),负责物联网设备和云之间的双向传感器数据路由。在此部署中,您的 Element 将为您的人员计数器路由数据,但它可用于未来所有基于 Helium 构建的传感器——即使是不属于你的传感器。
部署氦元素既快速又简单。这是一个关于如何做到这一点的快速视频:
首先,只需将电源和提供的以太网电缆插入 Element 和一个接受出站流量的实时以太网端口。当正面的 LED 变为绿色表示以太网连接成功时,元素将被连接。如果 Element 是 Cellular 版本,它会在成功连接到 Cellular 时显示蓝色LED。
使用氦仪表板注册您的元素和原子
现在您需要在Helium Dashboard 中注册您的硬件。整个过程将花费您不到 120 秒的时间。Helium Dashboard 将是您管理和查看已连接设备以及管理云通道(如我们稍后将部署的AWS IoT 通道)的界面。
每个 Helium 设备在您收货之前都已在 Helium 注册。要使其运行,您只需在仪表板中将其分配给您自己。
您可以在此处找到有关 Helium Dashboard的完整文档。
- 如果您还没有这样做,请先创建一个 Helium Dashboard 帐户。
-
要注册您的 Atom,首先选择New Atom 。在 UI 中,添加一个名称(例如Grid-EYE ),然后输入其最后四位数字
MAC Address
及其四位数字HVV Code
。(如果需要,您可以在此处查看有关此过程的完整文档。)
-
元素注册以完全相同的方式完成。选择新元素,然后提供名称、其最后四位
MAC Address
及其四位数字HVV Code.
此外,请确保为您的元素输入位置,以便仪表板可以在地图上显示它。(同样,如果需要,请在此处查看完整文档。)
好吧。激活和部署 Helium 硬件后,现在不是连接 Helium AWS IoT 通道并获取从边缘流向云的传感器数据的时候了。
部署 AWS IoT 通道并验证数据流
现在我们需要部署一个 AWS IoT 通道。可以在 Helium 开发人员文档中找到有关如何执行此操作的完整说明。简短摘要如下:
-
在您的 AWS IoT 组织中,找到您的 和
Access Key ID,
Secret Access,
Region.
- 当登录到Helium Dashboard 中的 Channel 界面时,创建一个新的 AWS IoT Channel 并输入上面列出的凭证。
- 将频道代码部署到您的设备。创建通道后,Helium Dashboard UI 将自动生成将数据从 Helium Atom 发送到 AWS IoT 所需的代码。对于 Pi,它看起来像这样:
from helium_client import Helium
helium = Helium("/dev/serial0")
helium.connect()
channel = helium.create_channel("aws_channel_name")
channel.send("hello from Python")
除了上面链接的 AWS IoT 频道文档之外,这里还有一个视频,展示了如何将其端到端连接起来。
对 Grid-EYE 进行编程
现在我们已经在您的 Helium 传感器和 AWS IoT 之间启动并运行了数据流,我们可以加载 Python 程序以从 Grid-EYE 捕获数据。(在此之后,我们将通过在 AWS Quicksight 中可视化数据来将它们放在一起。)
以下是接下来的步骤:
- 更新 Raspberry Pi 并安装相关的库。
- 通过运行每个电路板经销商提供的测试示例来测试 Grid-EYE 的功能,以确保连接正确。
- 通过运行 Helium 库中的示例设置代码来测试 Helium Atom 和 Element 的功能。
- 确保两个硬件设备的功能正常后,获取下面的 Grid-EYE 代码并在您的 Pi 上运行它。
使用以下命令在您的 Pi 上安装 Grid-EYE 库
cd ~
git clone https://github.com/adafruit/Adafruit_AMG88xx_python.git
cd Adafruit_AMG88xx_python
python setup.py install
//check setup success
python
import Adafruit_AMG88xx
如果import
语句没有返回错误,则说明AMG88xx库安装成功。
使用以下命令安装 OpenCV 和以下库:
sudo apt-get install python-opencv
sudo pip install imutils
sudo apt-get install libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
sudo pip install numpy
sudo apt-get install python-matplotlib
通过运行以下命令检查您的 OpenCV 安装:
python
import cv2
cv2.__version__
从像素数组到 JSON
随着我们的 Pi 准备就绪,我们现在可以开始从 Grid-EYE 捕获数据并进行一些边缘处理以将其转换为 JSON,然后再将其发送到 Helium 网络。
Python 实现中来自 Grid-EYE 的原始数据被采样为原始 64 元素数组。然而,使用更复杂的 OpenCV 工具,这个数组被重新格式化为一个 8x8 数组,并被插值形成一个 32x32 的图像。
然后将图像转换为灰度、反转并使用斑点检测工具扫描圆形斑点。OpenCV 计算在结果图像中发现的 blob 数量,并且该变量通过 Helium 网络无线发送到 AWS IoT。
在传感器级别,从 Grid-EYE 传输到我们的 Raspberry Pi 的原始数据采用数组格式,通常遵循以下模式:
pixels = [num0, num1, num2, ..., num63]
该数据被重新格式化以适应 8x8 数组,如下所示:
pixels = [[num0, num1,..., num7],
[num8, num9,..., num13],
[...],
[num55, num56,..., num63]]
这 64 个数据点中的每一个都是由 Grid-EYE 返回的电压,该电压又对应于温度读数。从那里,可以将这些插值到 32x32 数组并保存为图像。他们出来看起来像这样?
这很好,但是我们可以消除通过空中传输此图像的需要,而是通过在我们的 Pi 上运行的 Python 中的一些简单边缘处理(下面的代码),我们可以估计空间中的人数并将其转换到 JSON。
因此,通过设置阈值并在执行 blob 检测的传感器上运行一些代码,我们可以识别 blob 的数量,并创建一个简单的 JSON 表示,以通过空中发送到 Helium 和我们的可视化应用程序。
换句话说,这:
Pixel Output:
28.50 28.50 28.00 27.75 27.75 27.50 28.00 29.00
29.50 28.75 28.00 27.25 27.00 27.25 29.00 29.25
29.00 28.25 29.50 28.25 27.50 27.75 30.50 29.00
28.50 29.00 31.25 31.00 29.75 29.25 31.25 29.50
29.00 27.50 28.25 30.25 30.25 29.75 30.50 29.75
27.25 27.00 27.00 27.75 29.75 30.00 29.25 27.75
27.25 27.00 26.75 26.25 27.50 28.75 27.75 27.25
26.50 26.50 26.00 26.00 26.00 26.25 26.50 26.25
变成这样:
{
"People" : "2"
}
在 Grid-EYE 的视野中用于定位人员的相对较大的图像数据被解析为最小的有价值的形式,以便通过线路发送。例如,如果传感器正在查看座位是否有人,则斑点检测功能还将返回每个斑点图像中的坐标。但是对于这个演示,我们只关心一个房间里有多少人。这是从我的办公桌上看的样子:
通过调整 Grid-EYE 温度阈值的灵敏度,您可以将其放置在距离某个区域最大 15 英尺的地方以扫描热特征。在此示例中,我将阈值设置为 30 摄氏度,这足以找到未覆盖的人体。当您第一次部署此传感器时,您很可能会注意到它需要一些调整。具体来说,您需要调整温度阈值以适应 Grid-EYE 正在查看的区域。
在 AWS QuickSight 中可视化人员数据
现在我们正在捕获空间中的人数,我们需要通过 Helium AWS IoT 通道将其传输到 Web 服务,并实时可视化空间利用率。公平警告:这个过程有点艰巨,但结果值得付出努力。阅读这篇博文了解详情。(另外,如果有人知道在不离开 AWS 的情况下可视化时间序列数据的更好方法,请告诉我。
这是回报。下面是 QuickSight UI 的屏幕截图,显示了在通过 Helium 网络发送到 AWS IoT 后经过我办公桌的人员:
小像素阵列和检测多个对象存在固有问题。在这两个代码示例中,都会删除低于人体温度阈值的值以改进检测。 此外,由于靠近身体的两个特别温暖的部分具有局部热量最大值,因此变化的体温会为某个区域的身体计数产生误报(读数2
而不是)。1
但是通过一些测试和调整,您可以开始对返回的数据的准确性感到非常满意。
这是一篇关于在 AWS 中管理此设备状态以向您的对象检测器添加更多功能的博客文章。您可以更改采样时间,并从云端激活/停用传感器:
后续步骤和帮助
好工作!您现在拥有一个功能正常的 Grid-Eye,它具有基本的嵌入式对象检测功能。如果您想了解有关 Helium 的更多信息、如何制作自己的物联网项目原型,或了解有关此项目的更多信息,请在此处加入我们:
- 使用Raspberry PI和open CV进行图像处理
- 使用Raspberry Pi和BluPants进行编码
- 通过USB对Raspberry Pi进行编程
- Arduino和Raspberry Pi平台进行编码
- 使用ROS和Raspberry Pi进行Bittle远程操作
- 使用Raspberry Pi进行汽车诊断
- Raspberry Pi和你的仓鼠进行股市交易
- 使用Raspberry Pi和Arduino进行花卉监测
- 可视频直播的Raspberry Pi网络控制机器人 14次下载
- 如何使用结合特征图谱学习的方法进行人数统计详细方法说明 3次下载
- 《爱上Raspberry Pi》中译版-电子书籍.pdf 0次下载
- Instant Raspberry Pi Gaming 6次下载
- Raspberry_Pi详解 15次下载
- raspberry_pi各版本差别 0次下载
- Learn Raspberry Pi Programming with python 0次下载
- 基于Raspberry Pi 5的蜂窝物联网项目 1027次阅读
- 使用Raspberry Pi Pico W和MicroPython开发物联网应用 1671次阅读
- 用于测试项目的4个最佳树莓派Raspberry Pi模拟器 5985次阅读
- 如何使用Raspberry Pi使热水浴缸变得智能和远程操作 1813次阅读
- 如何通过Raspberry Pi设置CE电流监视器 2120次阅读
- 基于树莓派产品 Raspberry Pi微控制器板的优缺点 2710次阅读
- 如何从Raspberry Pi Pico的模数转换器捕获数据计算? 2580次阅读
- 基于Raspberry Pi Pico开发先进的家庭自动化系统 2849次阅读
- 基于FONA通过UART与Raspberry Pi进行通讯的方案介绍 2122次阅读
- 微雪电子ZeroW| Raspberry Pi ZeroW主板简介 2429次阅读
- 微雪电子Raspberry Pi 3 Model主板简介 2873次阅读
- 微雪电子Raspberry Pi 3 Model扩展板简介 1512次阅读
- 利用Raspberry Pi构建存储和虚拟化时间序列数据 884次阅读
- 一文了解Raspberry Pi 4各项性能跑分 2.9w次阅读
- 视觉享受!用Raspberry Pi实现圣诞树灯光秀 8127次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多