賀煥利,王宇峰,章麗
(湖北汽車工業(yè)學(xué)院 汽車工程學(xué)院,湖北 十堰 442002)
WHO 最新道路安全報(bào)告顯示,每年約135 萬人在交通事故中死亡,其中約60%的交通事故是酒后駕駛造成的,且呈上升趨勢。[1]究其原因,主要是駕駛員對酒駕危害意識淡薄或心存僥幸。[2]目前最常見的酒精濃度檢測方式是呼氣式酒精濃度檢測,但只能在某些路段進(jìn)行,無法全方位覆蓋。文中基于Arduino 單片機(jī)研發(fā)了智能化車輛防酒駕系統(tǒng),相比傳統(tǒng)的酒駕呼吸分析儀,操作便捷,強(qiáng)調(diào)駕駛員的主動性意識,成本低廉。
系統(tǒng)通過酒精濃度傳感器MQ-3 檢測駕駛員呼氣中酒精濃度,與設(shè)定的閾值進(jìn)行比較,進(jìn)而作出相應(yīng)判斷。
閾值依據(jù)GB19522 設(shè)定,駕駛員血液酒精濃度小于20 mg·(100 mL)-1時屬于“正常”,血液酒精濃度為20~80 mg·(100 mL)-1時屬于“酒后駕車”,血液酒精濃度不小于80 mg·(100 mL)-1時屬于“醉酒駕車”。人體血液酒精濃度與呼氣酒精濃度近似呈線性關(guān)系:[3]
式中:BAC為人體血液酒精濃度;Br為呼氣酒精濃度;K通常取2200。
如果測定數(shù)值大于相應(yīng)閾值上限值,判斷駕駛員是飲酒駕車或醉酒駕車,此時報(bào)警器報(bào)警、報(bào)警燈閃爍,并發(fā)出語音提示“請勿酒后駕車”,液晶顯示屏顯示酒精濃度的具體數(shù)值??傮w方案流程見圖1。
圖1 整體方案流程圖
1)單片機(jī) 采用Arduino單片機(jī),了解各端口的功能和C語言的基礎(chǔ)知識編寫相應(yīng)程序。Arduino 是開源平臺,在相關(guān)網(wǎng)站、論壇、博客等可搜索到需要的資料,提高作品創(chuàng)作的效率。相對于飛思卡爾等單片機(jī),Arduino學(xué)習(xí)和創(chuàng)作成本低。
2)酒精傳感器 采用乙醇傳感器MQ-3,相比電化學(xué)型和其他半導(dǎo)體型酒精傳感器,MQ-3對酒精有較高的靈敏度,能承受汽油、煙霧和水汽的干擾,具有壽命長、成本低、驅(qū)動電路簡單等特點(diǎn)。[4]
3)液晶顯示器 考慮功能特點(diǎn)及性價比,選擇LCD 1602 液晶顯示器。系統(tǒng)啟動后,LCD1602模塊顯示“Alcohol Detector Circuit Digest”,表示系統(tǒng)正在初始化。LCD1602 實(shí)時顯示空氣中的酒精濃度,Br小于0.009 09 mg·L-1時顯示“Normal”,同時藍(lán)色LED 警示燈亮,表示駕駛員處于正常狀態(tài);Br小于0.036 36 mg·L-1但不小于0.009 09 mg·L-1時顯示“Drunk”,同時黃色LED 警示燈亮,表示駕駛員處于酒駕狀態(tài);Br不小于0.036 36 mg·L-1時顯示“Dangerous”,同時紅色警示燈亮,表示駕駛員處于醉駕狀態(tài)。
1)液晶顯示模塊 1602LCD 有16 個引腳,可用4 位接線法和8 位接線法。系統(tǒng)采用Arduino UNO R3 的引腳數(shù)較少,因此選用4 位接線法[5]。1602 LCD與Arduino連接電路見圖2a,1602 LCD的VO接入1個電位器,控制液晶顯示屏的顯示亮度。
2)酒精濃度采集模塊 酒精傳感器檢測電路由MQ-3、A/D轉(zhuǎn)換器和電壓比較電路組成,用于判斷酒精濃度是否超過閾值。VCC 端提供5 V 工作電壓;采用LM393 作為電壓比較器,當(dāng)AO 電壓高于引腳2 電壓時,引腳1 輸出高電平,DO 輸出低電平,LED燈亮;當(dāng)AO電壓低于引腳電壓2時,引腳1輸出低電平,DO輸出高電平,LED不亮。酒精傳感器電路如圖2b所示。
3)語音報(bào)警模塊 當(dāng)酒精傳感器檢測到Br超過閾值時,語音模塊發(fā)出“為了您的出行安全,請勿酒后駕駛”的提醒;反之語音模塊處于待機(jī)狀態(tài)。系統(tǒng)采用的語音模塊為ISD 1820,具有錄放電路的基本特點(diǎn),取樣率和錄放時間可外部調(diào)節(jié),單段錄放音操作簡單,可重復(fù)錄音1萬次,能耗低,可自動進(jìn)入節(jié)電模式,[6]突發(fā)斷電時保存信息時間長,電路如圖2c 所示。除語音報(bào)警和液晶顯示外,檢測到Br正常時,藍(lán)色LED 燈亮;檢測到Br在酒后駕駛范圍內(nèi)時,黃色LED 燈亮;檢測到Br屬于醉酒駕駛范圍內(nèi),紅色LED燈亮。LED接線如圖2d所示。
4)復(fù)位電路 當(dāng)駕駛員需要重復(fù)進(jìn)行酒精濃度檢測時,按下復(fù)位鍵,此時系統(tǒng)會將酒精檢測裝置測量的數(shù)據(jù)調(diào)整到0刻度線,同時LCD液晶顯示屏顯示“0 mg·L-1”,20 s 后重新開始檢測。復(fù)位電路如圖2e所示。
系統(tǒng)采用Arduino IDE 進(jìn)行模塊化編程設(shè)計(jì)。Arduino 集成開發(fā)環(huán)境即Arduino IDE,可將程序燒錄到所連接的開發(fā)板上,與開發(fā)板進(jìn)行信息通訊。Arduino IDE編寫的代碼以“.ino”格式保存,程序運(yùn)行出現(xiàn)錯誤時,消息區(qū)將顯示提示信息。軟件界面右下角會顯示當(dāng)前選擇的開發(fā)板和串口信息。Arduino IDE的主要特點(diǎn)是開源電路圖設(shè)計(jì),支持ISP在線燒錄,支持多種交互程序,可方便與各種電子元件如傳感器連接。
MQ-3 初始化完成后開始采集空氣中酒精濃度數(shù)據(jù),將采集到的信號傳輸?shù)紸rduino 中進(jìn)行處理,計(jì)算得出酒精濃度并顯示在LCD1602 顯示屏上。酒精濃度采集流程如圖3所示,主程序如下:
圖3 酒精濃度采集流程圖
車輛防酒駕系統(tǒng)實(shí)物如圖4所示。測試時,使用USB端口給Arduino單片機(jī)供電,通電后等待20 s,待傳感器的輸出電壓穩(wěn)定后進(jìn)行濃度測試。測試得到清潔空氣中酒精含量為0.004 mg·L-1,對應(yīng)串口監(jiān)視器的輸出電壓為0.74 V。因此在設(shè)定閾值時應(yīng)加上潔凈空氣中的酒精濃度,對采集的酒精濃度數(shù)據(jù)進(jìn)行校準(zhǔn)。根據(jù)已知數(shù)據(jù)進(jìn)行計(jì)算,校準(zhǔn)后閾值為0.013 09 mg·L-1和0.040 36 mg·L-1。
圖4 車輛防酒駕系統(tǒng)實(shí)物圖
文中完成了基于Arduino的車輛防酒駕系統(tǒng)的軟硬件設(shè)計(jì)及功能測試,結(jié)果表明系統(tǒng)能完成酒精濃度信息的實(shí)時采集、語音報(bào)警、液晶顯示、LED指示燈報(bào)警等,測試性能穩(wěn)定,準(zhǔn)確性高。