Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 40

財 團 法 人 資 訊 工 業 策 進 會

嵌入式系統設計班 第二十三期

專題題目 : 如來神機
指導老師 : 李 志 賢 組別 : 第一
組長 組
組長 :
黃 馨
97951051 楊書楷
老師
組員:
孫 文
97951032 陳宣佑
駿 老師 97951038 吳政傑
97951039 黃韋哲
97951052
中華民國九十七年九月十二日 黃志成
97951055 丁家驊 1
一、研究動機
近年來,對人 / 車等行動目標物做有效的追蹤及
監控、適時的緊急救援服務等需求已日益增加。

利用全球定位系統之技術,使得行動目標物的即
時定位的需求已成為可能。

無線通訊技術的發展,對目標物進行遠端監控亦
成為可能。

故結合全球定位系統及無線通訊之技術已成為近
年來之發展趨勢。
2
二、系統目標
本專題目標為結合 GPS ( 提供定位服務 ) 、
GSM/GPRS 模組 ( 提供無線數據傳輸 ) ,並在
ARM9 Embedded system platform 上建置人 / 車監
控裝置。

設計即時監控的伺服端,且結合市面上現有的電
子地圖,達到立即觀察目標物所在位置之目的。

GSM/GPRS 模組

ARM9 開發板

3
三、系統架構

Linux Web Server

ARM 2410
With GPRS Module
GPRS 網路

4
四、系統功能描述

SOS 簡訊
GPRS 訊號

伺服器 (Server) 端
定位簡訊

使用者 Client

 Client 端能透過 GPRS 網路回報 GPS 定位訊號至伺服器

 Client 端能透過 GSM 網路發出求救簡訊至手機

 透過傳簡訊方式向 Client 端要求傳送定位訊號

5
四、系統功能描述

GSM 簡訊

看車功能 :Client 端被移動時, 將自動以簡訊方式回報車輛位置

6
四、系統功能描述

 Server 端能記錄 Client 端之移動路徑


7
五、 軟硬體需求

ARM Samsung S3C2410 晶片


硬體 GPS 、 GPRS 模組 & 個人手機
X86 電腦主機
Linux
軟體 Google Map API
Apache

8
六、團隊分工表

姓名 職掌
陳宣佑 Web Server 、Google Map API 架設
丁家驊 Web Server 、Google Map API 架設
黃韋哲 GPS 定位技術作成
黃志成 GPS 定位技術作成
楊書楷 GPRS 系統架構作成
劉育成 GPRS 系統架構作成
吳政傑 GPRS 系統架構作成

9
硬體規格
SIM300-EVB 模組 ( 正面 )

程式載入開關 選擇輸入電源鍵

蜂鳴器

模組本體 電源鍵

外接天線 SIM 卡插槽

10
SIM300-EVB 模組 ( 背面 )

外接天線

RS-232 接頭
耳機接頭

11
GPS Receiver (RS-232)

12
客戶端 GPS 及 GPRS 之結合

GPS

GPRS GPRS 太陽能電源

13
專題實作
一、開機選單
二、看車模式流程
三、軌跡追踨流程
四、座標轉換問題
五、簡訊傳遞流程
六、 Google Map API 介紹

14
一、開 機 選 單

使用 Switch-case
1. 軌跡追踨
模擬硬體指撥開關
2. 看車模式
default
3. 功能設定
輸入號碼錯誤

case1 case2 case3

軌跡追踨 看車模式 功能設定


副程式 副程式 副程式

15
二、軌跡追踨流程
GPS_init()
GPRS_init() New no
Message
RD_GPS_Data()
yes

SentDataToServer()
no
30sec GetPhoneNum()

yes

GPS_Data_trs() SentDataToPhone()

Server

16
三、看車模式流程
GPS_init()
定位 =0;

RD_GPS_Data() GPRS_init()
初始值 =1
定位

=0 GPS_Data_trsF() SentMessPhone()

RD_GPS_Data()

CompareData()
GPS_Data_trsF()
軌跡追踨
yes
SaveFirData() 移車
定位 =1;
no

17
四、座標轉換問題

$GPRMC,161149.000,V,2458.1403,N,12111.3714,E,,,200808,,*1A
緯度 :2458.1403 ,經度 :12111.3714
NMEA0183 定義格式 : ( 度 ) 度度分分 . 分分分分
GoogleMap 所需格式 : ( 度 ) 度度 . 度度度度度度

所以需將 GPS 收到的經緯度 ‘ 分’ 的部份


除以 60 = 度

24+(58.1403/60)=24.969005
121+(11.3714/60)=121.189533

18
四、座標轉換問題 ( 續 )
所以我們輸入給 GoogleMap 的字串為
24.969005,121.189523

疑 ~ 轉換後所顯示
的值怎麼跟 GPS
不一樣呢?

是誤差嗎?
為什麼在 GoogleMap 上面看轉換前與轉換後的值會不一樣呢?
轉換前 = 24 58.1403, 121 11.3714
轉換後 = 24° 58' 8.42',121° 11' 22.28'
不,只是純粹單位轉換的問題
  24 度 58 分 8.42 秒 -- 我們換算成度 
 24+ (58/60) + (8.42/3600)= 24.969005

19
GPS 資料 ( 尚未處理 )

20
GPS 資料格式說明
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>

1) 標準定位時間( UTC time )格式:時時分分秒秒 . 秒秒秒


( hhmmss.sss )。
2) 定位狀態, A = 資料可用, V = 資料不可用。
3) 緯度,格式:度度分分 . 分分分分( ddmm.mmmm )。
4) 緯度區分,北半球( N )或南半球( S )。
5) 經度,格式:度度分分 . 分分分分。
6) 經度區分,東( E )半球或西( W )半球。
7) 相對位移速度, 0.0 至 1851.8 knots 。
8) 相對位移方向, 000.0 至 359.9 度。實際 。
9) 日期,格式:日日月月年年( ddmmyy )。
10) 磁極變量, 000.0 至 180.0 。
11) 度數。
12) Checksum.( 檢查位元 ) 。

21
NMEA 0183
NMEA is a standard protocol, use by GPS receivers to transmit data.
NMEA output is EIA-422A but for most purposes you can consider it
RS-232 compatible. Use 4800 bps, 8 data bits, no parity and one stop
bit ( 8N1 ). NMEA 0183 sentences are all ASCII. Each sentence
begins with a dollarsign ($) and ends with a carriage return linefeed
(<CR><LF>). Data is comma delimited. All commas must be included
as they act as markers. Some GPS do not send some of the fields. A
checksum is optionally added (in a few cases it is manatory).
Following the $ is the address field aaccc. aa is the device id. GP is
used to identify GPS data. Transmission of the device ID is usually
optional. ccc is the sentence formatter, otherwise known as the
sentence name.

http://www.kh-gps.de/nmea-faq.htm

22
AT 指令集 (GSM 簡訊功能 )
• AT
測試 RS-232 連線
• AT+CMGF=1
選擇訊息格式
• AT+CMGS=“ ”
欲發送訊息的號碼 按下 ^Z 後發送

• +CMGS: 次數
簡訊發送的次數
• +CMTI:
儲存訊息及位置

23
五、簡訊傳遞流程 ( 看車服務 )

設定簡訊格式 AT+CMGF=1

將電話號碼與 AT+CMGS 字串結合

輸入預設訊息及經緯度字串

發送簡訊

24
五、簡訊傳遞流程 ( 回覆定位訊號 )
設定簡訊格式 AT+CMGF=1 擷取電話號碼

錯誤
進入迴圈 for(n=1;n<=20;n++) 比對密碼

正確

將 n 處理為字串 將 GPS 座標加入簡訊內容

不予回應

開啟簡訊指令 AT+CMGR=n 發送簡訊

偵測訊息中是否有 +CMGR 刪除簡訊 AT+CMGD=n

25
AT 指令集 (GPRS 連線功能 )

• AT
測試 RS-232 連

• AT+CSTT=“ ”
電信公司分配之虛擬 IP
登錄電信公司的
APN
• AT+CIICR
GPRS 網路註冊 連線成功
• AT+CIIFSR
取得虛擬 IP
• AT+CIPSTART
指定伺服端 IP 26
使用 Google Map 之動機
• 文獻探討:
學長專題為將 GPS 訊號傳到超級終端機以文字顯示
,或是用 PaPaGo 圖資並以地圖顯示軟體
PowerMap3D 顯示。
• 專題目標:
與學長專題不同,本組專題為在 Server 端監控行
動設備的目前方位,所以若是可以透過網路瀏覽器監看
將顯得方便及直覺。
• Google 推出的 Google Map API 服務使得將地圖嵌
入網頁及透過網路瀏覽器監看相當便利且其 GUI 介面最
好看,大品牌,免費圖資,不斷推出新應用功能,因此
成為本組選定的專題實現工具。
27
Google Map API 介紹
 AJAX :
AJAX 全名為「 Asynchronous JavaScript and XML 」 ( 非同步 JavaScript
和 XML) 是一種創建互動式網頁應用的網頁開發技術。 AJAX 不是指一
種單一的技術,而是有機地利用了一系列相關的技術。
XMLHttpRequest 可說 是 Ajax 得以實現之技術核心。 Google Maps 可
說是 Ajax 應用的代表作。 Google 並以 JavaScript 提供了一套用來操作
Google Maps 的 Google Maps API 。
參考網站: http://code.google.com/apis/maps/
 GoogleMapAPI 實用語法:
• map.addControl(new GLargeMapControl()) // 左側控制面版
• map.addControl(new GMapTypeControl()) // 右上控制面版
• var point = new GLatLng(24.587416, 120.79805) // 給定一個座標點
• map.setCenter(point, 13) // 設定地圖中心點,及地圖放大倍率
• var TruckIcon = new GIcon(G_DEFAULT_ICON) // 自訂圖標
• var polyline = new GPolyline([new GLatLng(24.5243333,120.72636666
7), ], “#ff0000”, 6) // 加入座標點,以繪出路徑多邊形線段。
28
GoogleMap 嵌入網站之步驟

• 首先確認 Google Map 置於網頁之目錄


ex: 本組在 Fedora 下架一個 WebServer, 網址為
http://140.115.236.30/Mpgernerater.html
• 然後到 Google 網址 : http://
code.google.com/apis/maps/signup.html 以
http://140.115.236.30/的 URL 網址去申請 API 服務以得到一
組對應到此 URL 的機碼 (Key) ,再將機碼 (Key) 填在
Key= 之後就可直接用 html 語法及嵌入 google map api 的語
法來寫地圖網頁。
src=\"http://maps.google.com/maps?file=api&v=2&\
key=ABQIAAAAELs2TELfwrQje8ZT6lH3fRQurYD5e3EHaEjLj
ypIUoUKEgnkiBR9eCEhNCE4YOR4FzNGKeReC-MqNw\"

29
Server 運作步驟

• 首先,在 Fedora 下開啟一個終端機,執行 Server_GPS.o 執


行檔,此時 Server 會等待行動設備 Client 端的連線;等到
Client 端把 GPS 經緯度字串傳過來, Server 便會把經緯度
字串存入一個字串陣列,之後 Server 便會把這些值丟給
API ,再輸出成嵌入 API 的網頁。

• 這時再打開 Firefox 瀏覽器並於網址列輸入 :


http://140.115.236.30/Mapgernerater.html
就能在 google map 上看到行動設備所在位置。

30
程式流程圖
先 include 進來 主程式 main ()開始,
gmapapi.h (其為內嵌 先宣告一些 Socket
GoogleMapAPI 的 Html 網頁 Server 會用到的
內容,以及接收&處理經緯 Structure 及變數。
度封包的字串陣列。)
Client 端連線

Socket ()

Bind ()
( Blocking
Waiting )
Accept ()
Listen ()
31
進入 For 迴圈,每次只
Recv 一個經緯度封包
封包是否接收
,存入 gps[][] 字串緩
完畢
衝陣列。

延遲 10 秒 Yes
把新收到的封包,加入 No
為最新的路徑點。

Break 出 For 迴
把最新的路徑點,設為 清空&還原某些字

地圖中心點。 串陣列的初始值

把地圖標示圖示 ( 小 把串接完的網頁內容 關閉此次 Client


白), 字串輸出成網頁 連線。
設定為中心點。

用 Strcat 開始作網頁各 輸出軌跡歷史紀錄


段落字串的串接。 文字檔。

32
專題完整度報告
 預定目標為藉由 ARM 板與 Web Server 之連線以達到預設之功能

 由於時程影響,只以 PC 上撰寫所須功能之程式。

 故在 PC 上,已可達成以主選單方式選擇功能模式,達到預設之
功能。
專題完成進度 預計目標

GPS 模組

GSM/GPRS 模組

GSM/GPRS 模組

33
專題心得
• 題目訂定 應拿捏得宜
• 多開會 多討論
• 計畫趕不上變化 計畫可隨進度調整
• 強者無怨言 弱者不缺席
• 以 開心做專題 為目標
• 壓力難免有 要適時宣洩
• 報名晚一梯 可省六萬塊
• 報名晚一梯 可獨享 ARM 9 一塊
• 只要有心 人人都是食神

34
35
36
經歷六個月的辛勞付出
37
我們終於結業了 !
38
如來神 將指引各位同學 迎向光明的未
來! 39
簡報完畢,敬請指教 !

40

You might also like