Top Banner
1/91 第第第RFID 第第第第第第 本本本本 RFID 本本本 Windows Form 本本 本本本本 本本本本 () 本本本本本 本本本本 MS Visual Studio.NET 2008 本 本本本本本本 本本本本 MS Access 本 MS SQL Server 本 本本本 MSCOMM SerialPort 本 Winsock 本本本本本本 本本本本本本本 RFID 本本本本本本本本本本本本 本本本本本本本本本本本 。, 本本本本本本本本本本本本 CH6 本本本本本本本本
97

第六章、 RFID 資訊系統開發

Jan 03, 2016

Download

Documents

第六章、 RFID 資訊系統開發. 本章針對 RFID 系統中 Windows Form 架構(單機版)的開發方式進行說明,內容使用 MS Visual Studio.NET 2008 為系統開發平台,配合後端 MS Access 或 MS SQL Server 資料庫及 MSCOMM 、 SerialPort 與 Winsock 等三通訊元件,介紹整合後連接 RFID 讀取器擷取資料的設計方式。本章內的所有範例程式,讀者都可以在本書光碟內的 CH6 目錄內找到並應用。. 大 綱. 6-1 MSCOMM 物件 6-2 ACCESS 資料庫 6-3 SerialPort 物件 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第六章、 RFID 資訊系統開發

1/91

第六章、 RFID資訊系統開發

本章針對 RFID 系統中 Windows Form 架構(單機版)的開發方式進行說明,內容使用 MS Visual Studio.NET 2008 為系統開發平台,配合後端 MS Access 或 MS SQL Server 資料庫及 MSCOMM 、 SerialPort與 Winsock 等三通訊元件,介紹整合後連接 RFID讀取器擷取資料的設計方式。本章內的所有範例程式,讀者都可以在本書光碟內的 CH6 目錄內找到並應用。

Page 2: 第六章、 RFID 資訊系統開發

2/91

大 綱

6-1 MSCOMM 物件 6-2 ACCESS 資料庫 6-3 SerialPort 物件 6-4 Winsock 6-5 SQL Server 資料庫 6-6 藍芽讀取器 6-7 POS 範例再討論

Page 3: 第六章、 RFID 資訊系統開發

3/91

RFID資訊系統開發 本章主要介紹使用 MS Visual Studio.NET 20

08 (以下簡稱 VS.NET 2008 )開發 Windows Form 程式來與 RFID 讀取器進行溝通與讀取卡號及資料。

此部份程式主要是電腦與讀取器的連接溝通,溝通介面主要為 RS232 、 USB 或是 Ethernet ,此些部分主要是透過 VS.NET 2008 提供的物件來完成,以下將依不同物件的使用來介紹

Page 4: 第六章、 RFID 資訊系統開發

4/91

MSCOMM 物件

Page 5: 第六章、 RFID 資訊系統開發

5/91

MSCOMM 物件 此物件在 Visual Basic 6.0 時代時已經存在,

也是以往很多系統用來擷取 RS232 與 USB設備訊號的物件

此物件到了 VS.NET 2005 與 VS.NET 2008並不是預設有的物件,所以需要透過「加入工具箱」的方式來完成

首先,請使用 VS.NET 2008 建立一個新專案,專案名稱是 CH6-1 (圖 6-1 )

Page 6: 第六章、 RFID 資訊系統開發

6/91圖 6-1 、 CH6-1 專案建立後起始畫面

Page 7: 第六章、 RFID 資訊系統開發

7/91

MSCOMM 物件 接著,將 Form1 的 Text 屬性改成「 MSCO

MM 物件抓取 RFID 卡號範例」,並在表單Form1 上佈置 2 個 Label 物件與 1 個 TextBox 物件,各物件的設定如表 6-1 所示,完成後的畫面如圖 6-2

Page 8: 第六章、 RFID 資訊系統開發

8/91圖 6-2 、 Form1 表單物件設定完成畫面

Page 9: 第六章、 RFID 資訊系統開發

9/91

表 6-1 、 Form1 表單物件屬性說明

編號物件 物件名稱 屬性設定

1 Label Label1 Text=MSCOMM 元件抓卡號範例Font= 新細明體 , 18pt

2 Label Label2 Text= 卡號:Font= 新細明體 , 18pt

3 TextBox TextBox1 將 Text 屬性清空Font= 新細明體 , 18pt

Page 10: 第六章、 RFID 資訊系統開發

10/91

MSCOMM 物件 完成使用者介面設定後,再來需要將原來屬

於 Visual Basic 6.0 的 MSCOMM.OCX 物件設定成可讓 VS.NET 2008 使用。如圖 6-3 所示,請選擇「工具」 「選擇工具箱項目」

Page 11: 第六章、 RFID 資訊系統開發

11/91圖 6-3 、 VS.NET 2008 中設定使用 MSCOMM 物件畫面

Page 12: 第六章、 RFID 資訊系統開發

12/91

MSCOMM 物件 之後會出現圖 6-4 的「選擇工具箱項目」視

窗,請選擇「 COM 元件」頁籤,請勾選「 Microsoft Communications Control, version 6.0 」,然後按「確定」, MSCOMM 元件將會被加入到開發平台左方的「工具箱」中,此時就可以使用 MSCOMM 物件,如圖 6-5所示

Page 13: 第六章、 RFID 資訊系統開發

13/91

MSCOMM 物件 請將 MSCOMM 元件從工具箱中拖入 Form1

表單內,供後續開發使用,完成後如圖 6-6 ,畫面上將多出一個電話的圖示,這個就是MSCOMM 物件,這裡我們維持它原來的物件名稱「 AxMSComm1 」

Page 14: 第六章、 RFID 資訊系統開發

14/91

圖 6-4 、 VS.NET 2008 中 COM 元件選擇畫面

Page 15: 第六章、 RFID 資訊系統開發

15/91圖 6-5 、 MSCOMM 元件加入成功畫面

Page 16: 第六章、 RFID 資訊系統開發

16/91圖 6-6 、 MSCOMM 元件加入表單 Form1 後畫面

Page 17: 第六章、 RFID 資訊系統開發

17/91

MSCOMM 物件 再來,請確定已經將設定完成的 RFID 讀取

器(設定方式請見第二章說明)連接上電腦,並透過控制台的裝置管理員確認設備可以正常使用與目前的連接埠,如圖 6-7 所示,本範例的連接埠在 COM12 。等上述ㄧ切就緒後就可以開始撰寫程式碼,透過 MSCOMM元件來連接 RFID 讀取器取得所需要的卡號

Page 18: 第六章、 RFID 資訊系統開發

18/91圖 6-7 、 RFID 讀取器在裝置管理員的連接埠查詢畫面

Page 19: 第六章、 RFID 資訊系統開發

19/91

MSCOMM 物件 針對程式開發部分,首先在 Form1_Load 事件中撰

寫設定 MSCOMM 物件的通訊協定,當中包含通訊速率( Baud rate ,請詢文您的硬體供應商)、通訊埠(每個人的電腦狀況都不同,這裡是 COM12 )、 Threshold (要設定成 1 )等三項參數,最後將通訊埠開啟

執行程式後如果看到圖 6-8 畫面,代表程式與讀取器間訊號傳遞的通訊埠可以被正常開啟,沒有問題

Page 20: 第六章、 RFID 資訊系統開發

20/91圖 6-8 、通訊埠正常開啟畫面

Page 21: 第六章、 RFID 資訊系統開發

21/91

MSCOMM 物件 此時已經正常開啟程式與硬體讀取器間的通

訊介面與管道,只要讀取器有讀取到標籤的資料,將會觸發 MSCOMM 物件的「 OnComm 」事件

所以我們必須要在 MSCOMM 物件的「 OnComm 」事件中撰寫程式接收來自讀取器的資料。其中,如果讀取狀況正常,將回傳 CommEvent=2 的狀態

MSCOMM 物件接收資料的方法為 Input

Page 22: 第六章、 RFID 資訊系統開發

22/91

MSCOMM 物件 相反地,如果讀取有錯誤將回傳 CommEven

t=7 的狀態,程式將關閉通訊介面,並提示錯誤訊息,問題可能發生在忘記將讀取器接上電腦或是讀取器有損壞的狀況

完成上述所有步驟與程式撰寫後,就可以實際執行本程式,但一定要先確定讀取器與電腦有正常安裝與連結,圖 6-9 是正常抓取卡號的畫面

Page 23: 第六章、 RFID 資訊系統開發

23/91

圖 6-9 、 MSCOMM 元件實際抓取卡號畫面

Page 24: 第六章、 RFID 資訊系統開發

24/91

ACCESS 資料庫

Page 25: 第六章、 RFID 資訊系統開發

25/91

ACCESS 資料庫 本書第五章中介紹過使用 VS.NET 2008 開發資料庫程式的方法與步驟,當中介紹了連結 ACCESS與 SQL Server兩種資料庫的操作方法

首先請使用 ACESS 2003 建立一個名稱為 TAG 的空白資料庫( TAG.md ),同時建立一個儲存卡號資訊的資料表,名稱為 card_info (讀者可以在本書光碟內的 CH6\CH6-2\CH6-2\bin\Debug 目錄中找到該資料庫檔案)

Page 26: 第六章、 RFID 資訊系統開發

26/91

ACCESS 資料庫 當中包含有 4 個欄位,如圖 6-10 所示,各欄位的名稱、型態、資料長度與格式設定如表 6-2 所示

Page 27: 第六章、 RFID 資訊系統開發

27/91圖 6-10 、 ACCESS 資料庫欄位格式設定畫面

Page 28: 第六章、 RFID 資訊系統開發

28/91

表 6-2 、 ACDESS 資料庫格式設定說明

編號欄位名稱 型態 格式設定

1 card_no 自動編號 主索引鍵( PK )2

card_ID文字

長度 =20RFID 卡號

3 card_date 日期 / 時間 建立日期

4owner

文字長度 =10

使用者名稱

Page 29: 第六章、 RFID 資訊系統開發

29/91

ACCESS 資料庫 資料庫欄位格式設定建立完成後,請在資料庫中建立幾筆資料,例如圖 6-11 所示,此處建立了兩筆 RFID 標籤與使用者的資料,分別是卡號為 AADB8176 的使用者陳小明與卡號為 A6CD6F62 的使用者王大頭。應用時請各位讀者依這自己的卡號資料建立資料表內的「 card_ID 」欄位內容

Page 30: 第六章、 RFID 資訊系統開發

30/91圖 6-11 、 ACCESS 資料庫預設資料畫面

Page 31: 第六章、 RFID 資訊系統開發

31/91

ACCESS 資料庫 為了要透過 VS.NET 2008 連結使用 ACCES

S 資料庫,需要引用「 System.Data.OleDb 」的名稱空間

我們將呼叫 ACCESS 資料庫查詢卡號使用者的功能寫成「 showmember 」函數,當系統透過 MSCOMM 元件在 OnComm 事件中抓到卡號後,將呼叫 showmember 連結 ACCESS 資料庫進行卡號比對,然後顯示出正確的使用者名稱

Page 32: 第六章、 RFID 資訊系統開發

32/91

ACCESS 資料庫 我們仿照專案 CH6-1 的介面,但在 CH6-2

專案中另外加入兩個 Label 物件,分別是 Label3 與 Label4 ,同時,將 Label3 的 Text 屬性設定為”使用者:”, Label4則使用程式動態將查詢到的使用者名稱 (owner欄位 )資料顯示出來

程式實際執行後刷卡的畫面如下圖 6-12 所示,依照前面資料庫標籤卡號的設定,卡號為 AADB8176 的使用者是陳小明,實際顯示結果與當初規劃預期之結果相符

Page 33: 第六章、 RFID 資訊系統開發

33/91

圖 6-12 、 MSCOMM 元件結合 ACCESS 資料庫查詢卡號資料畫面

Page 34: 第六章、 RFID 資訊系統開發

34/91

SerialPort 物件

Page 35: 第六章、 RFID 資訊系統開發

35/91

SerialPort 物件 本節則是針對 VS.NET 2008 中標準內含的

RS232 與 USB 通訊埠溝通物件「 SerialPort 」進行介紹,請建立本章第三個專案 CH6-3 ,如圖 6-13 ,並依照表 6-3 在 Forml.vb 上佈置所需要的介面物件

Page 36: 第六章、 RFID 資訊系統開發

36/91圖 6-13 、 CH6-3 專案畫面

Page 37: 第六章、 RFID 資訊系統開發

37/91

表 6-3 、 Forml 表單上介面物件屬性說明

編號物件 物件名稱 (Name) 屬性設定

1 Label Label1 Text= 使用 SerialPort 物件讀取RFID 設備卡號Font= 新細明體 , 16pt

2 Label Label2 Text= 卡號Font= 新細明體 , 18pt

3 Label Label3 Text= 使用者Font= 新細明體 , 18pt

4 Label Label4 清空 Text 屬性Font= 新細明體 , 18pt

5 TextBox TextBox1 將 Text 屬性清空Font= 新細明體 , 18pt

6 SerialPort SerialPort1

Page 38: 第六章、 RFID 資訊系統開發

38/91

SerialPort 物件 與 MSCOMM 元件類似, SerialPort 物件也

需要設定通訊埠號碼,但其屬性不是「 CommPort 」,而是「 PortName 」,如圖 6-14 所示,本範例中延續上節設定為 COM12

Page 39: 第六章、 RFID 資訊系統開發

39/91圖 6-14 、 SerialPort 設定 PortName 之畫面

Page 40: 第六章、 RFID 資訊系統開發

40/91

SerialPort 物件 SerialPort 物件來抓取讀取器讀取到標籤的辨識號碼,同 MSCOMM 元件, SerialPort元件也是使用 Open 方法來開啟所設定的通訊埠,此部份希望在程式一啟動時就完成通訊埠設定與開啟,所以寫在 Form1 表單的 Load 事件中

Page 41: 第六章、 RFID 資訊系統開發

41/91

啟動 SerialPort 物件 Private Sub Form1_Load(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles MyBase.Load

SerialPort1.PortName = "COM12"

SerialPort1.Open()

If SerialPort1.IsOpen = True Then

MessageBox.Show("COM開啟成功 ")

Else

MessageBox.Show("COM開啟失敗 ")

End If

End Sub

Page 42: 第六章、 RFID 資訊系統開發

42/91

SerialPort 物件 MSCOMM 元件接收資料的事件是 OnComm ,而 SerialPort 元件則是「 DataReceived 」事件,完成通訊埠開啟後便是在 DataReceived 事件中撰寫相關的程式碼。再來與 MSCOMM 物件不同的是, MSCOMM 物件使用 Input 方法接收資料,而 SerialPort 物件則是「 ReadLine 」方法

一次直接讀取一串 DATA

Page 43: 第六章、 RFID 資訊系統開發

43/91

使用 SerialPort 物件 Private Sub SerialPort1_DataReceived(ByVal

sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

inputdata = SerialPort1.ReadLine

Me.Invoke(New SetTextBoxTextDelegate(AddressOf SetTextBoxText), inputdata)

End Sub

Page 44: 第六章、 RFID 資訊系統開發

44/91

使用 SerialPort 物件 Private Delegate Sub SetTextBoxTextDelegate(ByVal text As String)

Dim whichtime As Integer = 0

Private Sub SetTextBoxText(ByVal text As String)

If whichtime = 0 Then

TextBox1.Text = Mid(text, 2, 8) ' 擷取卡號 whichtime = 1

Else

TextBox1.Text = Mid(text, 3, 8) ' 擷取卡號 End If

End Sub

Page 45: 第六章、 RFID 資訊系統開發

45/91

SerialPort 物件 最後,請執行專案 CH6-3 確認結果,如果

沒有任何錯誤,將看到圖 6-15 的畫面,代表讀取器與程式間的通訊埠已經順利開啟,等待讀取讀卡機的資料

此時就可以使用讀卡機去讀取標籤,結果將在畫面上顯示出卡號資料,如圖 6-16 所示,但此時尚沒有比對該卡號使用者的功能

Page 46: 第六章、 RFID 資訊系統開發

46/91

圖 6-15 、 Form1 表單的開始執行畫面

Page 47: 第六章、 RFID 資訊系統開發

47/91

圖 6-16 、 Form1 表單完成卡號抓取的畫面

Page 48: 第六章、 RFID 資訊系統開發

48/91

SerialPort 物件 後續讀者可以搭配 6-2節所撰寫的 showme

mber函式來串接 ACCESS 資料庫進行讀卡後查詢使用者的功能

執行結果如圖 6-17 所示,詳細說明請見 6-2節,在此將不再贅述

Page 49: 第六章、 RFID 資訊系統開發

49/91

圖 6-17 、搭配 ACCESS 資料庫完成卡號比對的畫面

Page 50: 第六章、 RFID 資訊系統開發

50/91

Winsock

Page 51: 第六章、 RFID 資訊系統開發

51/91

Winsock 本節將說明使用 VS.NET 2008 開發透過 Eth

ernet/Internet 介面傳輸資料的讀卡機讀卡程式,此部份搭配的物件是 Visual Basic 6.0中的 Winsock 物件,使用方式跟 6-1節的 MSCOMM 元件一樣,請先透過「工具」 「選擇工具箱項目」「 Microsoft Winsock Control, version 6.0 」來將物件加入平台左方的「工具箱」中,如圖 6-18 所示

Page 52: 第六章、 RFID 資訊系統開發

52/91

圖 6-18 、將 Winsock 元件加入 VS.NET 2008 開發平台的畫面

Page 53: 第六章、 RFID 資訊系統開發

53/91

Winsock 接者請再建立本章第四個專案,名稱為 CH

6-4 ,並將工具箱中的 Winsock 物件拖入表單中使用,如圖 6-19 所示

Page 54: 第六章、 RFID 資訊系統開發

54/91圖 6-19 、將 Winsock 元件加入表單中使用的畫面

Page 55: 第六章、 RFID 資訊系統開發

55/91

Winsock 除了 Winsock 元件外,請參考表 6-4 設計本

專案 Form1 表單上的介面物件,結果如圖6-20 所示,其中「遠端連接埠」需要填寫讀卡機與電腦間網路的通訊埠,此部份需要詢問讀卡機廠商是否有特定的通訊埠;「遠端讀取器位置」則是指讀卡機的位置,通常就是 IP位置

Page 56: 第六章、 RFID 資訊系統開發

56/91

表 6-4 、 Form1 表單上介面物件屬性說明

編號物件 物件名稱 (Name) 屬性設定

1 Label Label1 Text= 遠端連接埠Font= 新細明體 , 16pt

2 Label Label2 Text= 遠端讀取器位置:Font= 新細明體 , 16pt

3 Label Label3 Text= 接收資料內容Font= 新細明體 , 16pt

4 Button Button1 Text= 連線Font= 新細明體 , 18pt

5 Button Button2 Text= 斷線Font= 新細明體 , 18pt

6 TextBox TextBox1 將 Text 屬性清空7 TextBox TextBox2 將 Text 屬性清空8 TextBox TextBox3 將 Text 屬性清空9 Winsock AxWinsock1

Page 57: 第六章、 RFID 資訊系統開發

57/91圖 6-20 、 CH6-4 專案 Form1 表單介面畫面

Page 58: 第六章、 RFID 資訊系統開發

58/91

Winsock 前述的 MSCOMMM 物件是設定 PortOpen

屬性來開啟通訊埠, SerialPort 物件則是使用 Open 方法,此處的 Winsock 元件則是使用「 Connect 」方法來開啟「遠端讀取器位置」的「遠端連接埠」,我們將連線程式撰寫於「連線」的按鈕中

Page 59: 第六章、 RFID 資訊系統開發

59/91

WinsockPrivate Sub Button1_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles Button1.Click

AxWinsock1.RemotePort = Convert.ToInt32(TextBox1.Text)

AxWinsock1.RemoteHost = Trim(TextBox2.Text)

AxWinsock1.LocalPort = 0

AxWinsock1.Connect()

MessageBox.Show("連線成功 ")

End Sub

Page 60: 第六章、 RFID 資訊系統開發

60/91

Winsock 不同於 MSCOMM 元件的「 OnComm 」事

件與 SerialPort 元件的「 DataReceived 」事件, Winsock 是使用「 DataArrival 」事件來接收透過 Ethernet/Internet 傳送的讀卡機資料,接收方法是 GetData ,同時將接收到的資料指定到 TextBox3 中進行顯示

Page 61: 第六章、 RFID 資訊系統開發

61/91

Winsock Private Sub AxWinsock1_DataArrival(ByVal sender

As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock1.DataArrival

Dim inputdata As Object

AxWinsock1.GetData(inputdata, vbString, 255)

TextBox4.AppendText(Trim(inputdata))

End If

Page 62: 第六章、 RFID 資訊系統開發

62/91

Private Sub AxWinsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock1.DataArrival

Dim inputdata As Object

AxWinsock1.GetData(inputdata, vbString, 255)

TextBox4.AppendText(Trim(inputdata))

' 處理步驟 1: 判斷是否有 ENTER存在 If InStr(TextBox4.Text, vbCrLf) Then

' 找到 enter的前一個位置 Dim i As Integer = InStr(TextBox4.Text, vbCrLf) - 1

' 把資料取出來,利用 mid函數 ' 如果長度不足 8,要將資料給捨棄 If Len(Mid(TextBox4.Text, 1, i)) < 8 Then Exit Sub

TextBox3.Text = Mid(TextBox4.Text, 1, i)

' 將 inputdata清空,等待下一次刷卡 TextBox4.Text = ""

End If

End Sub

Page 63: 第六章、 RFID 資訊系統開發

63/91

Winsock 完成上述介面與程式的撰寫後,就可以實際

執行本專案,啟動表單後需要在 TextBox1中輸入與讀卡機間的通訊埠號碼,在 TextBox1 中輸入讀卡機的 IP位置,如下圖 6-21所示,輸入完畢後按「連線」按紐後,遠端機器請進行讀卡動作,就可以在本機上透過Winsock 取得遠端讀卡資料

Page 64: 第六章、 RFID 資訊系統開發

64/91

圖 6-21 、 CH6-4 專案執行畫面

Page 65: 第六章、 RFID 資訊系統開發

65/91

SQL Server 資料庫

Page 66: 第六章、 RFID 資訊系統開發

66/91

SQL Server 資料庫 本章 6-2節中介紹過使用 VS.NET 2008 抓取卡號

後連結 ACCESS 資料庫進行卡號比對後顯示使用者姓名的方法,此節則是在資料庫內資料表結構不改變的狀況下(結構如表 6-2 ),將 ACCESS資料庫改成 SQL Server 資料庫( SQL Server 2000或 SQL Server 2005 都適用)來進行操作,兩者之間最大的差異在於連線使用的物件類別( ACCESS 資料庫使用 OLEDB類別, SQL Server 使用 sqlclient )與 Connection 物件的連線字串,詳細說明請見第五章

Page 67: 第六章、 RFID 資訊系統開發

67/91

SQL Server 資料庫 請使用 SQL Server 建立一個名稱為 TAG 的

資料庫,同時建立一個儲存卡號資訊的資料表,名稱亦為 card_info ,各欄位的名稱、型態、資料長度與格式設定亦同表 6-2 所示,設定畫面如圖 6-22 所示,同時在圖 6-23 的畫面中輸入資料

Page 68: 第六章、 RFID 資訊系統開發

68/91

圖 6-22 、 SQL Server 資料庫設定畫面

Page 69: 第六章、 RFID 資訊系統開發

69/91

圖 6-23 、 SQL Server 資料庫資料輸入畫面

Page 70: 第六章、 RFID 資訊系統開發

70/91

SQL Server 資料庫 SQL Server 資料庫不同於 ACCESS 資料庫,

前者是支援 Client/Server架構的資料庫管理系統,所以需要設定 TAG 資料庫的使用者權限,如圖 6-24 所示,設定一個名稱為 rfid的使用者可以開啟 TAG 資料庫(密碼就請讀者自行設定與建立),但是只具備有 datareader 與 datawriter 的權限,如圖 6-25

Page 71: 第六章、 RFID 資訊系統開發

71/91

圖 6-24 、設定 SQL Server 資料庫使用者畫面

Page 72: 第六章、 RFID 資訊系統開發

72/91

圖 6-25 、設定 SQL Server 資料庫使用者權限畫面

Page 73: 第六章、 RFID 資訊系統開發

73/91

SQL Server 資料庫 最後依照第五章連結 SQL Server 資料庫的

方法,先引用 System.Data.SqlClient 的名稱空間後,改寫 6-2節的 showmember函式,讓其可以連結 SQL Server 內 TAG 資料庫的card_info 資料表進行資料比對,程式碼部分如下所示,此處只列出不同的地方,分別是引用的類別與 showmember函式

執行結果則如圖 6-26 所示

Page 74: 第六章、 RFID 資訊系統開發

74/91

圖 6-26 、連結 SQL Server 資料庫後查詢使用者資料畫面

Page 75: 第六章、 RFID 資訊系統開發

75/91

藍芽讀取器

Page 76: 第六章、 RFID 資訊系統開發

76/91

藍芽讀取器 我們在第二章中介紹過設定 USB 介面的方

式,這裡我們介紹 RFID藍芽讀取器的設定方法,並透過 SerialPort 物件抓取讀卡機訊號。首先介紹硬體設定方法,設定電腦透過藍芽與藍芽讀取器進行通訊,請確定您有將讀取器的藍芽開啟

如圖 6-27 所示,在電腦上找到藍芽設定程式,每台電腦狀況都不同,請依您的電腦裝況選用,但都是藍芽設定程式

Page 77: 第六章、 RFID 資訊系統開發

77/91圖 6-27 、開啟藍芽設定程式畫面

Page 78: 第六章、 RFID 資訊系統開發

78/91

藍芽讀取器 接著將看到「新增連線精靈」,透過本精靈

來搜尋與設定可以使用的藍芽裝置,如圖6-28 所示,按下「下一步」就可以開始自動搜尋功能(再次提醒,藍芽讀取器的藍芽功能一定要開啟,這裡才會有作用),如圖6-29

Page 79: 第六章、 RFID 資訊系統開發

79/91

圖 6-28 、藍芽裝置搜尋設定程式畫面

Page 80: 第六章、 RFID 資訊系統開發

80/91

圖 6-29 、藍芽裝置自動搜尋畫面

Page 81: 第六章、 RFID 資訊系統開發

81/91

藍芽讀取器 如果有搜尋到周邊的藍芽裝置,將如圖 6-3

0 所示,搜尋到一個叫「 WM300BT 」的藍牙裝置,按下「下一步」將看到圖 6-31 設定完成的畫面,並且告知其連接埠位置,本例是在 COM40

Page 82: 第六章、 RFID 資訊系統開發

82/91

圖 6-30 、搜尋到一個週邊藍芽裝置畫面

Page 83: 第六章、 RFID 資訊系統開發

83/91

圖 6-31 、藍芽裝置設定完成畫面

Page 84: 第六章、 RFID 資訊系統開發

84/91

藍芽讀取器 至此只知道週邊有一個藍芽裝置,但是還沒

有真正連線,如果要連線可以使用圖 6-32 ,用右鍵點選裝置後,再選擇「連線」就可以。第一次連線多數會出現 PIN密碼輸入畫面,如圖 6-33 ,一般預設密碼都是「 0000 」,輸入後就可以完成實際連線

Page 85: 第六章、 RFID 資訊系統開發

85/91

圖 6-32 、藍芽裝置設定連線畫面

Page 86: 第六章、 RFID 資訊系統開發

86/91

圖 6-33 、藍芽裝置輸入 PIN 密碼畫面

Page 87: 第六章、 RFID 資訊系統開發

87/91

藍芽讀取器 接著,請建立本章第 5 個專案,名稱為 BT_

RFID ,介面如圖 6-34 所示,至此讀者應該可以知道每個元件怎麼使用,這裡就不再贅述

Page 88: 第六章、 RFID 資訊系統開發

88/91

圖 6-34 、 BT_RFID 專案 Form1 表單畫面

Page 89: 第六章、 RFID 資訊系統開發

89/91

藍芽讀取器 再來,我們在 Button1_Click 事件中直接透

過 SerialPort 物件開啟 COM40 通訊埠,設定畫面如圖 6-35 ,程式碼如下所示,結果如圖 6-36 所示

Page 90: 第六章、 RFID 資訊系統開發

90/91圖 6-35 、 BT_RFID 專案 SerialPort1 設定畫面

Page 91: 第六章、 RFID 資訊系統開發

91/91

圖 6-36 、 COM40 開啟成功畫面

Page 92: 第六章、 RFID 資訊系統開發

92/91

藍芽讀取器 最後,透過 SerialPort 的 DataReceived 事件

接收藍芽訊號 執行結果如圖 6-37 所示

Page 93: 第六章、 RFID 資訊系統開發

93/91

圖 6-37 、藍芽訊號接收卡號成功畫面

Page 94: 第六章、 RFID 資訊系統開發

94/91

POS 範例再討論

Page 95: 第六章、 RFID 資訊系統開發

95/91

POS 範例再討論 還記得我們在第五章的最後面寫了一個簡單

的銷售系統嗎?現在我們會讀取 RFID 卡片資料,所以我們將 POS 專案的交易端,從原來的手動選取產品,改成讀取產品上的 RFID 標籤,要做到這件事,我們需要修改 product 資料表(內容請見 5-10節說明),我們將原來的 p_id欄位型態改成「 varchar 8 」,用來儲存電子標籤卡號,如下所示

Page 96: 第六章、 RFID 資訊系統開發

96/91

表格 : 產品資料 product  

欄位 Fieldname DataType Key 說明

產品編號 p_id varchar 8 PKRFID 電子標籤號碼

產品名稱 p_namevarchar 255    

售價 pricre int    

Page 97: 第六章、 RFID 資訊系統開發

97/91

POS 範例再討論 需要修改的表單為「 sell.vb 」,將原來使

用「搜尋」功能進行的產品交易作業,改成用 RFID 讀取器來進行。修改後的專案我們放在本書光碟內的 CH6\POS2 目錄內,請讀者自行參考