一種簡便的GPS車輛跟蹤系統(tǒng)
組成部分
1.GPS接收器(garmin gps 35),它提供車輛的位置信息
2.gsm模塊(siemens tc35),用于將sms(文本信息)發(fā)送到預(yù)先設(shè)定的移動電話
3.ibutton(ds1990a), 用來驗證駕駛?cè)藛T是否被授權(quán)使用車輛
4.parallax公司的bs2p控制模塊,連接一個basic stamp開發(fā)板(www.parallaxinc.com)。
5.軟件:
epd-v2-01-3e.bps:basic stamp主程序
1wire-id.bsp:讀取ds1990a ibutton序列號子程序
原理框圖
gps接收器提供的信息以“nmea”格式輸出(nmea是美國國家航海電子協(xié)會縮寫),緯度和經(jīng)度信息從$gprmc文句中提取出來,(按格式:"北緯abc","西經(jīng)def"輸出)。
gsm模塊將sms信息(文本信息)發(fā)送到預(yù)置的移動電話上。
而ds1990a ibutton (即所謂的“序列號ibutton”)用于身份驗證或“鑰匙”。它包含一個全球唯一的6字節(jié)長的身份識別號碼和2字節(jié)長的crc
校驗碼。序列號為“只讀”類型,一個系統(tǒng)可以配備2枚ibutton鑰匙,其中一枚作為備用或提供給第二位授權(quán)司機。當(dāng)然,也可以方便地配備更多的鑰匙。
二、工作原理
系統(tǒng)啟動過程中,basic stamp不斷掃描,檢測:
· ibutton是否插入輸入端?
· 汽車點火器是否工作?
要想汽車正常工作,該車被授權(quán)的ibutton必須插入讀寫口,然后,汽車將在設(shè)定的25秒內(nèi)啟動。
如果出現(xiàn)下列情形,則被認為出現(xiàn)非法入侵:
· 已檢測到汽車點火器開始工作,而合法的ibutton并未在要求的25秒內(nèi)啟動汽車。
· 如果汽車啟動后25秒內(nèi)沒有ibutton連接到系統(tǒng),同樣被認為非法入侵。
一旦確定發(fā)生了非法入侵,basic stamp就開始查詢來自gps接收機的信息。等待$gprmc信息出現(xiàn)在gps接收機的串行輸出端口。
· bs2p把sms信息,包括從gps接收到的gprmc文本中提取的信息發(fā)送到預(yù)先設(shè)定的移動電話。
· 每隔2分鐘上述過程重復(fù)一次,以便讓車主時刻知道車輛位置。
三、系統(tǒng)集成
該設(shè)計的核心是basic stamp,它把gps接收機、gsm調(diào)制解調(diào)器、ibutton及汽車點火器檢測有機的連接在一起,構(gòu)成一個完整的系統(tǒng)。
點火線用于檢測汽車是否被發(fā)動,當(dāng)然,也可使用其他指示器(比如:超聲波傳感器或其他防入侵檢測器等。)
· gps接收器輸出連接到basic stamp的p0。
· gsm接收模塊的輸入連接到basic stamp的sout或引腳 1。
· basic stamp的p1引腳連接到點火器,輸入高電平表明點火器在工作,反之亦然。
· p15用于與ibutton接口。
需要提醒的是,basic stamp系列產(chǎn)品中bs2p支持ibutton的1-wire總線接口協(xié)議,而早期產(chǎn)品不支持。
登錄移動電話號碼
可按如下方法編程,輸入移動電話號碼:
======================================================
debug "+44********** " enter the destination mobile phone number here
======================================================
輸入號碼必須按下列格式:
+國家代碼(上例中的44代表英國代碼) +個人移動電話號碼。
該號碼將是系統(tǒng)發(fā)送管理信息的目的號碼,包括車輛的位置信息。
登錄ibutton序列號:
輸入將要使用的ibutton序列號,如果只有一個ibutton在該系統(tǒng)使用,則需要將該號碼重復(fù)寫入為備用ibutton預(yù)留的存儲器中。
ibutton代碼的寫入如下列程序所示。本例中,舉例用的ibutton代碼已被輸入系統(tǒng)。實際寫入代碼時,請用具體ibutton的代碼代替范例程序中“$”符號后面的數(shù)字,序列號以16進制表達。
一個單獨的子程序可用于顯示指定ibutton的序列號,該串行號碼被登錄到最終程序代碼,再下載到basic stamp處理器中。
.
“登錄第一個ibutton序列號:”
if romdata(0) <> $03 then checksecond first byte
if romdata(1) <> $f0 then checksecond
if romdata(2) <> $bc then checksecond
if romdata(3) <> $08 then checksecond
if romdata(4) <> $10 then checksecond
if romdata(5) <> $00 then checksecond
if romdata(6) <> $00 then checksecond
if romdata(7) <> $30 then checksecond eighth byte
goto buttonok
checksecond:
“登錄第二個或其余的ibutton序列號:”
if romdata(0) <> $01 then badbutton first byte
if romdata(1) <> $68 then badbutton
if romdata(2) <> $21 then
badbutton
if romdata(3) <> $24 then badbutton
if romdata(4) <> $08 then badbutton
if romdata(5) <> $00 then badbutton
if romdata(6) <> $00 then badbutton
if romdata(7) <> $31 then badbutton eighth byte
完成上述修改后即可跟蹤汽車。