龙空技术网

零门槛实现 Z19C 二氧化碳传感器读取并通过USB串口上报给上位机

FlexLua 68

前言:

当前咱们对“c语言如何读取电脑usb串口”可能比较讲究,咱们都需要知道一些“c语言如何读取电脑usb串口”的相关资讯。那么小编在网摘上网罗了一些有关“c语言如何读取电脑usb串口””的相关文章,希望同学们能喜欢,看官们一起来了解一下吧!

Z19C 二氧化碳传感器

本教程来源于 FlexLua 官网,专注于降低 IoT 硬件开发难度,零门槛 Lua 低代码编程技术开发 IoT 硬件。

一、本例程实现功能

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

二、传感器介绍

三、接线图

四、材料清单Z19C 二氧化碳传感器五、完整代码

--配置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开头的库函数可以在 API 文档 中通过Ctrl+F查询。

关于传感器校准的说明

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

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

常规室内环境下的测试结果:

用嘴巴对准传感器呼气时的测试结果:

标签: #c语言如何读取电脑usb串口