中華大學通訊工程學系 期末專題報告: RFID應用 指導教授:田慶誠 教授 學生:趙子帆 通訊五甲 b09422001
摘要 現在是一個資訊爆炸很久的時代,生活中充滿各種大大小小的智慧型商品,功能之強大與資料量的龐大,是前所未有的。 以手機為例,這個時期(2009/06)已經是第二批以iPhone為首的智慧型手機正要上市的時間點,而手機內部的容量,已經不僅僅光為了”手機”的功用去擴充,而是為了更“方便”的“生活”而增加,用以使用更多方便的功能。
目的 RFID在此時已經不算是一個新的科技,但是絕對可以算是一個不可或缺的技術。 而RFID的應用範圍更是超乎想像,從生活的每個角落都有其影響的空間,而我這次主要研究的概念來自”城市導覽”。只要結合RFID的感應裝置與智慧型手機龐大的資料量,輕輕鬆鬆的就可以完成自助型的城市導覽,不管是在哪裡?要去哪裡?要做什麼?甚至不管你是哪國人,只需要簡單的動作就可以得到所需的資訊。在城市讀取一下就知道這是哪,有什麼名勝可以怎麼玩,要吃飯走到餐廳讀一下,就知道有什麼好吃及其特色,到名勝區讀一下,完完整整的故事就在眼前,甚至不用導遊!而且不管哪國人只要輕輕點一下你所需要的語系,馬上就換成你要的語言,簡單就可以完成一個人的自助旅行! 而我這次的報告則是以餐廳為例。
使用硬體 個人電腦 Reader(讀取器) Tag(標籤) RS232轉USB線 連結RS232與Reader的轉接線
Reader 荷蘭飛利浦公司的RF開發模組 工作頻率為13.56 MHz, 讀取距離2~5cm 傳輸介面:RS232轉USB
Tag RS232轉USB線 RS232連結Reader接線 使用最普遍的制定式卡片 頻率:13.56MHz 傳輸速率:106 K/s 具有個別ID方便運用 RS232轉USB線 RS232連結Reader接線
外部工作示意圖 Tag Reader 讀取資料 顯示資料 資料庫 呼叫資料
程式時序圖 時間軸 工作程序 開啟 專案 執行 掃描 Tag 資料讀取 轉換ID 為16進制碼 連結 RS232 副程式 持續讀取 選擇要 顯示的資料 顯示 介面 執行 模組 判定是否 讀取成功 失敗 搜尋 對應資料 成功 模組 連結完成 顯示 讀取ID 顯示資料
構想概念畫面(餐廳) 智慧型手機 靠近餐聽Tag 顯示餐廳資料
構想概念模擬圖 靠近所需的Tag(餐廳用) 若讀取成功燈會亮起 假設我現在手持的是 已加裝Reader的裝置 便可以呼叫自己 所需的資料
實際操作畫面 剛開始的電腦介面模組
Reader線路已”接上”電腦 但尚未命令連結程式
Tag的ID 按下掃描鍵若讀取成功會顯示Tag的ID之後便可以選擇想要顯示的資料
Reader的燈有亮代表讀取成功
顯示所需要的資料 並可以切換語系
先點一下所要顯示的語言 (內建為中文), 之後再次點選要顯示的資料即可
程式碼綠色為解說 開頭宣告: Public Class Form1 宣告使用的是表單Form1 Dim id As Long, a As Integer, x As Long 宣告變數 Dim b As String, version As String, type As String, l As String
執行掃描的程式: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click程式執行的宣告及執行條件 Dim i As Integer Dim n As Integer Dim port As Integer 各變數的宣告 Dim found As Boolean Dim baudrate As Long Button1.Enabled = False 表示Button1無法再按 baudrate = 19200 鲍率設定 AxMF5x1.Baudrate = baudrate If AxMF5x1.PortOpen = True Then AxMF5x1.PortOpen = False 如果MF5x1在使用中,則關掉重啟 End If version = AxMF5x1.gnetVersion 顯示模組的版本 Label1.Text = version For i = 0 To 255 利用一個迴圈去自動搜尋Reader接上的COMPORT port = Val(Mid(AxMF5x1.EnumCommPort(i), 4)) 接續下頁
If port > 0 Then 若搜尋到了則進行連結 AxMF5x1.CommPort = port AxMF5x1.PortOpen = True If AxMF5x1.PortOpen Then n = AxMF5x1.gnetPolling(0) If n Then AxMF5x1.mfAutoMode() found = True Else found = False End If If found Then Exit For AxMF5x1.PortOpen = False Next i If found Then 若連結成功則跳出OK的視窗 MsgBox("OK") MsgBox(“NO RWD”) 失敗則跳出NO RWD的視窗 Button1.Enabled = True 讓按鈕可以在被按 ID_() End Sub 程式結束
持續讀取ID: 離開程式: Private Sub MF5x1_OnComm() ID_() 進行一個無限迴圈持續執行ID_副程式 End Sub Sub ID_() id = AxMF5x1.mfAnticollision id等於讀取到的資料 If id Then 若讀取資料成功 TextBox3.Text = Hex(id) 以十六進制碼顯示資料 End If 離開程式: Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click End 結束整個程式 End Sub
資料庫1: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If l = 1 Then 語系的判別 If id = Val("8207034") Then 搜尋對應資料 PictureBox2.ImageLocation = “c:\Documents and Settings\Administrator\My Documents\專題\043.jpg“ 顯示資料 ElseIf id = Val("-2009487018") Then PictureBox2.ImageLocation = “c:\Documents and Settings\Administrator\My Documents\專題\ss4.jpg“ “ ”內為資料儲存位置 End If ElseIf l = 0 Then If id = Val("8207034") Then PictureBox2.ImageLocation = "c:\Documents and Settings\Administrator\My Documents\專題\041.jpg" PictureBox2.ImageLocation = "c:\Documents and Settings\Administrator\My Documents\專題\ss3.jpg" End Sub
資料庫2:與資料庫1差別在於所選擇需要的資料不同 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If id = Val("8207034") Then PictureBox1.ImageLocation = "c:\Documents and Settings\Administrator\My Documents\專題\004.jpg" ElseIf id = Val("-2009487018") Then PictureBox1.ImageLocation = "c:\Documents and Settings\Administrator\My Documents\專題\ss.jpg" End If End Sub
中英切換: Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged 切換顯示介面的語系 Button3.Text = “Picture“ Button2.Text = "Ingredients &Method" Button1.Text = "scan" Button4.Text = "Exit" l = 1 End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged Button3.Text = "菜色" Button2.Text = "食材與作法" Button1.Text = "掃描" Button4.Text = "離開" l = 0 End Class