pdf-icon

Arduino 上手教程

Mini Unit TVOC/eCO2 Arduino 使用教程

1.准备工作

驱动库
在 M5Unit-ENV 库中包含了对 Mini Unit TVOC/eCO2 传感器的驱动与案例,能够非常方便的实现传感器数据读取。

依赖库
以上驱动库如M5UnitUnifiedM5Unit-ENV等在安装时需要其他的依赖库(如 M5HAL , M5Utility 等), 如果通过Arduino库管理进行安装时, 请根据提示, 安装全部依赖。

2.案例程序

案例说明
本案例以 Mini Unit TVOC/eCO2 为例,实现对 TVOC (总挥发性有机化合物) 和 eCO2 (二氧化碳等效) 浓度的测量。
#include <M5Unified.h>
#include <M5UnitUnified.h>
#include <M5UnitUnifiedENV.h>

auto& lcd = M5.Display;
m5::unit::UnitUnified Units;
m5::unit::UnitTVOC unit;

void setup()
{
    M5.begin();

    M5.Display.setFont(&fonts::lgfxJapanMinchoP_20);
    M5.Display.setTextSize(1);
    auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
    auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
    M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
    
    Wire.begin(pin_num_sda, pin_num_scl, 400 * 1000U);

    if (!Units.add(unit, Wire) || !Units.begin()) {
        M5_LOGE("Failed to begin");
        M5.Display.clear(TFT_RED);
        while (true) {
            m5::utility::delay(10000);
        }
    }

    M5_LOGI("M5UnitUnified has been begun");
    M5_LOGI("%s", Units.debugInfo().c_str());
    M5_LOGW("SGP30 measurement starts 15 seconds after begin");

    M5.Display.setCursor(0, 0);
    M5.Display.clear();
    M5.Display.println("Init...");
}

void loop()
{
    M5.update();
    Units.update();
    if (unit.updated()) {
        M5.Display.setCursor(0, 0);
        M5.Display.clear();
        M5.Display.printf("\n>CO2eq:%u\n>TVOC:%u", unit.co2eq(), unit.tvoc());
    }
}

3.编译上传

  • 1.下载模式: 不同设备进行程序烧录前需要下载模式, 不同的主控设备该步骤可能有所不同。详情可参考 Arduino IDE上手教程 页面底部的设备程序下载教程列表, 查看具体的操作方式。

  • CoreS3长按复位按键(大约2秒)直到内部绿色LED灯亮起,便可松开,此时设备已进入下载模式,等待烧录。

  • 2.选中设备端口, 点击Arduino IDE左上角编译上传按钮, 等待程序完成编译并上传至设备。

4.TVOC/eCO2测量

On This Page