shineblink MH-Z19C二氧化碳测量

429 阅读3分钟

二氧化碳传感器

一、本例程实现功能

通过Core连接二氧化碳感器,读取传感器的值,并打印输出结果。

二、传感器介绍

在这里插入图片描述
在这里插入图片描述

三、接线图

在这里插入图片描述

四、完整代码

--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--设置Z19C甲醛传感器占用TX0和RX0引脚,并启动传感器,关闭自动校准("AUTO_CALI_DIS")
LIB_Z19CConfig("UART0","AUTO_CALI_DIS")
--设置开发板上的按键BTN1(占用D10口)以低电平有效的方式检测按键动作
LIB_ButtonConfig("BTN1","D10","L")
--设置D6口为普通输出,用于让传感器执行手动校准
LIB_GpioOutputConfig("D6","STANDARD")
--D6口输出高电平
LIB_GpioWrite("D6",1)
--开始大循环
while(GC(1) == true)
do
    --查询是否读到传感器值
    flag,val = LIB_Z19CGetCO2()
    if flag == 1 then
        print(string.format("CO2:%d PPM", val))
    end
    --查询按键BTN1是否短按过,如果按过则进行一次手动校准
    if LIB_ButtonQuery("BTN1") == 1 then
        --D6口输出低电平
        LIB_GpioWrite("D6",0)
        --延时7000ms
        LIB_DelayMs(7000)
        --D6口输出高电平
        LIB_GpioWrite("D6",1)
    end
end

关于传感器校准的说明

上面的代码中在 LIB_UsbConfig
函数中使用了"AUTO_CALI_DIS"参数,即禁止自动校准。如果需要自动校准,请使用"AUTO_CALI_EN"参数,下面详细介绍校准功能的使用:

  • 自动校准:自动校准功能是指传感器在连续运行一段时间后,根据环境浓度智能判断零点并自行校准.校准周期为自上电运行起,每24小时,自动校准一次.自动校准的零点是400ppm。自动校零功能适合用于办公环境,家庭环境.但不适用于农业大棚,养殖场,冷库等场所,在这类场的二氧化碳值变化比较频繁,所以应禁止自动校零功能。
  • 手动校准:如果没有打开自动校准,用户应定期(至少半年)对传感器进行手动校零(给Hd引脚7秒以上低电平),手动校准零点前请确保传感器在 400ppm 浓度下稳定运行 20
    分钟以上。在上面的代码中作为演示,实现了在检测到BTN1按键按下后,通过给D6口一个7秒的低电平来开始一次手动校准。当然用户也可以不用D6口,用其他方式来给Hd一个7秒的低电平也是可以的。

五、代码运行结果

(1)需注意事项

  • 不要揭开传感器上的白色膜
  • 传感器刚上电有两分钟左右的预热时间,这段时间内传感器输出的值(500PPM)是无效的
    (2)传感器测量结果如下图:
    在这里插入图片描述
    常规室内环境下的测试结果:
    在这里插入图片描述
    用嘴巴对准传感器呼气时的测试结果:
    在这里插入图片描述
    更多详情请参看 shineblink.com官网链接