Mục tiêu là tính toán kích thước của anten để đạt được từ trường mạnh nhất phụ thuộc vào phạm vi đọc của anten.
Từ công thức (4.3) ta lấy đạo hàm 2 vế của phương trình:
( ) ( ) 3 5 3 2 2 ( ) 2. . . 3. . . '( ) ² ² ² ² dH R I N R I N R H R dR R d R d = = − + + (4.23)
( ) ( ) 3 5 3 2 2 2. . . 3. . . ² ² ² ² I N R I N R R d R d = + + (4.24) → ( ) 2 3. 2 ² ² R R d = + → 2R2+2d2 =3R2 → R2 =2d2 → R d= . 2 (4.25)
Từ công thức trên nếu có bán kính là 2,5 cm thì khoảng cách đọc tốt nhất là 1,8 cm → đúng với phần khảo sát từ trường của anten (mục 3.2.2). Khi thực hiện anten theo công thức 4.25 với bán kính R thì anten của đầu đọc sẽ luôn phát hiện được thẻ ở khoảng cách
2
R
CHƯƠNG 4: PHẦN MỀM QUẢN LÝ VÀ HƯỚNG PHÁT TRIỂN ĐỒ ÁN
Như đã nói trong phần giới thiệu chung về một hệ thống RFID, hệ thống RFID có thể hoạt động mà không cần tới thành phần này. Tuy nhiên, nếu như không sử dụng thành phần này thì hệ thống RFID sẽ trở nên vô giá trị. Vì vậy vẫn có thể nói rằng, thành phần này đóng góp phần quan trọng làm nên thành công của một hệ thống RFID được triển khai. Ở đây tôi xây dựng không phải là một hệ thống phần mềm mà chỉ là phần mềm quản lý đơn giản để thử nghiệm. Nó có khả năng quản lý kết nối giữa máy tính và reader, và quản lý cở sở dữ liệu trên máy tính. Duới đây là chi tiết về phần mềm quản lý tôi đã xây dựng cho đồ án này.
4.1. Giao diện phần mềm quản lý
Phần mềm trên máy tính được xây dựng trên ngôn ngữ Visual Basic. Visual Basic hiện là ngôn ngữ lập trình được sử dụng rộng rãi để viết các ứng dụng chạy trên hệ điều hành windows. Visual Basic cho phép phát triển nhanh chóng các ứng dụng truyền thống được thiết kế theo mô hình đặc trưng của windows. Với Visual Basic người thiết kế có thể rất nhanh chóng và dễ dàng tạo ra được một giao diện trực quan thân thiện với người sử dụng. Khi sử dụng qua ngôn ngữ này người lập trình sẽ có cái nhìn tổng quan hơn về lập trình hướng đối tượng, một xu hướng trong nghành công nghệ thông tin.
Visual Basic có khá nhiều ưu điểm khiến tôi phải lựa chọn sử dụng nó trong đồ án này. Các ưu điểm của nó có thể kể đến như:
• Phần "Visual" đề cập đến phương phàp được sử dụng để tạo giao diện đồ họa người dùng (Graphical User Interface hay viết tắc là GUI) . Có sẵn những bộ phận hình ảnh, gọi là controls, ta có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình, gọi là form. Nếu bạn đã từng sử dụng chương trình vẽ chẳng hạn như Paint, bạn đã có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6.
• Visual Basic là một ngôn ngữ lập tŕnh có cấu trúc tương đối đơn giản.
• Dễ dàng xây dựng các phần mềm quản lư giao tiếp giữa máy tính và thiết bị ngoại vi thông qua các chuẩn như RS232, USB 2.0 chỉ đơn giản bằng cách gọi các hàm WIN API đă có sẵn trong hệ điều hành windows.
Các chức năng của phần mềm quản lý gồm có:
• Hiển thị mã ID của thẻ đang được đọc
• Thêm một ID mới vào danh sách gồm các thông tin được thêm vào như: o Họ và tên bệnh nhân
o Quê quán
o Số điện thoại liên hệ o Bệnh điều trị
o Tiền sử bệnh
o Ngày nhập viện
• Xóa mã ID cũng như thông tin đi kèm mã ID đó
• Cập nhật thông tin của bệnh nhân sau mỗi lần thẻ được đọc và có thông tin cần chỉnh sửa.
Hình 4- Giao diện phần mềm quản lý
Code phần mềm quản lý viết bằng Visual Basic 6.0:
Option Base 1
Dim danhsach() As String Dim thutu As Integer Dim duongdan As String Dim datimkiem As Boolean Dim timkiem() As String
Function CheckFile(sFileName As String, sDir As String) As Boolean
Dim sTmp As String
If sTmp = sFileName Then CheckFile = True Else CheckFile = False End If End Function
Private Sub cmdcapnhat_Click() If List1.ListIndex < 0 Then
MsgBox ("Ban chua chon ma ID nao ca") Exit Sub
End If
vitri = List1.ListIndex
danhsach(1, List1.ListIndex + 1) = txtmaid.Text danhsach(2, List1.ListIndex + 1) = txthoten.Text danhsach(3, List1.ListIndex + 1) = txtque.Text danhsach(4, List1.ListIndex + 1) = txtsdt.Text danhsach(5, List1.ListIndex + 1) = txtbenh.Text danhsach(6, List1.ListIndex + 1) = txttsb.Text danhsach(7, List1.ListIndex + 1) = txtdate.Text Call cmdluu_Click
List1.Clear Call Form_Load
List1.Selected(vitri) = True End Sub
Private Sub cmdluu_Click() Dim i As Integer
Dim n As Integer
Open duongdan For Output As #1 For i = 1 To thutu For n = 1 To 7 Print #1, danhsach(n, i) Next Next Close #1
MsgBox (" Du lieu da luu thanh cong !") List1.Clear
Call Form_Load End Sub
Private Sub cmdreload_Click() List1.Clear
Call Form_Load End Sub
Private Sub cmdtatca_Click() List1.Clear
Call Form_Load End Sub
Private Sub cmdthem_Click() If txtmaid.Text = "" Then
MsgBox ("Ban chua nhap ma ID") txtmaid.SetFocus
Exit Sub End If
If txthoten.Text = "" Then
MsgBox ("Ban chua nhap ho ten") txthoten.SetFocus
Exit Sub End If
thutu = thutu + 1
ReDim Preserve danhsach(7, thutu) danhsach(1, thutu) = txtmaid.Text danhsach(2, thutu) = txthoten.Text danhsach(3, thutu) = txtque.Text danhsach(4, thutu) = txtsdt.Text danhsach(5, thutu) = txtbenh.Text danhsach(6, thutu) = txttsb.Text danhsach(7, thutu) = txtdate.Text List1.AddItem txtmaid.Text txtmaid.Text = ""
txthoten.Text = "" txtque.Text = ""
txtbenh.Text = "" txttsb.Text = "" txtdate.Text = "" txtmaid.SetFocus Call cmdluu_Click End Sub
Private Sub cmdthemmoi_Click() txtmaid.Text = "" txthoten.Text = "" txtque.Text = "" txtsdt.Text = "" txtbenh.Text = "" txttsb.Text = "" txtdate.Text = "" txtmaid.SetFocus End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub cmdxoa_Click() If List1.ListCount = 0 Then
Exit Sub End If
If List1.ListIndex < 0 Then
MsgBox ("Ban chua chon benh nhan nao ca") Exit Sub
End If
If List1.ListCount = 1 Then
Open duongdan For Output As #1 Close #1 List1.Clear Call Form_Load Exit Sub End If Dim i As Integer Dim j As Integer vitri = List1.ListIndex
For i = List1.ListIndex + 1 To (thutu - 1) For j = 1 To 7
danhsach(j, i) = danhsach(j, i + 1) Next
Next
If vitri > 0 Then
List1.Selected(vitri - 1) = True End If
End Sub
Private Sub cmdtim_Click() Dim i As Integer Dim j As Integer Dim n As Integer ReDim timkiem(8, 1) tukhoa = txttimkiem.Text For i = 1 To thutu
If LCase(danhsach(1, i)) = LCase(txttimkiem.Text) Then If n <> 1 Then n = n + 1 End If For j = 1 To 7 timkiem(j, n) = danhsach(j, i) Next timkiem(8, n) = i
ReDim Preserve timkiem(8, n) End If
Next
MsgBox ("Ko tim thay benh nhan nao co ma the nhu vay ca") Else List1.Clear For i = 1 To n List1.AddItem timkiem(1, i) Next datimkiem = True
MsgBox ("Tim thay tat ca: " & n & " Ket qua") End If
End Sub
Private Sub Form_Load() MSComm1.CommPort = 3 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True MSComm1.RThreshold = 1 MSComm1.SThreshold = 0 duongdan = "c:\data.txt"
If CheckFile("data.txt", "c:") = False Then Open duongdan For Output As #2 Close #2
End If
datimkiem = False ReDim danhsach(7, 1)
n = 1 thutu = 1
Do While Not EOF(1) Line Input #1, st danhsach(n, thutu) = st If n = 1 Then List1.AddItem st End If If n = 7 Then n = 0 thutu = thutu + 1
ReDim Preserve danhsach(7, thutu) End If n = n + 1 Loop Close #1 thutu = thutu - 1 If List1.ListCount > 0 Then List1.Selected(0) = True End If End Sub
Private Sub List1_Click() If datimkiem = False Then
txthoten.Text = danhsach(2, List1.ListIndex + 1) txtque.Text = danhsach(3, List1.ListIndex + 1) txtsdt.Text = danhsach(4, List1.ListIndex + 1) txtbenh.Text = danhsach(5, List1.ListIndex + 1) txttsb.Text = danhsach(6, List1.ListIndex + 1) txtdate.Text = danhsach(7, List1.ListIndex + 1) Else
txtmaid.Text = danhsach(1, timkiem(8, List1.ListIndex + 1)) txthoten.Text = danhsach(2, timkiem(8, List1.ListIndex + 1)) txtque.Text = danhsach(3, timkiem(8, List1.ListIndex + 1)) txtsdt.Text = danhsach(4, timkiem(8, List1.ListIndex + 1)) txtbenh.Text = danhsach(5, timkiem(8, List1.ListIndex + 1)) txttsb.Text = danhsach(6, timkiem(8, List1.ListIndex + 1)) txtdate.Text = danhsach(7, timkiem(8, List1.ListIndex + 1)) End If
End Sub
Private Sub MSComm1_OnComm() Dim StringIn As String
If MSComm1.CommEvent = comEvReceive Then StringIn = MSComm1.Input
Text1.Text = StringIn End If
Private Sub txttimkiem_Change() If Len(txttimkiem) > 0 Then cmdtim.Enabled = True Else cmdtim.Enabled = False End If End Sub
Private Sub txttimkiem_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call cmdtim_Click End If End Sub 4.2. Đánh giá hệ thống • Kết quả đạt được:
o Hệ thống đã hoạt động được ở dải tần số thấp 125 kHz.
o Phạm vi đọc tùy thuộc vào loại thẻ sử dụng (do kích thước anten thẻ khác nhau).
o Chất lượng tín hiệu truyền và nhận giữa thẻ và đầu đọc tốt.
o Thực hiện anten đạt yêu cầu truyền năng lượng và công suất cho thẻ. • Hạn chế:
o Có sai số truyền tín hiệu do anten làm thủ công, từ trường ở phạm vi cách anten > 5 cm không đều nên năng lượng truyền cho thẻ không đều và dữ
liệu truyền từ thẻ sang đầu đọc không đúng, dẫn đến giải điều chế tín hiệu sai.
o Phạm vi đọc thấp hơn lý thuyết (10cm) do mạch chế tạo bằng tay và thời gian hiệu chỉnh không nhiều.
• Các yếu tố ảnh hưởng:
o Anten: Đây là phần quan trọng nhất trong thiết kế reader. Những nguyên nhân khiến anten hoạt động không tốt là:
Do dây quấn không tốt : kích thước không chuẩn, chất lượng không tốt, không đảm bảo các thông số chính xác tại mọi điểm.
Do thao tác quấn thủ công nên cũng ảnh hưởng đến chất lượng anten. o Làm mạch:
Làm mạch in bằng máy nên chất lượng được đảm bảo
Hàn mạch thủ công, đặc biệt là hàn chip dán với khoảng cách chân chip nhỏ cũng là một khó khăn ảnh hưởng đến chất lượng đầu đọc. o Nhiễu từ: nhiễu từ từ các nguồn xung quanh ảnh hưởng đáng kể đến
chất lượng thu tín hiệu từ thẻ của đầu đọc. • Khắc phục:
o Anten: so với tính toán trên lý thuyết, số vòng anten có thể sai khác. Sau khi quấn anten theo lý thuyết, cần phải điều chỉnh anten thêm bớt một số vòng để có thể thu tín hiệu tốt nhất. Cần tối ưu hóa thiết kế anten với các loại dây đồng có bán kính khác nhau.
o Làm mạch: Mối hàn phải chắc chắn, đạt yêu cầu về kỹ thuật.
o Nhiễu từ: để đầu đọc tránh xa các nguồn phát từ (chip, màn hình PC ...).
4.3. Hướng phát triển
• Mở rộng thiết kế đầu đọc đọc-ghi: Đầu đọc đã được thiết kế với chức năng
một yêu cầu, vì chip EM4095 có thể chuyển sang chế độ Read-Write khi nối thêm chân MOD sang vi điều khiển, không có yêu cầu phức tạp cho việc thay đổi phần cứng. Hệ thống sử dụng thẻ R/W vẫn có thể sử dụng phần cứng đọc thẻ RO dựa trên chip EM4095 nhưng phải thay đổi phần mềm chương trình VĐK PIC 16F877A cho phù hợp với thẻ R/W (dự kiến chọn thẻ R/W 125 kHz dùng chip EM4150).Vì vậy trong thư viện chương trình đã xây dựng sẵn các file lập trình cho VĐK để nhận và xử lý dữ liệu với EM4095 khi làm việc với thẻ EM4150. Do chưa có thẻ R/W nên công việc này chưa thực hiện được trong phạm vi luận văn, dự kiến sẽ phát triển tiếp khi có được thẻ EM4150.
• Xây dựng hệ thống tần số cao (High Frequency – 13,56 MHz): từ hệ thống
RFID tần số thấp 125 kHz (Low Frequency) có thể xây dựng hệ thống tần số cao High Frequency, có khoảng cách đọc lớn hơn.
• Phát triển phần mềm RFID quản lý: Để phục vụ công tác quản lý bệnh nhân
một cách tổng quát hơn, cần mở rộng thiết kế phần mềm đã có thêm nhiều chức năng hơn như một phần mềm quản lý chuyên dụng.
4.4. Áp dụng cho quản lý bệnh nhân trong bệnh viện Thanh Nhàn Hà Nội: Hà Nội:
4.4.1. Thông tin bệnh viện
Bệnh viện Thanh Nhàn là Bệnh viện đa khoa hạng I - qui mô 600 giường bệnh có thể điều trị nội trú cho gần 1000 bệnh nhân mỗi ngày. Bệnh viện có 2 chuyên khoa đầu ngành là Nội khoa và Chẩn đoán hình ảnh. Bệnh viện với tổng số cán bộ công chức viên chức: 810 người (Trong đó CBVC và HĐLĐ trong chỉ tiêu: 547, HĐLĐ có xác định thời hạn:263)
- PGS: 01 người - Tiến sĩ: 05 người - Thạc sĩ Y+ Dược: 39 người
- Bác sĩ + Dược sĩ đại học: 95 người - BS Chuyên khoa I: 56 người - Bác sĩ Chuyên khoa II: 22 người
- Trình độ cao đẳng trung học: 407 người - Trình độ sơ học và nhân viên: 185 người
4.4.2. Tính toán chi phí cần thiết trang bị hệ thống quản lý bệnh nhân sử dụng công nghệ RFID cho bệnh viện nhân sử dụng công nghệ RFID cho bệnh viện
Mỗi bác sĩ được trang bị một đầu đọc RFID, mỗi bệnh nhân khi nhập viện sẽ dc sử dụng một thẻ riêng cho mình. Số trang thiết bị dự tính cho bệnh viện là:
• 200 đầu đọc RFID như trong thiết kế ở chương 2 • 1500 thẻ RFID 4102
Chi phí cho 1 đầu đọc RFID là 500.000 vnđ Chi phí cho mỗi thẻ RFID 4012 là 30.000 vnđ
Vậy tổng chi phí cần thiết trang bị hệ thống cho bệnh viện là: 500000*200+30000*1500 = 145triệu vnđ
Đối với những bệnh viện lớn như bệnh viện Thanh Nhàn thì 145triệu vnđ không phải là một con số lớn. Bên cạnh đó, hệ thống này rất có ưu điểm rất lớn so với các cách quản lý thông tin bệnh nhân khác về mặt quản lý chính xác thông tin bệnh nhân mà không nhầm lẫn với bệnh nhân khác. Tuy nhiên phải đóng gọi lại đầu đọc thẻ như hình dưới đây để bác sĩ sử dụng gọn gàng như hình 4-2 dưới đây và nhất là phát triển phần mềm quản lý một cách chi tiết chuyên nghiệp với cơ sở dữ liệu lớn hơn so với trong đồ án tôi đã thiết kế.
KẾT LUẬN
Như vậy chúng ta đã đi thiết kế một hệ thống quản lý bệnh nhân bằng công nghệ RFID hoàn chỉnh một cách chi tiết từ việc thiết kế reader đến thiết kế phần mềm chạy trên máy tính. Tuy nhiên ở mức độ đồ án tốt nghiệp và thời gian có hạn nên hệ thống tôi xây dựng chỉ dừng lại ở mức độ mức mô hình. Ở đây tôi xin phép được lưu ý rằng, trong quá trình thiết kế chúng ta cần đặc biệt chú ý tới anten cho reader. Tuy cách chế tạo nó khá đơn giản, chỉ là quấn dây đồng theo một hình tròn, hay hình vuông... Nhưng nếu tính toán sai dẫn đến sai số quá lớn, có thể khiến cho reader không thể đọc được thẻ. Vì vậy khi chế tạo anten cần có các máy đo cần thiết để biết được một cách chính nhất có thể giá trị độ tự cảm của cuộn dây anten.
TÀI LIỆU THAM KHẢO
[1]. Klaus Finkenzeller, RFID Handbook: Fundamentals and Applications in
Contactless Smart Cards and Identification, Second Edition. New York:
Wiley, 2003.
[2]. Tan Phu Vuong, Identification et Tracabilité par Radio Fréquence, Maitre de conférences de l’INPG.
[3]. AppNote 403: Frequently Asked Questions about EM4095, EM Microelectronic, 2002.
[4]. AppNote 404: EM4095 Application Note, EM Microelectronic, 2002. [5]. AppNote 411: RFID Made Easy, EM Microelectronic, 2002.
[6]. Datasheet: EM4095 – Read/Write analog front end for 125 kHz RFID basestation, EM Microelectronic, 2002.
[7]. Datasheet: EM4102 – Read Only Contactless Identification Device, EM Microelectronic, 2002.
[8]. Datasheet: PIC 16F87XA, Microchip, 2003. [9]. Các trang web trên mạng:
http://transpondernews.com/ http://www.hightechaid.com/standards/18000.htm http://www.theiet.org/publicaffairs/sectorpanels/control/rfid.pdf http://www.emmicroelectronic.com/Products.asp?IdProduct=86 http://www.code-magazine.com/article.aspx?quickid=0611061&page=1 http://www.atmel.com/dyn/resources/prod_documents/u2270b_sec.pdf http://www.emmicroelectronic.com/Products.asp?IdProduct=5 http://focus.ti.com/lit/ds/symlink/ri-tms3705adr.pdf
http://www.ibtechnology.co.uk/products/em4102.htm http://www.vanskee.com/ http://www.ibtechnology.co.uk/products/ant125.htm http://web.media.mit.edu/~jrs/WISP-IEEE-TIM.pdf http://buyrfid.righttag.com/ http://www.hightechaid.com/standards/RFID_Standards_SC31.htm http://picvietnam.com/ http://dientuvietnam.net/ http://vnpro.org/forum/
CÁC THUẬT NGỮ SỬ DỤNG TRONG ĐỒ ÁN
STT Thuật ngữ Ý nghĩa Nghĩa Tiếng Việt
1. RFID Radio Frequency
Identification
Nhận dạng tần số sóng vô tuyến
2. ATM Automatic Teller Machine Máy rút tiền tự động
3. AC Alternating Current Điện xoay chiều
4. DC Direct Current Điện một chiều
5. RO Read Only Chỉ đọc
6. RW Read Write Đọc ghi
7. WORM Write Once Read Many Ghi một lần đọc nhiều lần
8. CRC Cyclic Redundancy Check Kiểm tra lỗi dư vòng
9. ID Identification Xác định
10. CMOS Complementary Metal-Oxide
Semiconductor
Công nghệ chế tạo mạch tích hợp
11. EEPROM Electrically Erasable Programmable Read-Only
Memory
Được chế tạo bằng công nghệ bán dẫn. Nội dung của ROM này có thể
viết vào và xóa (bằng điện) 12. ISO International Organization for
Standardization
Tổ chức tiêu chuẩn quốc tế
13. EPC Electronic Product Code Mã điện tử của sản phẩm
14. HDX Half Duplex Cùng thời điểm trong trong kênh
truyền chỉ có truyền hoặc nhận
15. FDX Full Duplex Truyền và nhận xảy ra cùng thời
16. SEQ Sequential Tuần tự 17. TTL Transistor – Transistor Logic
18. ASIC Application Specific