国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于物聯(lián)網(wǎng)的嵌入式酒駕自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)

2014-09-24 16:27蘆芝萍
物聯(lián)網(wǎng)技術(shù) 2014年7期
關(guān)鍵詞:發(fā)送給酒精編碼

摘 要:針對(duì)目前因酒駕造成的交通事故頻發(fā)問(wèn)題,提出了一種基于物聯(lián)網(wǎng)的車載酒駕自動(dòng)檢測(cè)系統(tǒng)。系統(tǒng)利用物聯(lián)網(wǎng)技術(shù),以STC12C5A16AD單片機(jī)為核心,通過(guò)4路MQ-3傳感器來(lái)檢測(cè)是否酒駕。當(dāng)系統(tǒng)檢測(cè)到酒精濃度超標(biāo)時(shí),系統(tǒng)發(fā)出聲光報(bào)警并禁止汽車發(fā)動(dòng),同時(shí)通過(guò)GPRS模塊進(jìn)行車輛定位,并將信息發(fā)送給家人和當(dāng)?shù)亟煌ú块T(mén)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)能有效預(yù)防酒后駕車,具有很好的實(shí)用價(jià)值。

關(guān)鍵詞:物聯(lián)網(wǎng);酒駕;MQ-3;GPRS;MC55i

中圖分類號(hào):TP216 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)07-0008-04

0引言

近年來(lái),隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,人民生活水平的不斷提高,全國(guó)機(jī)動(dòng)車輛數(shù)量和駕駛員人數(shù)迅猛增長(zhǎng)。汽車在給人們帶來(lái)生活便利、經(jīng)濟(jì)利益和生活品質(zhì)的同時(shí),也帶來(lái)了交通事故。近年來(lái)道路交通事故頻發(fā),造成了嚴(yán)重的經(jīng)濟(jì)損失和人員傷亡。酒駕、超速和疲勞是交通事故高發(fā)的三個(gè)主要原因,這其中酒后駕車所引發(fā)的交通事故已占到總數(shù)相當(dāng)大的比例。無(wú)視交通管理法規(guī)酒后及醉酒駕車造成嚴(yán)重后果的違法犯罪事件越來(lái)越多[1]。目前我國(guó)酒駕檢測(cè)主要是由交通警察在路口設(shè)置警點(diǎn),使用呼氣式檢測(cè)儀器對(duì)過(guò)往可疑車輛進(jìn)行攔車檢查[2]。但要進(jìn)行路檢只能針對(duì)部分車輛抽樣檢測(cè),以確定駕駛員是否酒駕,且無(wú)法實(shí)時(shí)監(jiān)控駕駛員酒后駕車情況[3]。而且進(jìn)行路檢需要大量的人力和物力,另外一些酒后駕車者拒不配合檢測(cè),也給我們交警的執(zhí)法帶來(lái)困難。

為了更好地遏制酒駕,減少交通事故的發(fā)生。本文提出了一種基于物聯(lián)網(wǎng)的車載酒駕自動(dòng)識(shí)別系統(tǒng)。系統(tǒng)利用目前流行的物聯(lián)網(wǎng)技術(shù),以STC12C5A16AD單片機(jī)為核心,通過(guò)MQ-3傳感器來(lái)檢測(cè)是否酒駕。把傳感器嵌入駕駛室內(nèi),通過(guò)對(duì)駕駛座位的前方、上方和左右4個(gè)檢測(cè)點(diǎn)的酒精濃度檢測(cè),判斷是否酒駕[4,5]。當(dāng)檢測(cè)到酒駕后,系統(tǒng)發(fā)出聲光報(bào)警并禁止汽車發(fā)動(dòng),同時(shí)通過(guò)GPRS模塊將酒駕車輛信息實(shí)時(shí)地發(fā)送給家人和當(dāng)?shù)亟煌ú块T(mén)[6]。這樣可以有效的預(yù)防酒駕,便于交通部門(mén)集中監(jiān)控,不再需要交警進(jìn)行大規(guī)模的進(jìn)行蹲點(diǎn)攔車檢測(cè),節(jié)省的人力和物力[7]。

系統(tǒng)借助物聯(lián)網(wǎng)技術(shù),把每輛汽車作為一個(gè)節(jié)點(diǎn),從眾多的節(jié)點(diǎn)傳感器采集數(shù)據(jù),然后通過(guò)無(wú)線傳輸技術(shù)把信息發(fā)送給家人和當(dāng)?shù)亟煌ú块T(mén)總節(jié)點(diǎn)。系統(tǒng)整體結(jié)構(gòu)如圖1所示,每輛汽車的通信對(duì)象有兩個(gè):一個(gè)是家人,另一個(gè)是交通部門(mén)服務(wù)器。每輛汽車安裝一個(gè)車載酒駕自動(dòng)檢測(cè)系統(tǒng),每個(gè)檢測(cè)系統(tǒng)主要由以下模塊組成:STC12C5A16AD單片機(jī)控制系統(tǒng)、呼氣式酒精傳感器MQ-3、LCD顯示模塊、聲光報(bào)警模塊、繼電器控制模塊和GPRS模塊。酒駕自動(dòng)檢測(cè)系統(tǒng)的整體架構(gòu)如圖2所示。

1系統(tǒng)整體架構(gòu)與工作原理

1.1系統(tǒng)整體架構(gòu)設(shè)計(jì)

圖1系統(tǒng)整體架構(gòu)圖

圖2酒駕自動(dòng)檢測(cè)系統(tǒng)結(jié)構(gòu)圖

1.2工作原理

當(dāng)駕駛員駕駛員扭動(dòng)車輛鑰匙,檢測(cè)系統(tǒng)上電啟動(dòng),進(jìn)行硬件初始化。酒駕自動(dòng)檢測(cè)系統(tǒng)開(kāi)始工作。4 路MQ-3傳感器把檢測(cè)到的模擬信號(hào)通過(guò)A/D轉(zhuǎn)換為數(shù)字信號(hào),通過(guò)對(duì)此數(shù)字信號(hào)與預(yù)先設(shè)置的數(shù)值進(jìn)行比較來(lái)判斷是否酒駕,并通過(guò)LCD液晶顯示屏顯示閥值與檢測(cè)值。STC 單片機(jī)對(duì)氣體中的酒精濃度信息進(jìn)行分析,若濃度未超標(biāo),車輛正常行駛。一旦某一路傳感器檢測(cè)到的酒精濃度超出安全范圍,系統(tǒng)的LED 警示燈閃爍,同時(shí)把相關(guān)信息發(fā)送給預(yù)先設(shè)定好的家人的手機(jī)上,同時(shí)通過(guò)GPRS模塊發(fā)送信息給當(dāng)?shù)亟煌ú块T(mén),并通過(guò)蜂鳴器發(fā)出警報(bào)聲。

2系統(tǒng)設(shè)計(jì)

2.1單片機(jī)系統(tǒng)設(shè)計(jì)

本系統(tǒng)的主控模塊采用的是宏晶科技生產(chǎn)的STC12C2052AD單片機(jī),STC12C2052AD是一種高速、低功耗、超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)的8051,但速度快8~12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速8位A/D轉(zhuǎn)換。STC12C5A16AD單片機(jī)本身自帶8位高速ADC,所以大大簡(jiǎn)化電路設(shè)計(jì)。單片機(jī)系統(tǒng)原理如圖3所示,圖3中的按鍵K2和K3可進(jìn)行閾值設(shè)置,其中K2為“增加”、K3為“減小”按鍵。L2和L3為報(bào)警指示燈,分別可以進(jìn)行酒后和醉酒兩級(jí)報(bào)警。醉酒閾值存儲(chǔ)在EEPROM芯片AT24C01中,并可以通過(guò) “增加”、“減少”按鍵調(diào)節(jié)并保存。AT24C01是I2C接口的EEPROM芯片,可以用于掉電不易失數(shù)據(jù)的存儲(chǔ)。其電路如圖4所示。圖中A0、A1和A2為芯片的地址引腳,一般接地即可。SCL和SDA為AT24C04和單片機(jī)I2C通信的時(shí)鐘線和數(shù)據(jù)線。

2.2繼電器控制電路

繼電器控制電路主要功能是:當(dāng)MQ-3傳感器檢測(cè)到酒精濃度超標(biāo)時(shí),利用控制繼電器控制車輛禁駕。繼電器控制接口與汽車點(diǎn)火與電噴電路相連接,通過(guò)單片機(jī)編程可控制汽車啟動(dòng)。汽車電噴控制電路如圖5所示[7]。

圖4外置存儲(chǔ)器電路圖

圖5汽車電噴控制電路

2.3顯示電路

顯示部分采用SMC1602液晶屏進(jìn)行顯示,該液晶顯示器以其低功耗、體積小、顯示內(nèi)容豐富、超薄、輕巧的優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用[8]。芯片工作電壓為4.5~5.5V,工作電流為2.0 mA,在本設(shè)計(jì)中采用5.0 V供電。液晶屏與單片機(jī)的接口電路如圖6所示,其中J2的3腳為背光引腳,R9和R10電阻用于調(diào)節(jié)背光亮度。J2的4、5和6腳分別接液晶的RS、E/W和E控制引腳,J2的7-14引腳為數(shù)據(jù)引腳。在1602液晶屏中顯示某位字符的程序如下:

void L1602_char(uchar hang,uchar lie,char sign)

{

uchar a;

if(hang == 1) a = 0x80;

if(hang == 2) a = 0xc0;

a = a + lie - 1;

enable(a);

write(sign);

}

2.4MQ-3傳感器電路

人飲酒后,呼出的氣體含有酒精分子,通過(guò)檢測(cè)被測(cè)人呼氣酒精濃度,就可以判定其飲酒程度。另外氣體濃度檢測(cè)簡(jiǎn)單易行,本設(shè)計(jì)中采用MQ-3酒精傳感器。檢測(cè)對(duì)象的血液酒精濃度由人體血液酒精含量與呼出氣體中的酒精濃度之間的比值關(guān)系計(jì)算得出。我國(guó)對(duì)酒駕的判定界限為100~300mg/L,當(dāng)檢測(cè)到酒精濃度小于200 mg/L時(shí),發(fā)動(dòng)機(jī)可以正常啟動(dòng);而當(dāng)檢測(cè)到濃度超過(guò)200 mg/L時(shí),發(fā)動(dòng)機(jī)電源切斷,發(fā)動(dòng)機(jī)不能正常啟動(dòng)。酒精傳感器的工作原理是根據(jù)人飲酒后血液里的酒精濃度值與呼出氣體的酒精濃度值有一個(gè)固定的比例關(guān)系,公式如下:

血液酒精濃度(mg/L)=2 200*呼所酒精濃度(mg/L)

圖6液晶電路設(shè)計(jì)

由于MQ-3該傳感器的輸出信號(hào)為毫伏級(jí)電壓信號(hào),因此需要對(duì)該信號(hào)進(jìn)行放大后再經(jīng)模/數(shù)轉(zhuǎn)換傳遞給控制單元作進(jìn)一步分析處理,其工作原理如圖7所示。進(jìn)行A/D轉(zhuǎn)換的程序如下:

圖7 MQ-3傳感器電路

uchar GetADVal()

{

uint i;

ADC_CONTR&=0xf7;

for(i=250;i>0;i--);//待輸入電壓穩(wěn)定后開(kāi)始轉(zhuǎn)換

ADC_CONTR |= 0x08; //ADC_Start=1, 啟動(dòng)轉(zhuǎn)換

while((ADC_CONTR&0x10)==0); //等待轉(zhuǎn)換結(jié)束ADC_FLAG=1

ADC_CONTR&=0xe7;

return ADC_RES;

}

2.5GSM模塊電路

無(wú)線通信模塊選用的是MC55i模塊,單片機(jī)通過(guò)串口發(fā)送AT命令給MC55i模塊,對(duì)其進(jìn)行控制。當(dāng)傳感器檢測(cè)到的酒精濃度超出安全范圍,MC55i無(wú)線模塊隨之啟動(dòng)。通過(guò)移動(dòng)基站的Cell-Id定位法,獲取車輛當(dāng)前位置的信息,再利用GPRS模塊把相關(guān)信息通過(guò)短信發(fā)送給家人,并通過(guò)GPRS上傳到交管部門(mén),便于采取相應(yīng)的處理措施。AT+CREG指令控制MC55i模塊進(jìn)行基站定位,獲取車輛的當(dāng)前的位置信息。短消息編碼采用Unicode中文編碼。在發(fā)送短信時(shí),對(duì)常用漢字進(jìn)行裁剪,將常用漢字的字庫(kù)存入單片機(jī)FLASH中,漢字字符通過(guò)查表,將碼制置換為Unicode編碼,隨后設(shè)置短信協(xié)議為PDU模式,發(fā)送中文漢字。PDU模式不僅支持中文短信,也能發(fā)送英文短信。在PDU模式中,可以采用三種編碼方式來(lái)對(duì)發(fā)送的內(nèi)容進(jìn)行編碼,它們是7-bit編碼、8-bit編碼和UCS2編碼(也就是16-bit編碼)。7-bit編碼用于發(fā)送普通的ASCII字符,它將一串7-bit的字符(最高位為0)編碼成8-bit的數(shù)據(jù),每8個(gè)字符可“壓縮”成7個(gè);8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;UCS2編碼用于發(fā)送Unicode字符。PDU串表面上是一串ASCII碼,由0~9、A~F這些數(shù)字和字母組成。它們是8位字節(jié)的十六進(jìn)制數(shù),或者BCD碼十進(jìn)制數(shù)。PDU串不僅包含可顯示的消息本身,還包含很多其他信息,如SMS服務(wù)中心號(hào)碼、目標(biāo)號(hào)碼、回復(fù)號(hào)碼、編碼方式和服務(wù)時(shí)間等。

將要發(fā)送的信息根據(jù)AT命令協(xié)議壓縮成一個(gè)PDU串,然后將該P(yáng)DU串通過(guò)串口發(fā)送給GSM模塊,最后由GSM模塊發(fā)送給目標(biāo)手機(jī)(這里指的是監(jiān)控中心的手機(jī)號(hào)碼),整個(gè)發(fā)送過(guò)程要結(jié)合上面所講的發(fā)送PDU結(jié)構(gòu)來(lái)進(jìn)行,具體函數(shù)包括:gsmEncode7bit()、gsmEncode8bit()、gsmEncodeUcs2()、gsmInvertNumbers()等。用函數(shù)gsmEncodePdu ()可將原始信息壓縮成PDU串的功能。以上函數(shù)都已包含在這個(gè)程序中,具有程序如下:

int gsmEncodePdu(const SM_PARAM* pSrc, char* pDst)

{

int nLength; // 內(nèi)部用的串長(zhǎng)度

int nDstLength; // 目標(biāo)PDU串長(zhǎng)度

unsigned char buf[256]; // 內(nèi)部用的緩沖區(qū)

nLength = strlen(pSrc->SCA);

buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1;

buf[1] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength = gsmBytes2String(buf, pDst, 2); nDstLength += gsmInvertNumbers(pSrc->SCA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TPA);

buf[0] = 0x11;

buf[1] = 0; // TP-MR=0

buf[2] = (char)nLength;

buf[3] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], 4);

nDstLength += gsmInvertNumbers(pSrc->TPA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TP_UD);

buf[0] = pSrc->TP_PID; // 協(xié)議標(biāo)識(shí)(TP-PID)

buf[1] = pSrc->TP_DCS;

buf[2] = 0; // 有效期(TP-VP)為5分鐘

if(pSrc->TP_DCS == GSM_7BIT)

{

buf[3] = nLength; // 編碼前長(zhǎng)度

nLength = gsmEncode7bit(pSrc->TP_UD, &buf[4], nLength+1) + 4;

}

else if(pSrc->TP_DCS == GSM_UCS2)

{

buf[3] = gsmEncodeUcs2(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

else

{

buf[3] = gsmEncode8bit(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], nLength);

return nDstLength;

}

2.6供電電路

本設(shè)計(jì)采用USB接口供電,電源電壓5 V。同時(shí),USB接口通過(guò)內(nèi)含PL2303芯片的轉(zhuǎn)換電路對(duì)單片機(jī)進(jìn)行程序編寫(xiě),以及與GPRS模塊通信。其電路原理如圖8所示。

圖8供電電路

2.7軟件設(shè)計(jì)

系統(tǒng)采用C語(yǔ)言進(jìn)行編程,軟件設(shè)計(jì)的主流程如圖9所示。系統(tǒng)上電后,系統(tǒng)先進(jìn)行初始化,然后傳感器會(huì)把檢測(cè)到的酒精濃度與設(shè)定到外置存儲(chǔ)器中的閾值進(jìn)行比較,從而判斷酒精濃度是否超標(biāo)。當(dāng)檢測(cè)到濃度超過(guò)設(shè)定值200 mg/L時(shí),系統(tǒng)通過(guò)繼電器切斷發(fā)動(dòng)機(jī)電源,發(fā)動(dòng)機(jī)不能正常啟動(dòng),同時(shí)把相關(guān)位置信息與酒駕信息發(fā)送給預(yù)先設(shè)定好的家人與當(dāng)?shù)亟煌ú块T(mén)。

圖9主程序流程圖

3結(jié)語(yǔ)

本文設(shè)計(jì)基于物聯(lián)網(wǎng)的酒駕自動(dòng)檢測(cè)系統(tǒng)是采用STC12C5A16AD單片機(jī)作為主控系統(tǒng)。系統(tǒng)能夠自動(dòng)對(duì)駕駛員酒精濃度檢測(cè),根據(jù)檢測(cè)結(jié)果來(lái)控制發(fā)動(dòng)機(jī)是否啟動(dòng),如果酒精含量超標(biāo)則會(huì)發(fā)出聲光報(bào)警,并通過(guò)GPRS模塊向交通管理部門(mén)報(bào)警以及家人發(fā)送短消息。該系統(tǒng)體積小,功耗低,便于安裝等特點(diǎn)。測(cè)試結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)很好的實(shí)時(shí)性和高精度,運(yùn)行穩(wěn)定,具有可靠、適應(yīng)力強(qiáng)的特點(diǎn),達(dá)到了良好的控制效果,具有較好的使用價(jià)值。

參 考 文 獻(xiàn)

[1]段現(xiàn)星,王曉侃.基于單片機(jī)控制的車載酒精濃度檢測(cè)儀設(shè)計(jì)[J].測(cè)控技術(shù),2013,32(8): 5-7,11.

[2]李曉靜,劉書(shū)倫.基于物聯(lián)網(wǎng)的嵌入式酒駕智能辨識(shí)系統(tǒng)[J].制造業(yè)自動(dòng)化,2012,34(21): 39-42.

[3]徐京蓮,韓峻峰,潘盛輝,等.基于多傳感器融合的車載酒精檢測(cè)系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2010(7): 109-111.

[4]郭東峰,李彥.基于物聯(lián)網(wǎng)的嵌入式酒駕自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(3): 50-52.

[5]卓鄭安,朱文立,黃敏.基于GPRS的智能酒精濃度檢測(cè)儀設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(5): 53-56.

[6]陳麗,朱瑞祥,云超.基于單片機(jī)的防酒后駕駛控制系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2009,28(2): 100-102.

[7]朱明,王亞坤,宋莉莉,等.基于MC55i的車載酒精檢測(cè)系統(tǒng)[J].儀表技術(shù)與傳感器,2012(6): 107-109.

[8]周鴻武.基于單片機(jī)的酒精濃度檢測(cè)儀設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2012,34(2): 153-155.

————————————————

收稿日期:2014-04-04

作者簡(jiǎn)介:蘆芝萍(1977—),女,常州第四中學(xué)(中學(xué)一級(jí)),江蘇寶應(yīng)人、本科、學(xué)士。主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用。

while((ADC_CONTR&0x10)==0); //等待轉(zhuǎn)換結(jié)束ADC_FLAG=1

ADC_CONTR&=0xe7;

return ADC_RES;

}

2.5GSM模塊電路

無(wú)線通信模塊選用的是MC55i模塊,單片機(jī)通過(guò)串口發(fā)送AT命令給MC55i模塊,對(duì)其進(jìn)行控制。當(dāng)傳感器檢測(cè)到的酒精濃度超出安全范圍,MC55i無(wú)線模塊隨之啟動(dòng)。通過(guò)移動(dòng)基站的Cell-Id定位法,獲取車輛當(dāng)前位置的信息,再利用GPRS模塊把相關(guān)信息通過(guò)短信發(fā)送給家人,并通過(guò)GPRS上傳到交管部門(mén),便于采取相應(yīng)的處理措施。AT+CREG指令控制MC55i模塊進(jìn)行基站定位,獲取車輛的當(dāng)前的位置信息。短消息編碼采用Unicode中文編碼。在發(fā)送短信時(shí),對(duì)常用漢字進(jìn)行裁剪,將常用漢字的字庫(kù)存入單片機(jī)FLASH中,漢字字符通過(guò)查表,將碼制置換為Unicode編碼,隨后設(shè)置短信協(xié)議為PDU模式,發(fā)送中文漢字。PDU模式不僅支持中文短信,也能發(fā)送英文短信。在PDU模式中,可以采用三種編碼方式來(lái)對(duì)發(fā)送的內(nèi)容進(jìn)行編碼,它們是7-bit編碼、8-bit編碼和UCS2編碼(也就是16-bit編碼)。7-bit編碼用于發(fā)送普通的ASCII字符,它將一串7-bit的字符(最高位為0)編碼成8-bit的數(shù)據(jù),每8個(gè)字符可“壓縮”成7個(gè);8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;UCS2編碼用于發(fā)送Unicode字符。PDU串表面上是一串ASCII碼,由0~9、A~F這些數(shù)字和字母組成。它們是8位字節(jié)的十六進(jìn)制數(shù),或者BCD碼十進(jìn)制數(shù)。PDU串不僅包含可顯示的消息本身,還包含很多其他信息,如SMS服務(wù)中心號(hào)碼、目標(biāo)號(hào)碼、回復(fù)號(hào)碼、編碼方式和服務(wù)時(shí)間等。

將要發(fā)送的信息根據(jù)AT命令協(xié)議壓縮成一個(gè)PDU串,然后將該P(yáng)DU串通過(guò)串口發(fā)送給GSM模塊,最后由GSM模塊發(fā)送給目標(biāo)手機(jī)(這里指的是監(jiān)控中心的手機(jī)號(hào)碼),整個(gè)發(fā)送過(guò)程要結(jié)合上面所講的發(fā)送PDU結(jié)構(gòu)來(lái)進(jìn)行,具體函數(shù)包括:gsmEncode7bit()、gsmEncode8bit()、gsmEncodeUcs2()、gsmInvertNumbers()等。用函數(shù)gsmEncodePdu ()可將原始信息壓縮成PDU串的功能。以上函數(shù)都已包含在這個(gè)程序中,具有程序如下:

int gsmEncodePdu(const SM_PARAM* pSrc, char* pDst)

{

int nLength; // 內(nèi)部用的串長(zhǎng)度

int nDstLength; // 目標(biāo)PDU串長(zhǎng)度

unsigned char buf[256]; // 內(nèi)部用的緩沖區(qū)

nLength = strlen(pSrc->SCA);

buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1;

buf[1] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength = gsmBytes2String(buf, pDst, 2); nDstLength += gsmInvertNumbers(pSrc->SCA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TPA);

buf[0] = 0x11;

buf[1] = 0; // TP-MR=0

buf[2] = (char)nLength;

buf[3] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], 4);

nDstLength += gsmInvertNumbers(pSrc->TPA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TP_UD);

buf[0] = pSrc->TP_PID; // 協(xié)議標(biāo)識(shí)(TP-PID)

buf[1] = pSrc->TP_DCS;

buf[2] = 0; // 有效期(TP-VP)為5分鐘

if(pSrc->TP_DCS == GSM_7BIT)

{

buf[3] = nLength; // 編碼前長(zhǎng)度

nLength = gsmEncode7bit(pSrc->TP_UD, &buf[4], nLength+1) + 4;

}

else if(pSrc->TP_DCS == GSM_UCS2)

{

buf[3] = gsmEncodeUcs2(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

else

{

buf[3] = gsmEncode8bit(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], nLength);

return nDstLength;

}

2.6供電電路

本設(shè)計(jì)采用USB接口供電,電源電壓5 V。同時(shí),USB接口通過(guò)內(nèi)含PL2303芯片的轉(zhuǎn)換電路對(duì)單片機(jī)進(jìn)行程序編寫(xiě),以及與GPRS模塊通信。其電路原理如圖8所示。

圖8供電電路

2.7軟件設(shè)計(jì)

系統(tǒng)采用C語(yǔ)言進(jìn)行編程,軟件設(shè)計(jì)的主流程如圖9所示。系統(tǒng)上電后,系統(tǒng)先進(jìn)行初始化,然后傳感器會(huì)把檢測(cè)到的酒精濃度與設(shè)定到外置存儲(chǔ)器中的閾值進(jìn)行比較,從而判斷酒精濃度是否超標(biāo)。當(dāng)檢測(cè)到濃度超過(guò)設(shè)定值200 mg/L時(shí),系統(tǒng)通過(guò)繼電器切斷發(fā)動(dòng)機(jī)電源,發(fā)動(dòng)機(jī)不能正常啟動(dòng),同時(shí)把相關(guān)位置信息與酒駕信息發(fā)送給預(yù)先設(shè)定好的家人與當(dāng)?shù)亟煌ú块T(mén)。

圖9主程序流程圖

3結(jié)語(yǔ)

本文設(shè)計(jì)基于物聯(lián)網(wǎng)的酒駕自動(dòng)檢測(cè)系統(tǒng)是采用STC12C5A16AD單片機(jī)作為主控系統(tǒng)。系統(tǒng)能夠自動(dòng)對(duì)駕駛員酒精濃度檢測(cè),根據(jù)檢測(cè)結(jié)果來(lái)控制發(fā)動(dòng)機(jī)是否啟動(dòng),如果酒精含量超標(biāo)則會(huì)發(fā)出聲光報(bào)警,并通過(guò)GPRS模塊向交通管理部門(mén)報(bào)警以及家人發(fā)送短消息。該系統(tǒng)體積小,功耗低,便于安裝等特點(diǎn)。測(cè)試結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)很好的實(shí)時(shí)性和高精度,運(yùn)行穩(wěn)定,具有可靠、適應(yīng)力強(qiáng)的特點(diǎn),達(dá)到了良好的控制效果,具有較好的使用價(jià)值。

參 考 文 獻(xiàn)

[1]段現(xiàn)星,王曉侃.基于單片機(jī)控制的車載酒精濃度檢測(cè)儀設(shè)計(jì)[J].測(cè)控技術(shù),2013,32(8): 5-7,11.

[2]李曉靜,劉書(shū)倫.基于物聯(lián)網(wǎng)的嵌入式酒駕智能辨識(shí)系統(tǒng)[J].制造業(yè)自動(dòng)化,2012,34(21): 39-42.

[3]徐京蓮,韓峻峰,潘盛輝,等.基于多傳感器融合的車載酒精檢測(cè)系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2010(7): 109-111.

[4]郭東峰,李彥.基于物聯(lián)網(wǎng)的嵌入式酒駕自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(3): 50-52.

[5]卓鄭安,朱文立,黃敏.基于GPRS的智能酒精濃度檢測(cè)儀設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(5): 53-56.

[6]陳麗,朱瑞祥,云超.基于單片機(jī)的防酒后駕駛控制系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2009,28(2): 100-102.

[7]朱明,王亞坤,宋莉莉,等.基于MC55i的車載酒精檢測(cè)系統(tǒng)[J].儀表技術(shù)與傳感器,2012(6): 107-109.

[8]周鴻武.基于單片機(jī)的酒精濃度檢測(cè)儀設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2012,34(2): 153-155.

————————————————

收稿日期:2014-04-04

作者簡(jiǎn)介:蘆芝萍(1977—),女,常州第四中學(xué)(中學(xué)一級(jí)),江蘇寶應(yīng)人、本科、學(xué)士。主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用。

while((ADC_CONTR&0x10)==0); //等待轉(zhuǎn)換結(jié)束ADC_FLAG=1

ADC_CONTR&=0xe7;

return ADC_RES;

}

2.5GSM模塊電路

無(wú)線通信模塊選用的是MC55i模塊,單片機(jī)通過(guò)串口發(fā)送AT命令給MC55i模塊,對(duì)其進(jìn)行控制。當(dāng)傳感器檢測(cè)到的酒精濃度超出安全范圍,MC55i無(wú)線模塊隨之啟動(dòng)。通過(guò)移動(dòng)基站的Cell-Id定位法,獲取車輛當(dāng)前位置的信息,再利用GPRS模塊把相關(guān)信息通過(guò)短信發(fā)送給家人,并通過(guò)GPRS上傳到交管部門(mén),便于采取相應(yīng)的處理措施。AT+CREG指令控制MC55i模塊進(jìn)行基站定位,獲取車輛的當(dāng)前的位置信息。短消息編碼采用Unicode中文編碼。在發(fā)送短信時(shí),對(duì)常用漢字進(jìn)行裁剪,將常用漢字的字庫(kù)存入單片機(jī)FLASH中,漢字字符通過(guò)查表,將碼制置換為Unicode編碼,隨后設(shè)置短信協(xié)議為PDU模式,發(fā)送中文漢字。PDU模式不僅支持中文短信,也能發(fā)送英文短信。在PDU模式中,可以采用三種編碼方式來(lái)對(duì)發(fā)送的內(nèi)容進(jìn)行編碼,它們是7-bit編碼、8-bit編碼和UCS2編碼(也就是16-bit編碼)。7-bit編碼用于發(fā)送普通的ASCII字符,它將一串7-bit的字符(最高位為0)編碼成8-bit的數(shù)據(jù),每8個(gè)字符可“壓縮”成7個(gè);8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;UCS2編碼用于發(fā)送Unicode字符。PDU串表面上是一串ASCII碼,由0~9、A~F這些數(shù)字和字母組成。它們是8位字節(jié)的十六進(jìn)制數(shù),或者BCD碼十進(jìn)制數(shù)。PDU串不僅包含可顯示的消息本身,還包含很多其他信息,如SMS服務(wù)中心號(hào)碼、目標(biāo)號(hào)碼、回復(fù)號(hào)碼、編碼方式和服務(wù)時(shí)間等。

將要發(fā)送的信息根據(jù)AT命令協(xié)議壓縮成一個(gè)PDU串,然后將該P(yáng)DU串通過(guò)串口發(fā)送給GSM模塊,最后由GSM模塊發(fā)送給目標(biāo)手機(jī)(這里指的是監(jiān)控中心的手機(jī)號(hào)碼),整個(gè)發(fā)送過(guò)程要結(jié)合上面所講的發(fā)送PDU結(jié)構(gòu)來(lái)進(jìn)行,具體函數(shù)包括:gsmEncode7bit()、gsmEncode8bit()、gsmEncodeUcs2()、gsmInvertNumbers()等。用函數(shù)gsmEncodePdu ()可將原始信息壓縮成PDU串的功能。以上函數(shù)都已包含在這個(gè)程序中,具有程序如下:

int gsmEncodePdu(const SM_PARAM* pSrc, char* pDst)

{

int nLength; // 內(nèi)部用的串長(zhǎng)度

int nDstLength; // 目標(biāo)PDU串長(zhǎng)度

unsigned char buf[256]; // 內(nèi)部用的緩沖區(qū)

nLength = strlen(pSrc->SCA);

buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1;

buf[1] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength = gsmBytes2String(buf, pDst, 2); nDstLength += gsmInvertNumbers(pSrc->SCA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TPA);

buf[0] = 0x11;

buf[1] = 0; // TP-MR=0

buf[2] = (char)nLength;

buf[3] = 0x91; // 固定: 用國(guó)際格式號(hào)碼

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], 4);

nDstLength += gsmInvertNumbers(pSrc->TPA, &pDst[nDstLength], nLength);

nLength = strlen(pSrc->TP_UD);

buf[0] = pSrc->TP_PID; // 協(xié)議標(biāo)識(shí)(TP-PID)

buf[1] = pSrc->TP_DCS;

buf[2] = 0; // 有效期(TP-VP)為5分鐘

if(pSrc->TP_DCS == GSM_7BIT)

{

buf[3] = nLength; // 編碼前長(zhǎng)度

nLength = gsmEncode7bit(pSrc->TP_UD, &buf[4], nLength+1) + 4;

}

else if(pSrc->TP_DCS == GSM_UCS2)

{

buf[3] = gsmEncodeUcs2(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

else

{

buf[3] = gsmEncode8bit(pSrc->TP_UD, &buf[4], nLength);

nLength = buf[3] + 4;

}

nDstLength += gsmBytes2String(buf, &pDst[nDstLength], nLength);

return nDstLength;

}

2.6供電電路

本設(shè)計(jì)采用USB接口供電,電源電壓5 V。同時(shí),USB接口通過(guò)內(nèi)含PL2303芯片的轉(zhuǎn)換電路對(duì)單片機(jī)進(jìn)行程序編寫(xiě),以及與GPRS模塊通信。其電路原理如圖8所示。

圖8供電電路

2.7軟件設(shè)計(jì)

系統(tǒng)采用C語(yǔ)言進(jìn)行編程,軟件設(shè)計(jì)的主流程如圖9所示。系統(tǒng)上電后,系統(tǒng)先進(jìn)行初始化,然后傳感器會(huì)把檢測(cè)到的酒精濃度與設(shè)定到外置存儲(chǔ)器中的閾值進(jìn)行比較,從而判斷酒精濃度是否超標(biāo)。當(dāng)檢測(cè)到濃度超過(guò)設(shè)定值200 mg/L時(shí),系統(tǒng)通過(guò)繼電器切斷發(fā)動(dòng)機(jī)電源,發(fā)動(dòng)機(jī)不能正常啟動(dòng),同時(shí)把相關(guān)位置信息與酒駕信息發(fā)送給預(yù)先設(shè)定好的家人與當(dāng)?shù)亟煌ú块T(mén)。

圖9主程序流程圖

3結(jié)語(yǔ)

本文設(shè)計(jì)基于物聯(lián)網(wǎng)的酒駕自動(dòng)檢測(cè)系統(tǒng)是采用STC12C5A16AD單片機(jī)作為主控系統(tǒng)。系統(tǒng)能夠自動(dòng)對(duì)駕駛員酒精濃度檢測(cè),根據(jù)檢測(cè)結(jié)果來(lái)控制發(fā)動(dòng)機(jī)是否啟動(dòng),如果酒精含量超標(biāo)則會(huì)發(fā)出聲光報(bào)警,并通過(guò)GPRS模塊向交通管理部門(mén)報(bào)警以及家人發(fā)送短消息。該系統(tǒng)體積小,功耗低,便于安裝等特點(diǎn)。測(cè)試結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)很好的實(shí)時(shí)性和高精度,運(yùn)行穩(wěn)定,具有可靠、適應(yīng)力強(qiáng)的特點(diǎn),達(dá)到了良好的控制效果,具有較好的使用價(jià)值。

參 考 文 獻(xiàn)

[1]段現(xiàn)星,王曉侃.基于單片機(jī)控制的車載酒精濃度檢測(cè)儀設(shè)計(jì)[J].測(cè)控技術(shù),2013,32(8): 5-7,11.

[2]李曉靜,劉書(shū)倫.基于物聯(lián)網(wǎng)的嵌入式酒駕智能辨識(shí)系統(tǒng)[J].制造業(yè)自動(dòng)化,2012,34(21): 39-42.

[3]徐京蓮,韓峻峰,潘盛輝,等.基于多傳感器融合的車載酒精檢測(cè)系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2010(7): 109-111.

[4]郭東峰,李彥.基于物聯(lián)網(wǎng)的嵌入式酒駕自動(dòng)檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(3): 50-52.

[5]卓鄭安,朱文立,黃敏.基于GPRS的智能酒精濃度檢測(cè)儀設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(5): 53-56.

[6]陳麗,朱瑞祥,云超.基于單片機(jī)的防酒后駕駛控制系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2009,28(2): 100-102.

[7]朱明,王亞坤,宋莉莉,等.基于MC55i的車載酒精檢測(cè)系統(tǒng)[J].儀表技術(shù)與傳感器,2012(6): 107-109.

[8]周鴻武.基于單片機(jī)的酒精濃度檢測(cè)儀設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2012,34(2): 153-155.

————————————————

收稿日期:2014-04-04

作者簡(jiǎn)介:蘆芝萍(1977—),女,常州第四中學(xué)(中學(xué)一級(jí)),江蘇寶應(yīng)人、本科、學(xué)士。主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用。

猜你喜歡
發(fā)送給酒精編碼
上學(xué)路上好風(fēng)景
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
75%醫(yī)用酒精
《全元詩(shī)》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應(yīng)用
Genome and healthcare
跟蹤導(dǎo)練(一)(2)
酒精除臭
公告
關(guān)注微信,分享資訊,免費(fèi)獲取電子閱讀卡