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