一、项目名称:
二、项目概述:
现代汽车为了降低噪音,在车身密闭性做得比较好。行车过程中车体内部近乎一个密闭的小环境。车内空气质量会影响到驾驶员的身体状况,如若长期处于恶略的空气环境中会影响车内人员的身体健康,甚至行车安全。以此为背景,使用树莓派和多个
传感器制作了一个车内空气质量监控系统,用来监控车内空气质量,并提醒驾驶员采取处置措施,保障安全。
本系统以树莓派5作为主
控制器,外接多个传感器。MQ-3酒精探测器,用于检测驾驶员是否有喝酒,酒驾作为最危险的驾驶行为必须严厉禁止。MH-Z19B二氧化碳浓度传感器,车体作为一个密闭空间,容量有限,车内人员呼吸产生二氧化碳,很容易导致二氧化碳浓度过高,从而引发危险。PM2.5
空气质量传感器,这是一个可以测量PM2.5,PM1.0,PM10等颗粒物的空气质量传感器,在本项目中主要用来监测是否吸烟。最后还有
温湿度传感器STH30,用来监测温度和湿度。
硬件部分:
传感器部分都是购买传感器模块,其中温湿度计STH30和PM2.5空气质量传感器是使用
I2C总线通讯,所以将这两个传感器都连接到树莓派的I2C-1上。MH-Z19B二氧化碳浓度传感器使用串口通讯,连接到树莓派的串口2上。MQ-3酒精探测器是提供了是否检测到酒精的状态值,使用一个管脚去读取状态信息,制作
PCB将传感器连接并固定住,与树莓派使用40Pin的排线连接。最后信息展示部分使用了一个3寸四色墨水屏,使用
SPI总线与树莓派通讯。
PCB与树莓派之间使用磁铁吸附,这样便于拆下,又能够很方便地固定。
软件部分:
系统使用python来实现。采用轮询方式读取各个传感器。分两种情况,当酒精传感器感受到空气中的酒精味道时,就通过墨水屏展示警告图片,此时车内有可能存在酒驾。其它情况则通过墨水屏显示车内环境的具体信息,如温湿度信息、二氧化碳浓度信息、颗粒物信息。当哦空气环境不利于人体健康,给出合适的处置建议。
编程工具使用Vscode,传感器在网上基本都能够找到
Python对应的驱动代码,能够像搭积木一样将功能块搭建起来。
这里需要注意:
1、PM2.5空气质量传感器,这个传感器能够感知颗粒物测量范围:0.3~ 1.0 μm;1.0 ~ 2.5μm;2.5 ~ 10μm。这里就没有再对颗粒物做细分,分别读取三种颗粒物的浓度值,取最大值作为当前颗粒物浓度信息。
# 绘制空气颗粒物信息 包括标准颗粒物下PM1.0 PM2.5 PM10 的颗粒物浓度 显示使用最大值
def drawPM():
draw.rectangle((0, 56, 160, 111), fill=epd.WHITE, outline=epd.YELLOW) # 空气质量
draw.rectangle((0, 56, 160, 72), fill=epd.BLACK)
draw.text((10, 57), '标准颗粒物浓度(ug/m3)', font=font12, fill=epd.WHITE)
pmval=max(airinfo["pm"])
if pmval <=110:
draw.text((10, 78), "%3d 空气干净" % (pmval), font=font26, fill=epd.BLACK)
elif pmval<=210:
draw.text((10, 78), "%3d 中度污染" % (pmval), font=font26, fill=epd.YELLOW)
else:
draw.text((10, 78), "%3d 重度污染" % (pmval), font=font26, fill=epd.RED)
2、酒精传感器需要预热,所以系统启动后需要等待(90秒)后才会读取酒精传感器的信息。
3、墨水屏的显示效果非常好,能显示红、**、黑、白四色。但是刷新实在太慢了,又没有局刷,每次刷新屏幕要来来回回抖动近10秒。
三、作品实物图
四、项目文档
参考附件
五、项目视频
通过网盘分享的文件:《2024 DigiKey 汽车应用创意挑战赛》基于树莓派的车内空气.mp4
链接:?https://pan.baidu.com/s/10MLgDhXEQwKo3lxoUsKmYA?提取码: n615