那蕊,万其豪,聂琼,艾佳琨
(苏州农业职业技术学院,江苏苏州, 215008)
近年来,随着中国经济的腾飞,中国汽车保有量不断创新高,因酒驾造成的交通事故数量所占比例不断升高。我国出台的《道路交通安全法》对于酒驾和醉驾处罚做了明确规定。而对酒精浓度的检测是交警执法过程中重要一环,在交警执勤的过程中如果能利用酒精检测仪进行粗筛,可以极大地提高效率。本文通过对户外公共场所酒精浓度检测条件进行充分研究,以应用为目的,设计出一套集数据采集、处理、显示、报警、数据传送和上位机显示等功能为一体的系统,能满足检测条件和要求,并且完成系统功能调试。本系统具有价格成本低、测试数据精准和灵敏度高的特点。具有一定的市场价值[1~2]。
蓝牙酒精检测仪运用酒精检测技术、MCU技术以及蓝牙技术相结合,可以实现公共场所酒精浓度数据采集和处理,LCD显示和声光报警,按键设置酒精浓度阈值等功能,并且将通过蓝牙通信技术将酒精浓度数据传输至手机APP界面显示数据值,可以实现手机实时查收数据,可用于驾驶人员自检或者交通执法人员酒精浓度检测过程。
本设计是一套以单片机MCU为主控模块的蓝牙酒精浓度检测系统。本系统主要由电源、酒精传感器模块、A/D转换模块、按键设置模块、MCU模块、LCD液晶显示模块、声光报警模块、蓝牙RF模块、上位机和机械部分等组成,如图1所示。系统采用的是STC89C52RC单片机作为主控器,通过按键设置系统酒精浓度的报警阈值,MQ3传感器模块采集酒精浓度数据,经过ADC0832转换成数字信号,再输入到MCU进行数据处理后,LCD液晶显示酒精浓度和通过蓝牙RF模块传送至手机APP实时显示数据,显示经过程序算法判断后驱动声光报警电路是否报警。突破时间和空间上的限制,实现用户对酒精浓度检测结果的实时监测和阈值报警。
图1 系统框图
蓝牙酒精检测仪系统要求具有运算能力强、低功耗、体积小、抗干扰、低成本等特点,综合比较后最终选择了STC89C52RC这款单片机为本系统的主控核心控制器,MCU主控电路即单片机最小系统,主要由复位电路、电源和时钟电路等几部分组成。P0口连接至液晶LCD_1602的引脚上,P1.2口输入MQ3酒精传感器模块采集的信号,P3.0和P3.1接收和发送蓝牙模块信号。当按键K1按下时,单片机复位。电容 C1、C2和晶振 Y1构成了时钟电路,为单片机提供一个频率为11.0592MHz的稳定时钟信号。20脚和40脚连接到VCC和GND上为单片机供电。MCU主控电路原理图如图2所示[3]。
图2 MCU主控电路原理图
采集的酒精浓度数据输入给单片机,经单片机数据处理后驱动LCD液晶显示酒精浓度数值按键设置阈值,LCD液晶接在单片机的P0口上。液晶显示模块我们选择的是LCD_1602模块,显示容量为2行16个字符,可定义8个5×8点阵字符或者4个5×10点阵字符,容量足够显示当前设置酒精浓度阈值和当前酒精浓度值。具体电路如图3所示[4]。
图3 LCD液晶显示电路
传感器模块主要负责采集酒精浓度数据,酒精浓度传感器采用的是MQ3气敏传感器,检测范围为10ppm~2000ppm,输出酒精浓度模拟信号。具有响应速度快、功耗小、寿命长、可靠性好和低成本等特点。
MQ3采集的模拟信号还需要转换成数字信号才能传输至单片机,实现A/D转换功能的芯片我们采用的是ADC0832芯片。一般情况下ADC0832的CS、CLK、DO、DI 4个引脚与单片机相连,虽然DO和DI通信是双向的但两者并没有同时有效,因此将DO和DI并联在一起后连接到单片机的P1.2引脚,而CLK引脚接在单片机的P1.1引脚,CS接在单片机的P1.0上。当ADC0832的CS输入为高电平时芯片禁用,此时CLK、DO、DI电平可为任意值。当进行A/D转换时,CS需要置成低电平并保持到转换结束,当单片机向芯片CLK端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号[5]。
图4 传感器A/D转换电路
蓝牙酒精浓度检测仪系统能够设置酒精浓度阈值并且实现LCD液晶实时显示,当采集的酒精浓度数值超过阈值单片机驱动声光报警。本系统通过“加”、“减”两个控制命令进行酒精浓度阈值设置,数量较少则选择独立式按键。按键K2、K3接在单片机的P3.2和P3.3上,如图5所示,按键抖动的消除通过软件方法实现,减少硬件成本。
图5 按键设置电路
蓝牙RF模块主要通过蓝牙实现MCU与上位机之间的通信。蓝牙RF模块中的主机芯片是HC-05,3.3V低电压工作,蓝牙2.0EDR,2Mbps-3Mbps调制度,采用CSR bc4 +8M FLASH方 案,具 有PIO0-PIO11、AIO0、AIO1、USB、PCM 、UART及 SPI接口,模块内置8M FLASH,功能强大,用户可以定制软件,适用于各种蓝牙设备,内置了2.4GHz天线,便于调试。具有低功耗、高性能、低成本等特点[6]。
HC-05的主机有个特性就是记忆最后一次配对过的从机,如果放弃记忆按下S1即可。S1对于从机而言没有意义。
蓝牙酒精检测仪系统电源采用5V USB供电,电源中加了一个LED电源指示灯,如图6所示。供电设备多样化,手机充电器、充电宝等都可以作为本系统的供电设备,供电稳定并且使用方便。
图6 电源电路
当采集的酒精浓度超过按键设置的阈值时,单片机P1.7输出低电平,驱动声光报警。如图7所示。
图7 声光报警电路
完成硬件电路设计后,要想实现传感器模块信号的采集和处理,还需要进行系统软件编程设计。为了提高可读性和可移植性,根据各个执行机构进行模块化编程。
蓝牙酒精检测仪的软件程序设计主要包括单片机EEPROM读写程序、按键设置程序、数据采集与处理程序、A/D转化程序、串口中断程序、报警程序、LCD液晶显示等子程序设计。当电源开关按下以后,首先进行单片机的初始化、LCD液晶初始化,显示液晶开机画面。初始化完成后调取按键设置程序和数据采集与处理程序,读取按键酒精浓度的设置阈值和MQ3酒精传感器模块采集数据,经过MCU对数据处理后,驱动声光报警、液晶显示和上位机实时显示。主程序流程图如图8所示。
图8 主程序流程图
按键程序设计主要实现通过按下按键对系统发送酒精阈值,经过MCU数据处理后串行输出至LCD液晶显示酒精浓度设置阈值。K1和K2两个按键接在MCU的P3.2和P3.3上。如果K1按下,延时1ms后再次判断,以此消除按键抖动。如果1ms后仍然是K1被按下,酒精浓度设置数自加1,然后判断酒精浓度设置值是否超过999,如果超过999酒精浓度设置值重新赋值为999,如果没有超过999直接保存酒精浓度设置数值并LCD液晶显示。如果K1没有被按下,判断K2是否被按下,如果是K2延时1ms后再次判断,如果1ms后仍然是K2被按下,酒精浓度设置值自减1,如果酒精浓度设置数<=1,酒精浓度设置值就赋值为1,如果酒精浓度设置值不是<=1,则直接保存酒精浓度设置数值并LCD液晶显示。按键设置程序流程图如图9所示。
图9 按键设置程序流程图
MQ3酒精浓度传感器模块将采集到的酒精浓度数据经ADC0832模块转换后传送给单片机,单片机读取传感器酒精浓度数值后先将模拟信号转换成数字信号,再经过自校准后LCD液晶显示数值,同时通过蓝牙RF模块发送至手机APP上。如果酒精浓度采集数据大于按键设置的酒精浓度阈值启动报警程序。流程图如图10所示。
图10 数据采集与处理流程图
检测仪机械部分采用Pro/E wildfire 5.0进行三维建模,并通过3D打印技术成型。外观尺寸长160mm,宽100mm,厚30mm,外壳壁厚为3mm,分为前盖和后盖两部分,中间安装电路板。在前盖正面开有若干方形孔,用于显示液晶屏、LED灯、操作开关以及连接电源线,在前盖反面有圆柱形定位销用于固定电路板。前后盖的三维模型如图11和图12所示。
图11 检测仪前盖
外壳成型采用的3D打印机为上海联泰Lite 600HD,选择的打印材料为白色树脂,其打印性能符合外壳结构需要。打印控制软件为联泰RS Materialise Magics。
图12 检测仪后盖
打印使用的工艺类型为SLA 激光快速成型,选择工艺包UTR9000-Lite600-800p-V2-0625,采用路径优化,主要打印参数设置为:支撑扫描0.8,轮廓速度1.0,小光斑填充1.0,大光斑填充0.9,上表面速度1.0,下表面速度1.0,小光斑偏置1.0,大光斑偏置1.2,小光斑线间距1.0,大光斑线间距1.0。打印完成后去除毛刺,用少量支撑件对液晶屏进行支撑固定后,将电路板安装在定位销上并进行胶粘,然后胶粘后盖完成装配,在前盖粘贴标签并进行测试。
系统调试之前需要硬件装配,装配时我们首先检测PCB板和元器件,确保其是完好的。然后使用恒温焊台进行元器件焊接,装配好后如图14所示。
系统调试先测量系统电源部分,保证整个电路板没有短路和断路的情况,再通过下载器将程序下载到单片机。整个系统初始化完成后,按K1或K2键调节酒精浓度设置值,拿酒靠近酒精传感器模块,观察LCD液晶显示实时浓度数值和设置值,以及超过设置值后报警电路是否报警,如果和程序设定的功能需求一致,则调试成功。
图13 系统调试图
图14 带壳整机系统调试图
本文研究了基于 MCU的蓝牙酒精检测仪系统的设计。通过查阅国内外文献资料和市场调查,分析优缺点,结合实际应用创新和拓展功能,以手机作为上位机,进行酒精浓度数据的采集、保存和实时显示。本系统具有体积小、测量准确、携带方便、充电方式多样化、耗电量少、实时监测数据等特点,具有一定的市场价值。