亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY 空气质量监测器 - PM2.5、CO2、VOC、臭氧、温度和嗡嗡声 Arduino 仪表

你有没有想过你呼吸的空气质量,或者为什么你有时会在办公室里感到困倦,或者即使在睡了一整夜之后,你也会在早上感到疲倦?空气质量差会导致许多负面的健康影响,还会导致疲倦、头痛、注意力不集中、心率加快等。监测空气质量实际上可能比您意识到的更重要。因此,在本教程中,我们将学习如何构建自己的空气质量监测器,它能够测量 PM2.5、CO2、VOC、臭氧以及温度和湿度。

您可以观看以下视频或阅读下面的书面教程。

概览

我将解释每个空气质量参数如何影响我们以及传感器如何工作。这个项目的大脑是一块 Arduino Pro Mini 板,它与 2.8 英寸 Nextion 触摸屏相结合,提供了一个不错的用户界面。

我们可以实时查看所有传感器的测量结果,如果我们单击特定传感器,我们将从该传感器获取过去 24 小时的值。还有一个调光功能,我们可以通过它降低显示器的亮度,甚至完全关闭它。这很方便,例如,如果我们想在夜间跟踪卧室的空气质量。

我们可以在晚上关闭屏幕,第二天我们可以单独检查每个传感器的值。

不过,现在我将引导您完成构建它的整个过程,并解释一切是如何工作的。在本视频结束时,您将能够自己构建一个。那么,让我们开始吧。

PM2.5 传感器 – PMS5003

该设备有四个主要组件或空气质量传感器。我们使用 PMS5003 传感器来测量 PM2.5 或空气中直径约为 2.5 微米的颗粒物。颗粒物是最有害的空气污染形式,因为它们可以深入肺部、血液和大脑,导致许多健康问题。

该传感器的工作原理是激光散射。该传感器有一个风扇,可产生受控气流,使环境微粒通过聚焦的激光束。

颗粒物引起光散射,光散射由光电二极管检测,然后在微处理器的帮助下转换为 PM 浓度。我发现这个传感器的结果是相当可靠的,沿着PM2.5它也可以输出PM1和PM10的值。

二氧化碳传感器 – MH-Z19

接下来,我们使用 MH-Z19 传感器来测量 CO2 或二氧化碳。由于人们在呼吸时会排放二氧化碳,因此室内的二氧化碳浓度很容易变得很高。二氧化碳不仅在高浓度时很危险,还会导致困倦、疲倦、降低我们的工作效率等。

该传感器使用非色散红外原理测量空气中的二氧化碳。红外光源通过一个充满我们正在测量的空气的管引导光。在红外源的另一侧,有一个滤光片和一个红外探测器,用于测量通过的红外光量。

我们正在测量的空气中存在的二氧化碳气体分子吸收特定波段的红外光,同时让一些波长通过。因此,CO2 水平是根据发射的光量与探测器接收到的红外光量之间的差异来计算的。这个传感器的结果也相当准确。

VOC 和臭氧传感器 - MP503 和 MQ-131

为了测量 VOC 和臭氧,我们使用 MP503 和 MQ131 气体传感器。这些是加热的金属氧化物传感器,其工作原理是基于检测目标气体存在时的电阻变化。

特定的电流通过金属基板,电阻会根据存在的气体量而变化。

MQ131传感器的目标气体就是臭氧,在普通家庭中,某些空气净化器、蒸脸器、产生紫外线的杀菌灯等产品都会产生臭氧。

另一方面,MP503 传感器有多种目标气体,包括酒精、烟雾、异丁烷、甲醛等。 VOC 代表挥发性有机化合物,这些是我们日常使用的产品(如洗衣粉、清洁剂、空气清新剂、油漆、化妆品等)的有机排放物。 VOCs会引起许多负面的健康影响,包括头痛、眼睛刺激、皮肤反应、头晕等。

DIY Arduino 空气质量监测器 - 电路图

不过,现在让我们看一下电路图,并解释一下需要如何连接所有东西。

您可以从以下链接获取此 Arduino 空气质量监测器所需的组件:

  • PMS5003 PM 传感器…………………….
  • MH-Z19 CO2 传感器……………………..
  • MQ-131 臭氧传感器……………………..
  • MP503 VOC 传感器…………………………。
  • DHT22 温湿度传感器…………。
  • Nextion 2.8 英寸显示屏……………………..
  • DS3231 实时时钟……………………………………。
  • Arduino Pro Mini………………..…….……..
  • 距离/间隔螺母 M3 ……………
  • 迷你USB连接器…………………….
  • 排针……………………………………。
  • 2档位开关…………………………
  • 电容值:0.1uF 陶瓷电容和 10uF 电解电容
  • 晶体管 – 2N3904
  • 切换

披露:这些是附属链接。作为一名亚马逊合作伙伴,我从符合条件的购买中赚取收入。

正确的电阻值:R1 =1K,R2 =2K,R6=100K 或 1M,R7=1K

PM2.5 传感器通过串行接口与 Arduino 通信。它工作在 5V,但接收 RX 逻辑电平工作在 3.3v,因此我们需要一个分压器。 CO2 传感器和 Nextion 显示器也使用串行通信。为了读取 VOC 和臭氧传感器,我们使用 Arduino 的模拟输入,而 DHT22 温度和湿度传感器为此使用数字引脚。

两个晶体管用于激活传感器加热器。我们还使用实时时钟模块来跟踪存储传感器值的时间,它使用 I2C 通信。整个设备通过 Mini USB 连接器提供 5V 电源。

另请参阅:8 款最佳 Arduino 入门套件 [2021 年更新]

现在,如果我们尝试将所有内容连接在一起,由于连接众多,我们将变得一团糟。

所以,我们肯定需要这个项目的 PCB。

为 Arduino 空气质量监测器制作 PCB

为了制作这个项目的 PCB,我将使用 Altium Designer,它实际上是这个视频的赞助商。

Altium Designer 代表了数十年来致力于创建真正统一的设计环境的创新和开发。 Altium Designer 在功耗和易用性之间取得了完美平衡,确保了其作为市场上使用最广泛的 PCB 设计解决方案的地位。

现在我将向您展示我是如何使用 Altium Designer 为这个项目设计 PCB 的。我开始为项目制作示意图。 Altium Designer 内置了包含基本电子元件的库,但更好的是您可以直接从制造商那里搜索元件,这使得为您的项目采购元件非常方便。

例如,我使用此制造商零件搜索功能找到了 Mini USB 连接器。从这里您还可以轻松访问与组件相关的数据,例如 3D 模型、封装、尺寸等。

您还可以创建自己的组件库。我自己为这个项目创建了大部分组件,因为我想为每个部分创建我自己的 3D 封装,以便最后获得整个 PCB 的 3D。要为 PCB 封装创建 3D 模型,您可以使用任何 CAD 软件,将文件保存为 .STEP 文件并导入 Altium Designer。

完成原理图后,我生成了 PCB。我按照自己的意愿排列组件,只需使用 Auto Route 功能单击一下,软件就会自动生成所有轨迹。

如果需要,我们可以手动创建或调整它们。此外,我们可以设置自动布线如何制作走线的设计规则,为每个网络设置不同的宽度等等。此时我们还可以看到 3D 的 PCB,并导出整个 PCB 组件的 3D 文件,该文件将用于稍后为其设计外壳。

尽管如此,我还是要感谢 Altium 赞助这样的教育内容。如果您想了解有关此软件的更多信息并尝试一下,您可以查看下面的链接。您还可以尝试使用基于 Web 的 Altium 365 查看器进行项目预览和文件。

Altium Designer 免费试用 - https://www.altium.com/yt/howtomechatronics
Altium 365 查看器:https://www.altium.com/viewer

以下是 Altium Designer 项目文件:

Altium Designer文件包括电子元件3D模型的工程文件、库和.STEP文件:

PCB Gerber 文件:

好的,所以一旦我完成了 PCB,我生成了 Gerber 和 NC Drill 文件,将它们放入一个 zip 文件中,所以我准备订购要制造的 PCB。

我从 JCLPCB 订购了 PCB。在这里,我们可以简单地拖放 zip 文件,上传后我们将获得有关我们 PCB 的所有视觉信息。

然后我们可以选择我们想要的属性,并以合理的价格订购我们的 PCB。

组装PCB

几天后,多氯联苯已经到货了。 PCB的质量很好,一切都与设计中的完全一样。

所以,现在我们准备开始组装PCB。我首先插入和焊接较小的组件,即电阻器和两个晶体管。

然后我们可以将 Arduino Pro Mini 板焊接到位。但是,首先我们需要将排针焊接到它上面。请注意,我们不需要它的所有引脚,但请确保您不会错过我们需要的引脚,例如 A4、A5 和 DTR 引脚。还要确保你有这个完全相同的 Arduino Pro Mini 板和这种引脚布局,因为它们有时可能不同。

接下来,我们可以将 DHT22 传感器插入到位。为此,首先我们需要将其引脚弯曲 90 度。有时我也会使用 Blu-tack 粘合剂在焊接时将组件固定到位。

该项目中使用的两个电容器用于稳定电源。电路板的电源将来自一个 mini-USB 连接器,我们可以连接 5V。

在电源连接器的正上方,我们需要焊接两个开关。一个用于打开和关闭设备,另一个用于我们要将草图上传到 Arduino 板。然后我们可以将 USB 转 UART 接口、显示器和 PM2.5 传感器以及 VOC、臭氧和 CO2 传感器的排针插入到位。

接下来,为了再次焊接 DS3231 实时时钟模块,首先我们需要将引脚弯曲 90 度。焊接后,我们可以插入电池,即使主 PCB 断电,它也会跟踪时间。至此,PCB 已经完成,现在剩下要做的就是准备用于将 PM2.5 传感器和显示器连接到 PCB 的电缆。我将公针头焊接到传感器随附的电缆上,因此我能够轻松地将其连接到 PCB。为了将显示器连接到 PCB,我将四根电线焊接到显示器连接器的背面,然后将它们连接到 PCB。

就是这样,我们的空气质量监测器实际上已经完成。当然,我们现在需要做的是为它制作某种盒子或盒子。由于我们有来自 Altium Designer 的整个 PCB 组件的 3D 模型,我们可以将其导入 CAD 软件并为其设计一个案例。

为此,我使用了 SOLIDWORKS,并制作了最简单的案例,其中仅包含两个零件和少量螺栓和螺母。我决定使用透明亚克力制作外壳,因为我喜欢 PCB 和组件的外观,这也是展示您的 DIY 项目的好方法。

您可以下载此 DYI Air Quality Monitor 3D 模型,并在 Thangs 上的浏览​​器中进行探索。

在 Thangs 下载 3D 模型。

制作空气质量监测仪

我将使用的亚克力是 4 毫米刻度,非常适合显示器。由于我目前没有 CNC 机器,所以我使用简单的金属钢锯手动切割形状。

为了制作展示的开口,首先我用钻头打了两个孔。然后我从迷你钢锯中穿过刀片并仔细切割形状。使用简单的锉刀,我平滑了形状。然后使用 3 毫米钻头,我制作了所有用于连接 PCB 并将两个亚克力板连接在一起的孔。

在这一点上,我从亚克力上取下了保护箔,老实说,这是一个非常令人满意的过程。为了将 PCB 连接到底板,我使用了一些 M3 螺栓和螺母。为了将 PM2.5 传感器连接到板上,我们需要 M2 螺栓。

接下来,使用一些距离螺母,我们可以将两个板连接在一起。通过使用一个母头和一个公头距离螺母,我能够轻松地获得两个板之间的所需距离。

我个人真的很喜欢这个案例的结果,另外,它的功能是空气可以很容易地在传感器周围循环。

编程

好的,现在我们可以启动设备并上传程序。我们可以通过 Mini USB 连接器为空气质量监测器供电,我们可以从 5V USB 适配器、5V 手机充电器或移动电源获得 5 伏电压。

为了将程序上传到 Arduino Pro Mini 板,我们需要一个 USB 转串行 UART 接口,该接口可以连接到编程头。在将它连接到电脑USB之前,首先我们必须打开设备的主电源,否则只有500mA的来自电脑USB的电源可能不足以正常工作。在上传 Arduino 草图的时候,我们还需要切换 PCB 上的上传开关。

在这里您可以下载 Arduino 代码和 Nextion 显示程序:

上传sketch到Arduino Pro Mini开发板,首先在Arduino IDE中选择这个开发板,选择合适的处理器版本,选择端口,选择“USBasp”的编程方式。

将代码上传到 Arduino 后,我们还需要将代码上传到 Nextion 显示器。 Nextion 显示器具有内置 ARM 控制器,该控制器实际上可以自行控制显示器。

所有图形,如按钮、文本、图像、变量等,都是由显示器本身生成和控制的。 Nextion 显示器有一个专用的 Nextion 编辑器,我们可以在其中创建所有这些内容。显示器和 Arduino 使用串行通信仅通过两条线进行通信。 Arduino 只是将传感器的值发送到显示器,反之亦然,显示器在需要时将数据发送到 Arduino。

为了上传显示程序,我们需要一张 microSD 卡,我们可以在其中保存 Nextion 编辑器输出的 .TFT 文件。

显示器有一个读卡器,我们可以在断电时插入 microSD 卡。然后我们可以给设备加电,程序就会上传到显示器上。现在我们只需要取出卡,重新打开电源,我们的空气质量监测器就会开始工作。

代码说明

因此,我们为每个传感器使用库,可以在以下链接中找到,MHZ19、PMS、MQ131、DHT、DS3231。为了更好地了解我们如何从每个传感器读取数据,我建议您阅读库文档并尝试他们的示例。

我们还使用 SoftwareSerial 库,因为 MH-Z19 和 PMS5003 传感器都使用串行通信。 Arduino 和 Nextion 显示器也使用串口进行通信,在这种情况下,我们使用默认的硬件串口。

因此,Arduino 读取传感器并将该数据发送到 Nextion 显示器。这是一个例子。

Serial.print("tempV.val=");
Serial.print(temp);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);Code language: Arduino (arduino)

所以我们在 nextion 显示器上有一个名为“tempV”的变量,为了更新它的值,我们需要向 nextion 发送一个命令,如下所示“tempV.val=22”。所以变量名,然后是“.val”,然后是值,比如说 22。代码的前两行就是这样做的,为了让 Nextion 显示器接受这个命令或者实际上我们需要发送三个唯一的命令“写”命令。

在 Nextion 显示程序中,我们有一个循环运行的计时器,就像 Arduino 代码循环一样,它不断更新显示屏上的数字。

在这个计时器事件中,我们还有一个代码可以根据每个传感器的值更改背景颜色。

在第二页上,我们有波形,它从 Arduino 存储的值中获取值。请注意,您可以在代码注释中找到有关 Arduino 代码本身的更多信息。

小时和 Y 轴值也从 Arduino 获取。

在波形顶部以及主屏幕上的数字,您可以注意到我们有类似透明的对象,在 Nextion 编辑器中称为“Hotstops”,它们充当按钮。如果我们按下波形上的热停止,我们可以在事件部分看到它会将我们送回“第 0 页”。

总的来说,这就是这个 Arduino 空气质量监测器程序的工作原理。当然,为了充分了解它的工作原理,您需要了解和了解每个传感器如何与其库一起工作,以及 Nextion 显示器的工作原理。

请注意,对于 VOC 传感器,我们仅从该传感器读取原始数据,而不是 ppm 或 ppb 值。只是从 0 到 1024 的模拟值。较高的值意味着存在 VOC。

至于臭氧传感器,为了获得更准确的输出,我们必须根据库的校准示例正确设置 setTimeToRead() 和 setR0() 值。但是,较长的 setTimeToRead 意味着程序在采样时将被阻塞,其他所有内容都将被冻结。当然,有一些方法可以解决这个问题。我什至建议不要使用臭氧传感器,除非你真的需要它。

我希望你喜欢这个视频并学到了一些新东西。如果你这样做了,请考虑在 Patreon 上支持我。随时在下面的评论部分提出任何问题,并查看我的 Arduino 项目收藏。


制造工艺

  1. DIY 环境和空气质量监测器
  2. 如何在 OpenSensors 上测量空气质量
  3. 氦空气质量传感器
  4. 使用 Arduino 制作流光溢彩监视器
  5. 使用 K30 传感器监测二氧化碳
  6. 使用 Arduino 和智能手机的 DIY 电压表
  7. 使用物联网的心率监测器
  8. Arduino 温度。使用 3.2 显示的监视器和实时时钟
  9. DIY 虚拟现实滑板
  10. 带夏普 GP2Y1010AU0F 传感器的 DIY 空气质量监测仪
  11. DIY Arduino RADIONICS 治疗MMachine
  12. 带有 DSM501A 传感器的 Arduino 空气质量监测器