基于单片机的酒驾检测仪设计_第1页
基于单片机的酒驾检测仪设计_第2页
基于单片机的酒驾检测仪设计_第3页
基于单片机的酒驾检测仪设计_第4页
基于单片机的酒驾检测仪设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的酒驾检测仪设计物摘要:本设计是以NodeMCU微控制器为核心,可以连接互联网的一种以酒精浓度检测仪。本检测仪利用酒精传感器MQ3作为外部信息采集模块,液晶屏作为显示模块,不仅可以检测出空气环境中酒精浓度值,还可以根据不同的使用环境来设定不同的阈值,当空气中酒精浓度超过设定的阈值时进行声光报警。此外,本检测仪用ESP8266搭建服务器作为网页显示系统,当酒精传感器MQ3采集到的数据后会实时传输给ESP8266,ESP8266再将数据通过互联网上传到服务器。此系统可以用于检测驾驶员呼出气体的酒精浓度、食品加工仓库、工业环境中的酒精浓度数据采集。关键词:单片机;WiFi;Esp8266;酒精检测DesignofDrunk-drivingDetectorBasedonSingleChipMicrocomputerAbstract:ThisdesignisbasedontheESP8266microcontroller,whichisanalcoholconcentrationdetectorthatcanbeconnectedtotheInternet.ThisdetectorusesalcoholsensorMQ3asanexternalinformationcollectionmodule,anda1.44-inchTTFcolorLCDscreenasadisplaymodule.Itcannotonlydetectthealcoholconcentrationintheairenvironment,butalsosetdifferentthresholdsaccordingtodifferentuseenvironments.Whenthemediumalcoholconcentrationexceedsthesetthreshold,anaudibleandvisualalarmisgiven.Inaddition,thedetectorusestheBlynkserverasawebpagedisplaysystem.WhenthedatacollectedbythealcoholsensorMQ3istransmittedtotheESP8266inrealtime,theESP8266uploadsthedatatotheBlynkserverviatheInternet.Thissystemcanbeusedtodetectthealcoholconcentrationofthedriver'sexhaledgas,alcoholconcentrationdatacollectioninfoodprocessingwarehousesandindustrialenvironments.Keywords:MCU;WiFi;Esp8266;alcoholdetection

目录1引言 引言随着中国经济又快又稳持续发展,人们的生活水平得到了极大的提高与改善,人们对美好生活的物质追求更多地体现在了对车与房的追求上。现在的中国已然是高楼大厦车水马龙一片繁华,但是随之而来的不仅是喝酒交际应酬成了常态,交通事故也呈现了上升趋势,其中酒后驾驶是导致交通事故的主要原因之一,对社会的影响也越来越广泛。根据有关数据统计,在全世界每年意外伤亡的人数中,源于车祸而导致伤亡的人数占相当大的比重,在许多国家,因为车祸而意外死亡的人数名列第一。除此之外,据交通部门对于近年来交通事故的调查报告可以看出,由驾驶人员酒驾而造成的恶性交通事故占到总体的60%左右[1],不仅造成很大的经济损失,而且对于普通民众的生命安全也造成了极大的危害。根据中华人民共和国公安部交通管理局发布的数据显示:2019年上半年,全国共查处酒驾醉驾90.1万起,其中醉驾17.7万起,因酒驾醉驾导致死亡交通事故1525起,造成1674人死亡,分别同比减少20.7%、20.4%。酒驾醉驾是非常严重的交通违法犯罪行为,对社会造成的危害极大,尽管酒驾醉驾引发事故数量有所下降,但酒驾醉驾事件的发生频率依旧位于高位,形势依然严峻。酒精检测仪与我们的生活息息相关,可联网呼气式酒精检测仪操作简便,用途广泛,不仅可以用酒驾检测,还可以实时监测空气中的酒精浓度,其性能稳定可适应食品加工、酿酒厂等多种场合。自酒驾入刑的以来,公安交管部门加大了对酒驾的抽查频率,人们对交通安全意识提高,对酒精测试仪需求随之增大。酒精检测仪能很好地避免酒驾可能引发的交通事故[2]。《中华人民共和国刑法修正案(八)》中规定:当车辆驾驶人员血液中的酒精含量大于或者等于80毫克/100毫升时判定为醉酒驾驶。本设计的是一种便携式酒精检测仪是呼气式酒精检测仪,并非直接抽血得到血液中的酒精浓度,所以本设计而是通过采集呼出气体中所含酒精含量,进一步可以计算出驾驶员肺泡气中的酒精含量,再依据中华人民共和国公共安全行业标准(国标GA307)的规范得出其体内血液中的酒精含量。同时可以将检测数据同步到网页上,便于实时监控管理,这样的操作简便快捷,能够及时显示检测结果,可以用于网约车平台保证用户安全,也可以用于将抽查结果同步公安部网站,从而交警能够准确而迅速地对驾驶员进行随机抽查与记录,只需对比酒精检测仪上的数据就知道驾驶员是否酒后驾驶。随着科学技术的发展,将数据同步到云端,利用互联网对检测的数据进行实时监控和控制成为了一种必然趋势。课题总体方案设计设计要求(1)酒精浓度精确到0.01PPM。(2)显示设定报警阈值和实际测量酒精浓度值。(3)当超过的设定阈值进行报警。(4)系统具有低功耗、高稳定性、功能强、小型化、性价比高等特点。备选方案设计与比较2.2.1方案一选用低功耗高性能的STC89C52单片机为主控芯片,通过酒精传感器MQ3采集空气中的酒精浓度。酒精传感器将酒精浓度等非电量转化成电量,通过单片机控制A/D转换芯片ADC0832处理传感器传来的模拟信号,将模拟转换成数字信号传到单片机中进行数据处理,最后单片机将处理结果输出并在LCD1602液晶显示屏上显示输出酒精浓度值和预设酒精浓度阈值,当超过阈值时,单片机控制蜂鸣器鸣叫报警并在液晶显示屏上显示警告。但由于STC89C52单片机内置8K在系统可编程Flash存储器对搭建网页所需要的空间非常有限[3],需要添加外部的Flash,另一方面STC89C52工作电压是5V而ESP8266可承受最大的电压不能超过3.6V,所以两者之间相互通信必须借助电平转换电路。图1方案一原理框图2.2.2方案二此方案采用STM32系列32位ARM微控制器作为主控芯片,该系列芯片按片内Flash的大小最大可达512K,可以基本满足搭建网页的存储空间需求。STM32芯片内部自带的12位A/D转换器,也无需额外增加外围A/D转化电路。除此之外STM32与ESP8266都是3.3V的工作电压,相比于方案一不需要借助电平转换电路就可以相互连接通信,STM32能够直接控制更高分辨率的液晶显示屏[4]并显示酒精浓度值和设定的阈值浓度,当超过阈值时,单片机控制蜂鸣器鸣叫报警并在液晶显示屏上显示警告。图2方案二原理框图2.2.3方案三此方案采用32位低功耗NodeMCU作为主控芯片,除了具备方案二所述STM32具有的优势之外,NodeMCU集成了WIFI模块,拥有4MBSPIFlash,可高达80MHz的单片机主频和优秀的传输速率,可以独立完成物联网的开发[5],工作温度范围大,且能够保持稳定的性能,具有的省电模式适用于各种低功耗应用场景。在硬件电路方面高集成度,仅需很少的外围电路,可将所占PCB空间降低。图3方案三原理框图系统硬件平台的设计3.1总体设计方案说明使用毕业设计分主要为两部分:硬件设计部分和软件设计部分。硬件设计部分是采用NodeMCU作为主控芯片,利用MQ3酒精传感器测量空气中的酒精浓度,酒精传感器将浓度信号转换为电压信号,再通过A/D转换器转把模拟信号换成数字信号后再传给单片机系统,最后由单片机系统和相应外围电路进行信号处理,并由液晶显示酒精浓度值并且对超过的阈值进行报警。用服务器作为网页显示系统,当酒精传感器MQ3采集到的数据后会实时传输给ESP8266,然后ESP8266再将数据通过互联网上传到服务器。NodeMCUNodeMCU是一个物联网硬件开发板,主要由ESP8266芯片和外部Flash构成,NodeMCU核心电路图如图4所示。NodeMCU集成了32位低功耗Tensilica处理器、天线开关、射频balun、功率放大器、低噪放大器、过滤器和电源管理模块,10位ADC,4MBSPIFlash,并带有HSPI、UART、PWM、I2C和I2S等接口。内置的超低功耗TensilicaL10632位RISC处理器,CPU时钟速度最高可达160MHz,支持实时操作系统(RTOS)和Wi-Fi协议。作为SDIO中的SPI从机模式工作时,传输速率可达8Mbps。图4NodeMCU核心电路图NodeMCU是以ESP8266芯片为核心的开发板,NodeMCU承载了ESP8266的大部分功能。其中值得注意的是本设计需要用到NodeMCU唯一的模拟输入引脚,该引脚是由ESP8266的模拟引脚引出。模拟引脚可以通过模拟数字转换将引脚上的模拟电压数值转化为数字量,ESP8266的模拟引脚所能读取的模拟电压值为0-1.0V。如果将ESP8266芯片的模拟输入引连接到1.0V以上电压可能会损坏ESP8266芯片。本设计中使用的酒精传感器MQ3模拟输出电压最大3.2V左右,需要配置降压电路再将传感器接到Esp8266芯片上,但是对于已经集成了降压电路的NodeMCU开发板来说,模拟输入引脚来说是可以直接读取0-3.3V的模拟电压信号。3.3显示电路显示电路选用的是基于SSD1306驱动的128*64像素的有机发光二极管(OLED,OrganicLight-EmittingDiode)屏。OLED屏是通过像素自发光来显示成像的,具有体积小、画面效果极佳、超薄轻便、接口小巧、功耗低等优势,OLED屏幕支持I2C和SPI协议,为了节约端口资源[6],本设计采用通过2线I2C总线接收数据与NodeMCU传输信息。OLED屏的供电电压为2.2V~5.5V,无需任何设置,可以直接兼容3.3V和5V控制芯片的I/O电平。具体显示电路如图5所示。图5显示电路原理图3.4酒精采集电路3.4.1酒精传感器的选择本设计是用于检测空气中的酒精浓度,需要选用的酒精传感器类型是气敏传感器,气敏传感器直接影响到数据的可靠性和准确性,是酒精检测电路的核心。所以在选择传感器的时候,传感器的穏定性、灵敏度、选择性和抗腐蚀性是本设计选取的衡量标准。由于MQ3型酒精浓度传感器只针对酒精气体敏感,对空气中其他气体成分敏感度极低,其相对于其它传感器来说具有灵敏度高、使用寿命长、稳定性好这些优点所以选本设计选择MQ3型酒精浓度传感器[7]。3.4.2MQ3酒精传感器工作原理MQ3属于半导体式表面电阻控制型气敏传感器,所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)[8],由微型陶瓷管、加热器和测量电极和加热器构成。在高温下,N型半导体的表面遇到离解能力较小(易失去电子)的还原性气体时,气体分子中的电子将向MQ3气敏电阻表面转移,使气敏电阻中的自由电子浓度增加,电阻率降低,电阻减小。半导体式传感器就是利用一些金属氧化物半导体材料,在一定温度下,电导率随着环境气体成份的变化而变化的原理制造。MQ3酒精传感器是半导体式表面电阻控制型,它是利用二氧化锡在高温下遇到酒精气体时,电阻会急剧减小的原理制造的,所以当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。3.4.2MQ3酒精传感器特性与参数计算MQ3传感器的基本测试电路由两个部分组成:第一部分是加热回路,第二部分是信号的输出回路。如图6所示,该传感器需要施加2个电压:加热器电压(VH)和测试电压(VC)。其中加热器电压(VH)用于为传感器提供特定的工作温度,可用50.1V直流电源或交流电源。VC是为负载电阻RL提供测试的测试电压,须用50.1V直流电源。VRL是传感器串联的可调负载电阻(RL)上的电压。根据传感器的工作原理可知,传感器的基本测试电路可以准确地反映传感器的表面电阻Rs的变化,从基本测试电路图可知表面电阻Rs的变化可以通过和它串联的负载电阻RL的有效电压信号VRL输出面获得的。根据欧姆定律可得,它们的关系可以表述为:VRL=[Vc/(Rs+RL)]xRL(1)将(1)恒等变形,可得传感器的表面电阻Rs的表达式为:Rs=[(VcxRL)/VRL]-RL(2)图6MQ3传感器的基本测试电路传感器灵敏度等于Rs与R0的比值,其中Rs表示传感器在不同浓度气体中的电阻值,R0表示传感器在纯净空气中的电阻值。在标准试验条件下,传感器的灵敏度与气体浓度关系如图7所示。从传感器典型的灵敏特性曲线图中可以看出,在纯净空气中的Rs与R0的比值是恒定的:Rs/R0=4.4ppm(3)要计算R0,需要在纯净空气中通过(2)式先得到RS值。这一步骤将通过从传感器获取模拟平均读数并转换为电压来完成。然后将求得的Rs值代入(3)式来求得R0。分析图7可以发现,气体浓度的数据仅在200ppm到10000ppm之间,电阻比(Rs/R0)与气体浓度之间的关系似乎是线性相关的,但在事实上却并非如此。图表中的刻度是以10为底取了对数的,这意味着在线性尺度下,气体浓度相对于电阻比(Rs/R0)是成指数型的。尽管如此,我们还是可以暂且将把这些线看作是线性的,来构建数学模型。这样,我们可以使用一个直线方程将电阻比(Rs/R0)和浓度拟合。在对数刻度下直线方程为:y=kx+b (4)现在我们只需要对横纵坐标取对数看作整体代入(4),就能将对数刻度还原成线性刻度:log(y)=k*log(x)+b (5)从图表中的酒精(alcohol)线上选择任意两点的坐标代入式(5),可以得到斜率k=0.3934,截距b=-1.504,则有:log(y)=0.3934*log(x)-1.504(6)为了根据图表能求出气体浓度,需要得到关于x的表达式,对式(6)取逆函数得气体浓度的真实值的拟合方程为:x=10^{[log(y)+1.504]/0.3934} (7)图7传感器典型的灵敏特性曲线4软件实现方案软件开发环境本系统的软件部分所使用的开发环境为Arduino集成开发环境(IDE),ArduinoIDE是一个跨平台应用程序,兼容Windows,macOS,Linux,同时支持Flash、Max/Msp、VVVV、PD、C、Processing等多种程序。ArduinoIDE提供了来自Wiring项目的软件库,简化了代码的开发,简化开发流程。本设计主要使用C和C++的函数编写,程序有较高的效率,能够跨平台且快速扩展移植,开发环境提供的可调用库文件减少了程序篇幅和复杂度[9]。系统主程序设计系统软件主要由酒精浓度采集程序、网络服务器程序、网络通信程序、数据显示程序构成,以NodeMCU为核心,将酒精浓度信息收集后,把获取到的信号通过模拟电路端口传输至NodeMCU,将信号转换为酒精浓度,然后通过WebSocket通信传输到网页同时通过OLED屏幕显示出当前酒精浓度信息[10]。系统主程序流程图如图8所示。图8系统主程序流程图图9酒精浓度采集与处理流程图酒精浓度采集与处理程序酒精传感器的信息采集和数据处理是本设计的核心部分,此处理程序的设计影响着酒精浓度检测的准确性和稳定性。首先,将使用端口和浓度转换公式将传感器进行初始化操作,单片机不断读取模拟引脚信号并转化为数字信号,得到量化电压,对于待定的参数和最后的酒精浓度,采用计算公式获取浓度值,最后输出浓度值。酒精浓度采集与处理流程图如图9所示。网络服务器程序网络静态服务器是一个HTTP服务器,作为网络服务的服务端处理。用户访问服务器地址的时候,程序查询相应的请求,返回不同类型文件到客户端,完成网页渲染。在初始化程序中,设置服务器端口号为80端口,监听端口,当用户访问的时候,程序返回HTML、JS和图片文件到客户端。网络通信程序是连接单片机和用户网页的桥梁,在NodeMCU中创建一个WebSocket服务器,由于80端口被占用,我们选用81端口作为WebSocket通信端口。初始化程序中,设置好WebSocket服务器的端口,响应事件。用户开始连接的时候发送connect字符。循环监听程序中,将酒精浓度转化为字符,实时推送到客户端,循环往复。如图10所示。图10网络服务流程4.2.3数据显示程序显示酒精浓度的程序采用动态显示方式,编程比较简单,由NodeMCU控制OLED开启,显示两个数据,当前酒精浓度和电压。OLED可显示字母、汉字、字符串、符号,每次发送信息前需要清理上一次屏幕。获取到酒精浓度和电压后,将电压和浓度转换为字符串数据,设定显示坐标,一次性发送坐标和字符串信息显示,循环往复。显示流程设计如图11所示。图11数据显示流程图5系统测试与分析实物制作本项目使用MQ3酒精传感器检测模块对空气中的酒精含量进行监测。本系统功能已经全部完成,作品实物如图12图13所示。图12无酒精浓度时检实物图图13检测医用酒精浓度时实物图硬件测试系统硬件主要由酒精传感器电路、NodeMCU模块、实时显示电路以及供电电源电路组成。在对系统硬件进行测试时,主要从传感器的稳定性、实时性。稳定性本系统是一款酒精浓度检测设备,要求其稳定性较高。各个模块相互独立,在程序代码中做到排除问题,核心芯片对数据及时处理就可以做到相对稳定。经过数十次的上电测试,整个系统都能较准确的获取到酒精浓度,并且各模块之间相互协调配合。实时性对于酒精浓度信息的采集,不仅要求稳定性也要求实时性。数据信息收集和获取,数据经过NodeMCU处理后,显示在OLED和网页中的上的时间就要极短。经过测试得知,本系统在实时性方面存在0.5~1S的延时,这是需要进一步改进的地方。系统软件测试部分软件调试主要是进行模块测试,硬件电路搭建好之后,将每个模块的程序下载到单片机中看是否实现预期效果,最后将各个模块的程序联合测试。图14网页显示安全图图15网页显示酒驾图在编写程序前,先要查找资料了解所使用芯片的参数,定义好所连接的端口。在开发环境编译代码可以知道函数是否存在语言错误。当程序的烧录却没有实现预期功能时,先检查硬件连接,硬件没有问题,是否是少了驱动或者驱动失败。根据实际得到的效果不断地修改程序,直到达到理想的效果。性能指标测量表1数据分析表理论值(g/ml)测量值((g/ml)差值((g/ml)误差百分比000055.000109.50.501514.40.64%2019.60.42%3029.70.31%40%50%60%7069.90.350.5%本次设计最主要的是测量酒精浓度段,根据表1可知,酒精检测仪的误差基本能满足设计要求,但实际测量值一直小于理论值。经过误差来源有以下几种可能:(1)被测电压带有稳步以至于示数不稳定性。(2)计算的浓度与电压成正相关,电路中的电阻会影响测量,并且电阻阻值会随温度的变化而波动。(3)选取的拟合方程采用指数型,在低浓度段时误差较大,不过本次设计的程序编写设置取参数时取十次的平均值,地减小了低浓度段时的误差。结论本课题设计的是基于NodeMCU设计的一种酒精检测设备,通过WebSocket实现了物联网通信,是数据收集不再孤立,是未来大数据物联网发展方向。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论