101 年嵌入式 Linux 系統開發就業班




嵌入式 RFID 打卡系統
Embedded Linux Technology for RFID System


成員 : 王靖怡、藍志明、李昆龍、李明翰
                                     11/28/2012
前言


鑑於在生活上隨處可見許許多多與 RFID 相關的應
用,因此這次希望可以透過製作專題-差勤系統來
瞭解 RFID 。

RFID 看似簡單卻有著其迷人之處,從其應用在軍
事、醫療、門禁…等等,就可窺知一二。

所以藉由這次實作希望可以由淺入深發掘在各多層
面投入應用,化繁為簡地成就便利。
Outline   RFID 打卡 系統 -


              系統簡介
              系統架構
              顯示畫面
              技術說 明
              開發過程
              心得分享
              DEMO
              Q&A
RFID 打卡 系統 - 系統簡介
系統簡介

人員透過 RFID 識別卡 感應打卡 ,於 ARM 螢幕上顯示打卡 結果,
系統讀取卡 片資料,進行識別門禁管理並儲存打卡 記錄。

 RFID :應用 RFID Card 感應至 RFID Reader
 ARM : 讀取 RFID 卡片資料至 Embedded Linux
 QT4 : 應用 QT4 Embedded 開發控制程式及畫面
 QSQL :存取 QSQL 資料庫,儲存打卡記錄供運用
    並讀取關聯資料,作門禁管理
 LCD :顯示視窗畫面至觸控螢幕

 關鍵詞 : RFID 、 QT 、 C 、 SQLite   
   Embedded Linux 、 ARM 、 UART
使用設備



                          ARM
            RFID Reader
RFID Card
RFID 打卡 系統 - 系統架構圖
系統架構圖
RFID 打卡 系統 - 系統畫面
系統畫面 ( 一 )

打卡前 顯示畫面:
系統畫面 ( 二 )

打卡成功 顯示畫面:
RFID 打卡 系統 - 技術說 明
技術說明 ( 一 )

RFID 簡介:
 RFID ( Radio Frequency IDentification )
 為無線射頻辨識。為無線通訊技術的一種,
 經由無線電的信號來分辨所欲檢測的目標,
 並進行讀寫相關資料,不用與分辨系統之
 欲檢測目標間有著光學亦或是機械式的接觸。

 RFID 的無線電訊號經由調成無線電頻率的電磁場,
 使資料在物品上的標籤像似條碼標籤般地傳送,
 方便分辨與追蹤物品的始末。

 在技術上,分辨從識別器發出的電磁場中獲取
 所需的能量,並不需額外的電池供應,即可達到
 資料的讀取。
技術說明 ( 一 )

RFID Reader 磁卡 感應讀卡:
 主版 EVM : APP001 由 Microchip
PIC18F4520
  MCU 進行整體的控制。

 由 J1 延伸出作為磁卡資料讀取的感應器,
 是由感應線圈與感應電路版構成。

 當磁卡由感應線圈上之有效範圍經過時,
  MCU 即易且正確的讀取到資料,透過蜂鳴器
  回應資料讀取正常。
技術說明 ( 二 )

Qt 開發平台:
 Qt 是一個跨平台 ( 包括 Windows / X11 / Mac )
  的圖形介面開發庫 ( GUI software toolkit ) ,
  由挪威 Trolltech 公司開發 。

 Qt Class Library 是一個擁有超過 400 C++ 個類別,
  以繼承的方式,一層接著一層。

 考量原因 :
  開放源碼,較多應用資源可供延伸靈活運用,
 程式輕巧,適於開發嵌入式系統,
 支援多平台,便於日後系統之跨平台移植。
技術說明 ( 三 )

Qt :
 2008 年 Nokia 收購了挪威 Trolltech 公司。

 2011 年 3 月 Nokia 向芬蘭 Digia 公司交出了
Qt
  的商業許可與服務業務。

 2012 年 8 月 10 日 Nokia 將 Qt 剩餘業務完全出
售
  給 Digia 。

 Digia 計劃迅速將 Qt 開發框架運用到 Android 、
 iOS 以及 Windows 8 設備開發中。 。
技術說明 ( 四 )

SQLite :
 將讀取到的卡號,比對資料庫中的卡號對應資料,
  以進行門禁檢核及顯示打卡人資訊並儲存記錄。
 可搜尋出的資料顯示於 Qt 設計的介面欄位裡。
RFID 打卡 系統 - 開發過程
開發過程 ( 一 )


RFID - 磁卡資料正確的讀取:
1. RFID Reader: 將磁卡感應到之資料正確解讀

2. 由 Linux 通過 UART 正確讀取 RFID 資料

3. 由 QT 介面透過 UART 讀取資料顯示於視窗畫
   面

4.ARM 主版上嵌入式系統 LCD 板上,
  當 RFID 刷卡時,正確顯示資料及畫面
開發過程 ( 二 )

資料庫的建置:
1. 打卡 記錄:儲存每次打卡的卡號.時間,相關資訊。以卡號關聯會員資料。
2. 會員資料:卡號對應之員工工號.姓名.通行權限之對應管理。
開發過程 ( 三 )


Qt 程式:
 應用類別

 QTimer 計時器
  QPainter
            繪圖工具類別
    •Pen     畫筆
    •Brush   畫刷
開發過程 ( 三 )


Qt 程式:
應用函式
  •translate     設定座標為原點

   •rotate       旋轉座標軸

   •drawLine     畫線

   •drawText     顯示文字
RFID 打卡 系統 - 心得分享
心得分享

( 嵌入式系統 ) 此次課程,從起初的基礎原理,到進階課程實務應用
的了解及實作,讓我們認識到嵌入式系統的基礎概念與原理,並學會
基礎微處理器原理及模擬其電波情況,應用 C 語言,來作基本的控制
與應用,我們以 RFID 為實例,來了解其原理及如何控制與傳輸資料,
並透過 Linux 系統基本的指令操作,來練習進階課程實務應用的各主
題,讓我們漸漸具備應有的概念,並透過實作練習的實現,以能具備
所需知識素養與基礎技能。


( RFID 專題 ) 透過期末專題的製作,讓我們可以實際著手去完成整個
RFID 專案流程的基礎功能,實作各個環節,設法克服各環節所遇到的
各種瓶頸,以實現各環節所需的技術功能,真正可以實現一個成品。
打卡系統 - 心得分享


( 團隊合作 ) 透過小組成員共同合作,分工互助、分別研究、相互研
討、一起設法解決各環節所遇問題及瓶頸,找到解決方法,在達成系
統功能之際,彼此分享研究所得,讓大家都能有充實成長與收穫。



( 快速完成 )  此次專題,因時間有限,需在極短時限內完成主題功
能,加上同學之前沒有這方面經驗,技術面有需摸索與克服的地方,
無法準確確定我們能夠做到什麼樣的程度,故我們分階段去達成任務
目標,實現專案功能。起初以存取檔案方式,讀取 RFID 卡號,再研究
改寫為直接以 QT 透過 UART 的 RS232 資料傳輸介面直接控制取得讀
卡機 Card Reader 解讀的資料,並改為存儲資料庫,以供進階管理及
應用。
心得分享


( 實務應用能力 ) 本次 RFID 的專題,雖然跟真正的差勤系統相比,功
能性還有不足,但是能夠跟著一起上課的同學真正的分工合作去學習去
完成一項成品,將本次課程中,所學習到的專業知識派上用場,學習試
著運用在企業實務會用到的功能上,並讓所有參與此次專題的成員發揮
各自所學及專長,熟練課堂上所學之理論與實作,在團體研究實現的實
際過程中,彼此增進所學,透過實際專題之應用,讓組員能夠真正地熟
悉 RFID 整個運用流程及原理的經驗,以助益於日後在實務上嵌入式系
統相關領域之實作與應用能力。
RFID 打卡 系統 - D E M O
DEMO
DEMO
RFID 打卡 系統 - Q & A
Q&A


1.Linux 下, UART 所讀取的卡片資料被切割分段

 Ans: 調整 VTIME 與 VMIN 至最佳值
 。

2.Linux 下, QT 需透過 UART 將讀取的卡片資料顯示於螢幕畫
面上
   Ans: 搜尋網站所提供的 QT UART 公版軟體,進而研
   究
      相關細節將資料顯示於螢幕畫面上。

嵌入式 RFID 打卡系統

  • 1.
    101 年嵌入式 Linux系統開發就業班 嵌入式 RFID 打卡系統 Embedded Linux Technology for RFID System 成員 : 王靖怡、藍志明、李昆龍、李明翰 11/28/2012
  • 2.
    前言 鑑於在生活上隨處可見許許多多與 RFID 相關的應 用,因此這次希望可以透過製作專題-差勤系統來 瞭解RFID 。 RFID 看似簡單卻有著其迷人之處,從其應用在軍 事、醫療、門禁…等等,就可窺知一二。 所以藉由這次實作希望可以由淺入深發掘在各多層 面投入應用,化繁為簡地成就便利。
  • 3.
    Outline RFID 打卡 系統 - 系統簡介 系統架構 顯示畫面 技術說 明 開發過程 心得分享 DEMO Q&A
  • 4.
    RFID 打卡 系統- 系統簡介
  • 5.
    系統簡介 人員透過 RFID 識別卡感應打卡 ,於 ARM 螢幕上顯示打卡 結果, 系統讀取卡 片資料,進行識別門禁管理並儲存打卡 記錄。 RFID :應用 RFID Card 感應至 RFID Reader ARM : 讀取 RFID 卡片資料至 Embedded Linux QT4 : 應用 QT4 Embedded 開發控制程式及畫面 QSQL :存取 QSQL 資料庫,儲存打卡記錄供運用 並讀取關聯資料,作門禁管理 LCD :顯示視窗畫面至觸控螢幕 關鍵詞 : RFID 、 QT 、 C 、 SQLite    Embedded Linux 、 ARM 、 UART
  • 6.
    使用設備 ARM RFID Reader RFID Card
  • 7.
    RFID 打卡 系統- 系統架構圖
  • 8.
  • 9.
    RFID 打卡 系統- 系統畫面
  • 10.
    系統畫面 ( 一) 打卡前 顯示畫面:
  • 11.
    系統畫面 ( 二) 打卡成功 顯示畫面:
  • 12.
    RFID 打卡 系統- 技術說 明
  • 13.
    技術說明 ( 一) RFID 簡介:  RFID ( Radio Frequency IDentification ) 為無線射頻辨識。為無線通訊技術的一種, 經由無線電的信號來分辨所欲檢測的目標, 並進行讀寫相關資料,不用與分辨系統之 欲檢測目標間有著光學亦或是機械式的接觸。  RFID 的無線電訊號經由調成無線電頻率的電磁場, 使資料在物品上的標籤像似條碼標籤般地傳送, 方便分辨與追蹤物品的始末。  在技術上,分辨從識別器發出的電磁場中獲取 所需的能量,並不需額外的電池供應,即可達到 資料的讀取。
  • 14.
    技術說明 ( 一) RFID Reader 磁卡 感應讀卡:  主版 EVM : APP001 由 Microchip PIC18F4520 MCU 進行整體的控制。  由 J1 延伸出作為磁卡資料讀取的感應器, 是由感應線圈與感應電路版構成。  當磁卡由感應線圈上之有效範圍經過時, MCU 即易且正確的讀取到資料,透過蜂鳴器 回應資料讀取正常。
  • 15.
    技術說明 ( 二) Qt 開發平台:  Qt 是一個跨平台 ( 包括 Windows / X11 / Mac ) 的圖形介面開發庫 ( GUI software toolkit ) , 由挪威 Trolltech 公司開發 。  Qt Class Library 是一個擁有超過 400 C++ 個類別, 以繼承的方式,一層接著一層。  考量原因 : 開放源碼,較多應用資源可供延伸靈活運用, 程式輕巧,適於開發嵌入式系統, 支援多平台,便於日後系統之跨平台移植。
  • 16.
    技術說明 ( 三) Qt :  2008 年 Nokia 收購了挪威 Trolltech 公司。  2011 年 3 月 Nokia 向芬蘭 Digia 公司交出了 Qt 的商業許可與服務業務。  2012 年 8 月 10 日 Nokia 將 Qt 剩餘業務完全出 售 給 Digia 。  Digia 計劃迅速將 Qt 開發框架運用到 Android 、 iOS 以及 Windows 8 設備開發中。 。
  • 17.
    技術說明 ( 四) SQLite :  將讀取到的卡號,比對資料庫中的卡號對應資料,   以進行門禁檢核及顯示打卡人資訊並儲存記錄。  可搜尋出的資料顯示於 Qt 設計的介面欄位裡。
  • 18.
    RFID 打卡 系統- 開發過程
  • 19.
    開發過程 ( 一) RFID - 磁卡資料正確的讀取: 1. RFID Reader: 將磁卡感應到之資料正確解讀 2. 由 Linux 通過 UART 正確讀取 RFID 資料 3. 由 QT 介面透過 UART 讀取資料顯示於視窗畫 面 4.ARM 主版上嵌入式系統 LCD 板上, 當 RFID 刷卡時,正確顯示資料及畫面
  • 20.
    開發過程 ( 二) 資料庫的建置: 1. 打卡 記錄:儲存每次打卡的卡號.時間,相關資訊。以卡號關聯會員資料。 2. 會員資料:卡號對應之員工工號.姓名.通行權限之對應管理。
  • 21.
    開發過程 ( 三) Qt 程式: 應用類別 QTimer 計時器   QPainter  繪圖工具類別 •Pen 畫筆 •Brush 畫刷
  • 22.
    開發過程 ( 三) Qt 程式: 應用函式 •translate 設定座標為原點 •rotate 旋轉座標軸 •drawLine 畫線 •drawText 顯示文字
  • 23.
    RFID 打卡 系統- 心得分享
  • 24.
    心得分享 ( 嵌入式系統 )此次課程,從起初的基礎原理,到進階課程實務應用 的了解及實作,讓我們認識到嵌入式系統的基礎概念與原理,並學會 基礎微處理器原理及模擬其電波情況,應用 C 語言,來作基本的控制 與應用,我們以 RFID 為實例,來了解其原理及如何控制與傳輸資料, 並透過 Linux 系統基本的指令操作,來練習進階課程實務應用的各主 題,讓我們漸漸具備應有的概念,並透過實作練習的實現,以能具備 所需知識素養與基礎技能。 ( RFID 專題 ) 透過期末專題的製作,讓我們可以實際著手去完成整個 RFID 專案流程的基礎功能,實作各個環節,設法克服各環節所遇到的 各種瓶頸,以實現各環節所需的技術功能,真正可以實現一個成品。
  • 25.
    打卡系統 - 心得分享 (團隊合作 ) 透過小組成員共同合作,分工互助、分別研究、相互研 討、一起設法解決各環節所遇問題及瓶頸,找到解決方法,在達成系 統功能之際,彼此分享研究所得,讓大家都能有充實成長與收穫。 ( 快速完成 )  此次專題,因時間有限,需在極短時限內完成主題功 能,加上同學之前沒有這方面經驗,技術面有需摸索與克服的地方, 無法準確確定我們能夠做到什麼樣的程度,故我們分階段去達成任務 目標,實現專案功能。起初以存取檔案方式,讀取 RFID 卡號,再研究 改寫為直接以 QT 透過 UART 的 RS232 資料傳輸介面直接控制取得讀 卡機 Card Reader 解讀的資料,並改為存儲資料庫,以供進階管理及 應用。
  • 26.
    心得分享 ( 實務應用能力 )本次 RFID 的專題,雖然跟真正的差勤系統相比,功 能性還有不足,但是能夠跟著一起上課的同學真正的分工合作去學習去 完成一項成品,將本次課程中,所學習到的專業知識派上用場,學習試 著運用在企業實務會用到的功能上,並讓所有參與此次專題的成員發揮 各自所學及專長,熟練課堂上所學之理論與實作,在團體研究實現的實 際過程中,彼此增進所學,透過實際專題之應用,讓組員能夠真正地熟 悉 RFID 整個運用流程及原理的經驗,以助益於日後在實務上嵌入式系 統相關領域之實作與應用能力。
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Q&A 1.Linux 下, UART所讀取的卡片資料被切割分段 Ans: 調整 VTIME 與 VMIN 至最佳值 。 2.Linux 下, QT 需透過 UART 將讀取的卡片資料顯示於螢幕畫 面上 Ans: 搜尋網站所提供的 QT UART 公版軟體,進而研 究 相關細節將資料顯示於螢幕畫面上。