有几个模块 电子传感器 对于您的 DIY 项目非常有趣,从那些可以测量辐射的项目,到一些测量空气质量的设备,甚至是气体探测器。 在本文中,我们将深入研究一个用于 测量空气质量,并找出您周围环境中的空气是否相当干净或有任何类型的高度污染。
这些类型的元素被某些人使用 空气净化系统 知道何时应该自动激活它们以过滤空气,或在许多其他应用程序中测量城市的污染等。 在这里您可以了解这个设备是什么,如何使用它,以及如何将它与 你的arduino板.
测量空气质量和二氧化碳的传感器
有几种类型的 用于测量空气质量的气体探测器或传感器. CCS811 是最实惠和最受欢迎的产品之一,它可以内置到模块中以便与 Arduino 一起使用。 借助该设备,可以测量室内空气的质量,并了解空气质量是否良好,或者是否被二氧化碳或二氧化碳、一氧化碳或一氧化碳以及挥发性化合物或挥发性有机化合物等污染过多如乙醇、胺或芳香烃。
多亏一点 多气装置. 颗粒物的测量范围可以从 400 到 8192 ppm(CO2 的百万分之一,或 VOC 化合物的 0 到 1187 ppb(十亿分之一)。但是,您应该了解您所购买的传感器的具体型号的详细信息使用制造商提供的数据表。
与其他化学传感器一样,在这种情况下需要预热。 换句话说,它应该至少提前 20 分钟(如果位置改变,则最多 48 小时)投入运行,以便读数是真实的,并且 测量稳定. 否则,第一次测量可能是完全错误的。
模块不仅包括 CCS811,它们还集成了 ADC 转换器、执行计算的内部处理器和通过 I2C 总线传输的通信元件,这样 Arduino 等板可以在获得某些值时解释它们或执行一些操作。
除了 1.8 到 3.3v 的电源电压之外,了解该模块的引脚排列也很重要,尽管有些模块可以实现适配器,以便您可以将它们连接到 Arduino 的 5V 输出。 另外,也方便你知道你有 5种测量模式:
- 连续测量
- 每 0.250 秒测量一次
- 每 1 秒测量一次
- 每 10 秒测量一次
- 每 60 秒测量一次
您 根据您的需要进行调整. 请记住,连续测量模式是消耗最多的一种,而低频模式则消耗较少,60s 是最节省的一种。 因此,如果要使用电池供电,您可能需要将模式设置为 10 或 60,这样它就不会很快耗尽。
恩CUANTO一个 引脚:
- VDC:电源
- GND:地
- I2C:通信
- SCL
- SDA
- WAK (WakeUp):连接到 GND 时唤醒模块
- RST:如果连接到 GND 则复位
- INT:在某些模式下用于检测传感器是否进行新检测或超过某些阈值
东德comprar
如果你想得到一个 空气质量测量模块 与 Arduino 兼容并且价格便宜,您可以在一些专门销售电子产品的商店或亚马逊等大型平台上找到它。 以下是一些购买建议:
如何将传感器与 Arduino 集成以测量空气质量
现在 将模块与您的电路板集成以测量空气质量 Arduino UNO 并开始尝试它,您可以像这样连接它:
- VCC 可以连接到 Arduino 的 5V。 *如果它接受那个电压,如果它需要更低的电压,你应该使用正确的电压,以免损坏它。 如果没有,您可以使用 Arduino 3v3。
- GND 连接到 GND。
- SCL 是模拟输入连接,例如 A5。
- SDA 将转到另一个模拟输入连接,例如 A4。
- 本例中的 WAK 也将连接到 GND。
- 对于这个例子,其他的不是必需的。
至于 Arduino IDE的代码,您可以使用 Adafruit 开发的 CCS811 库 你可以从这里下载和安装 在您的 Arduino IDE 中,使用以下代码,您可以使用传感器进行第一次读数以测量空气质量:
#include "Adafruit_CCS811.h" Adafruit_CCS811 ccs; void setup() { Serial.begin(9600); Serial.println("CCS811 test"); if(!ccs.begin()){ Serial.println("¡Fallo al iniciar el sensor! Por favor, revisa las conexiones."); while(1); } //Espera a que el sensor esté listo. while(!ccs.available()); } void loop() { if(ccs.available()){ if(!ccs.readData()){ Serial.println(ccs.calculateTemperature();); Serial.print("ºC, CO2: "); Serial.print(ccs.geteCO2()); Serial.print("ppm, TVOC: "); Serial.println(ccs.getTVOC()); } else{ Serial.println("¡ERROR!"); while(1); } } delay(500); }