Chuỗi uid của rfid rc522 có bao nhiêu ký tự năm 2024

MỤC LỤC

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

..................................................................................2

Chuỗi uid của rfid rc522 có bao nhiêu ký tự năm 2024

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1GIỚI THIỆU VỀ CÁC LOẠI KHÓA ĐIỆN TỬ THÔNG DỤNG

Khóa điện tử là khóa chạy bằng điện và không sử dụng chìa khóa để mở cửa,hầu hết các ổ khóa truyền thống trên cửa ra vào đều được chế tạo với cơ chế đượcgọi là chốt và ổ lăn. Bên trong ổ khóa có các chốt và trụ nạp lò xo, chỉ được kíchhoạt khi tra đúng chìa khóa vào lỗ khóa. Trượt nhầm vào đó và khóa sẽ khôngquay, có nghĩa là cửa sẽ không mở.Mặt khác, khóa điện tử không khác nhiều so với khóa cửa điện trên ô tô. Có mộtđộng cơ nhỏ được chôn trong ổ khóa được kích hoạt bằng xung điện. Nó tương tựnhư xung lực xuất hiện khi bạn nhấn nút trên chìa khóa ô tô để mở khóa cửa, nhưngkhông giống như ô tô, bạn không nhất thiết phải có động lực để biến điều đó thànhhiện thực. Tuyệt vời hơn nữa, khóa điện dành cho gia đình ngày nay có các tùychọn khóa phức tạp, từ bộ hẹn giờ sẽ mở khóa hoặc khóa cửa vào những thời điểmcụ thể trong ngày cho đến khả năng sử dụng điện thoại thông minh của bạn để mở cửa từ bất kỳ đâu

.

Khóa cửa vân tay

Định nghĩa : Là loại khóa điện tử không dùng chìa khóa truyền thống để mở mà sử dụng cảm biến vân tay, chỉ cần dùng dấu vân tay để mở.

Đặc điểm nhn dạng: Trên khóa cửa vân tay có phần để kiểm tra vân tay

Ứng dụng: Khóa cửa vân tay thường được lắp ở các gia đình, có thể lắp trêncửa nhôm, cửa gỗ, cửa kính cường lực, cửa cổng

Ưu điểm :-Độ bảo mt, an toàn cao. Do mỗi người có 1 mã vân tay khác nhau nênkhông thể bị sao chép hoặc lấy trộm.-Không cần đem theo thiết bị mở khoá nào khi ra ngoài.-Một số loại khoá có thể ghi nhn đến 100 dấu vân tay khác nhau.-Thêm hoặc xóa dấu vân tay dễ dàng

Nhược Điểm :-

Nếu tay bạn bị thương hoặc đổ mồ hôi nhiều, hệ thống sẽ không thể nhndiện vân tay để mở cửa. Để khắc phục điều này, bạn nên lau tay tht khôtrước khi mở khoá, cũng như cài đặt nhiều dấu vân tay khác nhau để phòng trường hợp có 1 ngón tay bị thương.-Khóa cửa vân tay có nhiều mẫu mã đa dạng, dễ mua phải hàng nhái, kémchất lượng.

  • 1. TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP– Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp. HCM, ngày 1 tháng 7 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Tài Tụ MSSV: 14141363 Chuyên ngành: Kỹ thuật Điện tử - Truyền thông Mã ngành: 41 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2014 I. TÊN ĐỀ TÀI: QUẢN LÝ DỮ LIỆU BỆNH NHÂN TRONG BỆNH VIỆN SỬ DỤNG CÔNG NGHỆ RFID II. NHIỆM VỤ 1. Các số liệu ban đầu: − Nguyễn Văn Hiệp, Giáo trình công nghệ nhận dạng bằng song vô tuyến, Đại học SPKT Tp.HCM 2014. − Phạm Quang Huy, Lê Cảnh Trung, Lập trình điều khiển Arduino, Đại học SPKT Tp.HCM. − Lê Trung Hiếu, Nguyễn Thị Minh Thi, Giáo trình lập trình Windows Form với C#.Net, Đại học Duy Tân 2012. 2. Nội dung thực hiện: − Thu thập dữ liệu quy trình quản lí giữ liệu bệnh nhân hiện nay. − Lựa chọn các thiết bị trong việc thiết kế mô hình phần cứng. − Thiết kế phần cứng. − Viết phần mềm. − Đánh giá kết quả thực hiện. III. NGÀY GIAO NHIỆM VỤ: 03/10/2018 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 01/01/2019 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Nguyễn Thanh Nghĩa CÁN BỘ HƯỚNG DẪN BM.ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
  • 2. TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PÚC o0o Tp. HCM, ngày 07 tháng 01 năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên : Nguyễn Tài Tụ Lớp: 14941DT MSSV:14141363 Tên đề tài: QUẢN LÝ DỮ LIỆU BỆNH NHÂN TRONG BỆNH VIỆN SỬ DỤNG CÔNG NGHỆ RFID. Tuần/ngày Nội dung Xác nhận GVHD 24/09/2018 - 30/09/2018 Tìm hiểu Arduino Uno R3. Tìm hiểu Module RFID RC522 Tìm hiểu giao tiếp RFID và Arduino.Tìm hiểu giao tiếp LCD với Arduino 01/10/2018- 18/10/2018 Viết chương trình Arduino giao tiếp với RFID RC522, hiển thị LCD 20/10/2018- 22/11/2018 Tìm hiểu và viết form giao tiếp giứa Arduino và máy tính 12/11/2018 - 24/11/2018 Tìm hiểu về SQL phpmyadmin và tạo cơ sở dữ liệu viết các hàm truy xuất 26/11/2018 - 01/12/2018 Kết nối form máy tính với cơ sở dữ liệu. Bắt đầu viết luận văn 03/12/2018 - 16/12/2018 Tiến hành kết nối các phần lại, tiến hành mô phỏng thực tế và cân chỉnh phần cứng, phần mềm. Viết luận văn 17/12/2018- 10/01/2019 Hoàn thành mô hình và nộp cuốn luận văn GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
  • 3. tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó. Người thực hiện Nguyễn Tài Tụ
  • 4. xin gửi lời cảm ơn đến ThS. Nguyễn Thanh Nghĩa đã trực tiếp hướng dẫn, góp ý, chia sẻ nhiều kinh nghiệm quý báu cũng như tận tình giúp đỡ và tạo điều kiện để chúng em hoàn thành tốt đề tài này. Em xin gửi lời cảm ơn đến các thầy cô trong Khoa Điện – Điện Tử đã tạo điều kiện thuận lợi cho chúng em hoàn thành đề tài. Em cũng gửi lời cám ơn đến các bạn chung nhóm Giáo Viên hướng dẫn, đã chia sẻ kinh nghiệm, trao đổi những kiến thức và những kinh nghiệm quý báu trong quá trình thực hiện đề tài. Xin chân thành cảm ơn! Người thực hiện đề tài Bàn Văn Huy Nguyễn Tài Tụ
  • 5. ĐỒ ÁN TỐT NGHIỆP................................................................................. i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP .................................................... ii LỜI CẢM ƠN................................................................................................................... iv MỤC LỤC.......................................................................................................................... v LIỆT KÊ HÌNH VẼ ........................................................................................................ vii LIỆT KÊ BẢNG............................................................................................................... ix TÓM TẮT.......................................................................................................................... x Chương 1. TỔNG QUAN ................................................................................................. 1 1.1 ĐẶT VẤN ĐỀ........................................................................................................... 1 1.2 MỤC TIÊU ............................................................................................................... 1 1.3 NỘI DUNG NGHIÊN CỨU.................................................................................... 1 1.4 GIỚI HẠN ................................................................................................................ 2 1.5 BỐ CỤC.................................................................................................................... 2 Chương 2. CƠ SỞ LÍ THUYẾT ...................................................................................... 3 2.1 TỔNG QUAN VỀ QUẢN LÍ DỮ LIỆU BỆNH NHÂN TRONG BỆNH VIỆN 3 2.1.1 Phương pháp quản lí dữ liệu bệnh nhân......................................................... 3 2.1.2 Nhu cầu trong việc quản lí dữ liệu bệnh nhân tại các bệnh viện.................. 3 2.2 GIỚI THIỆU VỀ HỆ THỐNG RFID.................................................................... 4 2.2.1 Giới thiệu Công Nghệ RFID............................................................................. 4 2.2.2 Các Thành Phần Hệ Thống RFID ................................................................... 5 2.2.3 Ưu và nhược điểm của hệ thống RFID............................................................ 6 2.3 GIỚI THIỆU VỀ PHẦN MỀM PHPMYADMIN ................................................ 7 2.3.1 Giới thiệu về phpMyAdmin.............................................................................. 7 2.3.2 Giới thiệu về cơ sở dữ liệu MySQL trong phpMyAdmin.............................. 7 2.4 GIỚI THIỆU VỀ PHẦN CỨNG ............................................................................ 9 2.4.1 Module RFID RC522 ........................................................................................ 9 2.4.2 Thẻ RFID.......................................................................................................... 11 2.4.3 Bộ Vi Xử Lí Trung Tâm Arduino UNO........................................................ 13 2.4.4 LCD 16x02........................................................................................................ 14 2.4.5 Module I2C LCD............................................................................................. 15 2.4.6 Chuẩn giao tiếp I2C ........................................................................................ 16 2.5 GIỚI THIỆU VỀ PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN............ 17
  • 6. PHẦN MỀM LẬP TRÌNH CHO MÁY TÍNH ........................... 19 Chương 3. TÍNH TOÁN VÀ THIẾT KẾ...................................................................... 22 3.1 TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG...................................................... 22 3.1.1 Thiết kế sơ đồ khối .......................................................................................... 22 3.1.2 Tính toán và thiết kế mạch............................................................................. 23 3.1.3 Sơ đồ nguyên lý của toàn mạch...................................................................... 27 Chương 4. THI CÔNG HỆ THỐNG VÀ KẾT QUẢ................................................... 28 4.1 THI CÔNG PHẦN CỨNG.................................................................................... 28 4.1.1 Thi công board mạch ...................................................................................... 28 4.1.2 Đóng gói và thi công bộ điều khiển................................................................ 31 4.1.3 Thi công mô hình............................................................................................. 31 4.1.4 Lập trình cho phần cứng ................................................................................ 32 4.2 LẬP TRÌNH VIẾT PHẦN MỀM......................................................................... 33 4.2.1 Lưu đồ và giải thuật C# .................................................................................. 33 4.2.2 Thực hiện viết phần mềm ............................................................................... 34 4.3 KẾT QUẢ THỰC HIỆN....................................................................................... 37 4.3.1 Kết quả thi công phần cứng............................................................................ 37 4.3.2 Hình ảnh mô phỏng......................................................................................... 37 Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................................................... 41 5.1 KẾT LUẬN............................................................................................................. 41 5.2 HƯỚNG PHÁT TRIỂN ........................................................................................ 42 5.3 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM ............................................................. 42 TÀI LIỆU THAM KHẢO .............................................................................................. 47 PHỤ LỤC......................................................................................................................... 48
  • 7. VẼ Hình 2.1: Một số thẻ RFID thông dụng hiện nay................................................................ 5 Hình 2.2: Giao tiếp giữa thẻ Tag và đầu đọc ...................................................................... 5 Hình 2.3: Giao diện đăng nhập phpMyAdmin.................................................................... 7 Hình 2.4: Giao diện đăng nhập MySQL ............................................................................. 8 Hình 2.5: Tạo các trường dữ liệu mới................................................................................. 8 Hình 2.6: Đầu đọc RFID HF............................................................................................... 9 Hình 2.7: Đầu đọc RFID UHF............................................................................................ 9 Hình 2.8: Đầu đọc/ghi RFID HF....................................................................................... 10 Hình 2.9: Module đọc thẻ MFRC522 ............................................................................... 10 Hình 2.10: Thẻ RFID ........................................................................................................ 12 Hình 2.11: Board Arduino UNO....................................................................................... 13 Hình 2.12: Màn Hình LCD 16x02 .................................................................................... 14 Hình 2.13: Module I2C LCD ............................................................................................ 15 Hình 2.14: Nguyên Lý hoạt động của chuẩn giao tiếp I2C............................................... 16 Hình 2.15: Hướng Dẫn cách Download phần mềm arduino............................................. 18 Hình 2.16 Hướng dẫn tải phần mềm Arduino IDE........................................................... 18 Hình 2.17: Giao diện khi cài đặt xong. ............................................................................. 19 Hình 2.18: Hướng dẫn tạo project mới ............................................................................. 20 Hình 2.19: Chạy thử chương trình mẫu. ........................................................................... 21 Hình 3.1: Sơ đồ khối của hệ thống.................................................................................... 22 Hình 3.2: Sơ đồ nguyên lí mạch nguồn............................................................................. 24 Hình 3.3: Dạng sóng sau khi chỉnh lưu............................................................................. 24 Hình 3.4: Sơ đồ nguyên lý kết nối module RFID với vi điều khiển................................. 26 Hình 3.5: LCD 16x02 kết hợp với module I2C ................................................................ 26 Hình 3.6: Sơ đồ nguyên lý toàn hệ thống.......................................................................... 27 Hình 4.1: Sơ đồ bố trí linh kiện của mạch ........................................................................ 28 Hình 4.2: Mạch in sau khi thiết kế.................................................................................... 29 Hình 4.3: Kiểm tra kết nối với Arduino............................................................................ 30 Hình 4.4: LCD khi kết nối với Arduino............................................................................ 31 Hình 4.5: Mô hình hoàn chỉnh .......................................................................................... 31 Hình 4.6: Lưu đồ và giải thuật Arduino Uno.................................................................... 32 Hình 4.7: Lưu đồ và giải thuật C#..................................................................................... 33 Hình 4.8: Đăng nhập C# trên Visual Studio ..................................................................... 34 Hình 4.9: Giao diện lầm việc của C# trên Visual Studio.................................................. 35 Hình 4.10: Giao diện đăng nhập sau khi nhập trình.......................................................... 36 Hình 4.11: Giao diện màn hình chính lập trình C# trên Window Form ........................... 36 Hình 4.12: Giao diện đăng nhập vào hệ thống.................................................................. 37 Hình 4.13: Khi đọc mã thẻ thành công ............................................................................. 37 Hình 4.14: Giao diện đăng nhập vào hệ thống.................................................................. 38 Hình 4.15: Giao diện phần mềm sau khi đăng nhập......................................................... 38
  • 8. cứu thông tin Bệnh Nhân bằng mã thẻ..................................................... 39 Hình 4.17: Tra thông tin bệnh nhân theo ngày vào........................................................... 39 Hình 4.18: Tra và xuất thông tin đơn thuốc của bệnh nhân.............................................. 40 Hình 5.1: Giao diện khi đăng nhập ................................................................................... 42 Hình 5.2: Giao diện sau khi đăng nhập thành công .......................................................... 43 Hình 5.3: Giao diện đăng ký tài khoản người dùng.......................................................... 44 Hình 5.4: Tra cứu bằng ngày vào khám............................................................................ 45 Hình 5.5 : Giao diện tra cứu thông tin bệnh nhân bằng mã thẻ của bệnh nhân................ 45 Hình 5.6: Giao diện thông tin đơn thuốc........................................................................... 46
  • 9. 2.1: Thông số kỹ thuật của LCD 16X02.................................................................. 15 Bảng 3.1: Thông số dòng điện và điện áp của các linh kiện trong mạch.......................... 23 Bảng 4.1: Bảng linh kiện sử dụng trong mạch.................................................................. 29
  • 10. cùng với sự phát triển vược bậc của khoa học kỹ thuật thì điện tử kết hợp với công nghệ thông tin là một trong những lĩnh vực có nhiều đóng góp thiết thực nhất để phục vụ cuộc sống của con người, một công cụ hỗ trợ đắc lực nhất trong công tác quản lí dữ liệu, bên cạnh đó trong lĩnh vực y tế cũng được áp dụng trong việc quản lí các thông tin liên quan đến các bệnh nhân như: các thông tin cá nhân, hồ sơ bệnh án, lịch sử khám bệnh. Nhưng sau khi nhóm đã đi tìm hiểu tại các bệnh viện hiện nay thì đa số việc áp dụng còn rất nhiều hạn chế vì vậy nhóm đã làm đề tài này với mong muốn để giải quyết vấn đề về quản lí dữ liệu bệnh nhân để giúp giảm bớt thời gian cũng như chi phí cho công tác lưu trữ dữ liệu bệnh nhân. Nội dung chính của đề tài quản lý dữ liệu bệnh nhân trong bệnh viện sử dụng công nghệ RFID, bao gồm: − Sử dụng board Arduino UNO làm vi điều khiển của khối điều khiển trung tâm. − Ứng dụng công nghệ RFID trong việc quản lí bệnh nhân. − Thêm, tra cứu thông tin bệnh nhân qua phần mềm máy tính. − Quản lí và lưu trữ thông tin bệnh nhân qua database.
  • 11. QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1 Chương 1. TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Trong thời đại khoa học công nghệ phát triển như vũ bão hiện nay, ngày càng có nhiều công nghệ mới được áp dụng vào thực tiễn. Tại Việt Nam, trong những năm gần đây đã xuất hiện và ứng dụng rộng rãi một công nghệ mới, đó là RFID (Radio Frequency Identification- Nhận dạng tần số sóng vô tuyến). RFID nổi lên tại Việt Nam nhờ có sự hỗ trợ hữu hiệu từ công nghệ số và bán dẫn. Dự báo trong vòng từ 3 đến 5 năm tới, một số lĩnh vực tiềm năng của RFID sẽ xuất hiện như thẻ thông minh (Smart card), chứng minh nhân dân, hộ chiếu điện tử (E-passport), ngành may mặc, lĩnh vực giày dép, đông lạnh, xuất khẩu nông sản, hệ thống giao thông công cộng, quản lý dữ liệu trong bệnh viện...Với những tính năng ưu việt của mình, hiện nay công nghệ RFID đã và đang được triển khai ngày càng nhiều trong các ứng dụng của cuộc sống. Với mục đích tìm hiểu phần nào công nghệ mới này để áp dụng vào lĩnh vực y tế, nhóm đã thực hiện đồ án “QUẢN LÝ DỮ LIỆU BỆNH NHÂN TRONG BỆNH VIỆN SỬ DỤNG CÔNG NGHỆ RFID” Đề tài này ứng dụng những kiến thức lập trình về arduino, truyền số liệu, quản lý cơ sở dữ liệu trên database để thiết kế một hệ thống sử dụng công nghệ RFID. Dữ liệu sẽ được quản lý trên một giao diện máy tính cho phép người sử dụng đọc và chỉnh sửa nội dung bên trong mỗi thẻ của mình quản lý bao gồm thời gian, ngày giờ bệnh nhân ra, vào viện, và các dữ liệu liên quan đến hồ sơ bệnh án. 1.2 MỤC TIÊU Tìm hiểu về cách quản lí bệnh nhân ở các bệnh viện. Từ đó thiết kế mô hình phần cứng của hệ thống mô phỏng theo mô hình đã tìm hiểu. Thiết kế giao diện quản lý bệnh nhân cho bệnh viện có thể truy xuất các thông tin như: hồ sơ bệnh án, các thông tin cơ bản, lịch sử khám bệnh. Sau khi đã hoàn thành, đúc kết kiến thức, kinh nghiệm để tìm hướng phát triển với mong muốn có thể áp dụng vào thực tế ở các bệnh viện để thuận tiện và tiết kiệm thời gian cho cả bệnh nhân và đội ngũ y bác sĩ. 1.3 NỘI DUNG NGHIÊN CỨU − Nghiên cứu Arduino UNO và module RFID RF522. − Tìm hiểu ngôn ngữ C#, cơ sở dữ liệu SQL.
  • 12. QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 − Thiết kế giao diện, viết code để quản lí bệnh nhân. − Xây dựng CSDL cho hệ thống. − Thiết kế và thi công mô hình phần cứng của hệ thống. − Viết code cho vi điều khiển kết nối với các phần cứng. − Kiểm tra hiệu chỉnh. − Viết báo cáo. 1.4 GIỚI HẠN Do đây là đề tài nghiên cứu có giới hạn thời gian nhất định nên đề tài của nhóm có một số giới hạn: − Có thể tra cứu lưu trữ được các thông tin cơ bản của bệnh nhân. − Có thể thêm, xóa, chỉnh sửa, xuất và in các thông tin của bệnh nhân. 1.5 BỐ CỤC −Chương 1: Tổng quan Đặt vấn đề, mục tiêu, nội dung nghiên cứu, giới hạn và bố cục đề tài. − Chương 2: Cơ sở lý thuyết Trình bày về quy trình hoạt động của hệ thống. Giới thiệu phần cứng và các phần mềm công cụ được sử dụng trong đề tài. − Chương 3: Tính toán và thiết kế Giới thiệu về hệ thống, tính toán thiết kế phù hợp, sơ đồ nguyên lý, lưu đồ giải thuật, thi công hệ thống và viết phần mềm. − Chương 4: Thi công hệ thống và kết quả Trình bày quá trình thi công mạch, kết quả đạt được. − Chương 5: kết luận và hướng phát triển Trình bày nhận xét các kết quả đạt được từ mô hình, mức độ hoàn thiện đề tài và trình bày kết luận nêu hướng phát triển. − Chương 6: Tài liệu tham khảo và phụ lục Tài liệu tham khảo và phụ lục.
  • 13. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 Chương 2. CƠ SỞ LÍ THUYẾT 2.1 TỔNG QUAN VỀ QUẢN LÍ DỮ LIỆU BỆNH NHÂN TRONG BỆNH VIỆN 2.1.1 Phương pháp quản lí dữ liệu bệnh nhân Ngày nay cùng với sự phát triển vược bậc của khoa học kỹ thuật thì điện tử kết hợp với công nghệ thông tin là một trong những lĩnh vực có nhiều đóng góp thiết thực nhất để phục vụ cuộc sống của con người, một công cụ hỗ trơ đắc lực nhất trong công tác quản lí dữ liệu, bên cạnh đó trong lĩnh vực y tế cũng được áp dụng trong việc quản lí các thông tin liên quan đến bệnh nhân như: các thông tin cá nhân, hồ sơ bệnh án, lịch sử khám bệnh, nhưng sau khi tìm hiểu tại các bệnh viện hiện nay thì đa số việc áp dụng còn rất nhiều hạn chế vì vậy nhóm đã làm đề tài với mong muốn để giải quyết vấn đề về quản lí dữ liệu bệnh nhân. 2.1.2 Nhu cầu trong việc quản lí dữ liệu bệnh nhân tại các bệnh viện Trong quá trình tìm hiểu tại nhiều nơi và xem nhiều tài liệu khác nhau, một bệnh viện có rất nhiều khoa như: khoa xét nghiệm, khoa sinh hóa, khoa thần kinh, khoa tai mũi họng. Trong mỗi khoa còn có rất nhiều các phòng ban nhỏ nên lượng thông tin của bệnh nhân rất khó kiểm soát. Trong nội dung của đề tài nhóm đã nghiên cứu khách quan làm đề tài để đồng bộ tất cả các dữ liệu của bệnh nhân lại để người dùng dễ dàng trong công tác quản lí và từ những thông tin đã tìm hiều trước đó đề tài sẽ có những yêu cầu sau: − Phần mềm có chức năng thêm, xóa, chỉnh sửa các thông tin của bệnh nhân thông qua tài khoản của người dùng hoặc cho phép tạo tài khoản để đăng nhập. − Lưu trữ được thông tin bệnh nhân với số lượng lớn. − Đáp ứng và dễ dàng tìm kiếm tất cả các thông tin cơ bản của bệnh nhân. − Cho phép người dùng tìm kiếm thông tin bệnh nhân với mã thẻ đọc được của mỗi bệnh nhân. Quản lý các thông tin cơ bản của bệnh nhân như: họ và tên, địa chỉ, số điện thoại, ngày vào, ngày ra, và hồ sơ khám bệnh. − Quản lý và xuất hồ sơ của bệnh nhân theo mã thẻ, ngày vào hoặc cho từng đơn thuốc khác nhau của bệnh nhân.
  • 14. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 2.2 GIỚI THIỆU VỀ HỆ THỐNG RFID 2.2.1 Giới thiệu Công Nghệ RFID Công nghệ RFID (Radio Frequency Identification) là công nghệ nhận dạng đối tượng bằng sóng vô tuyến, cho phép một thiết bị đọc có thể đọc thông tin chưa trong một thiết bị khác ở một khoảng cách gần mà không cần phải có một sự tiếp xúc vật lý nào. Một hệ thống RFID thường bao gồm 2 phần chính là thẻ tag (chip RFID chứa thông tin) và bộ đọc (reader) đọc các thông tin trên chip [1]. Kỹ thuật RFID sử dụng truyền thông không dây trong tải tần sóng vô tuyến để truyền dữ liệu từ các thẻ tag đến bộ đọc. Bộ đọc dữ liệu của tag và gửi thông tin để hệ thống để xử lý trên cơ sở dữ liệu [1]. Dạng đơn giản và phổ biến nhất được sử dụng hiện nay là hệ thống RFID bị động. Trong đó bộ đọc truyền một tín hiệu tần số vô tuyến thông qua anten đến một con chip, sau đó bộ đọc sẽ nhận lại thông tin phản hồi từ chip và gửi đến máy tính để xử lý thông tin. Các con chip từ các thẻ tag này không cần nguồn nuôi, chúng sử dụng năng lượng phát ra từ tín hiệu được gửi bởi bộ đọc [1]. Thẻ RFID là thiết bị có thể lưu trữ và truyền dữ liệu về bộ đọc bằng sóng vô tuyến. Trong đó các thẻ thường lưu trữ thông tin về các sản phẩm nào đó. Dữ liệu có thể là một số nhận dạng đơn giản được lưu trữ trong một thẻ chỉ đọc hoặc dữ liệu phức tạp hơn. Các thẻ phức tạp hơn này có thể chứa được các dữ liệu về ngày sản xuất số serial, hoặc thậm chí một số loại đặc biệt còn chưa các cảm biến để theo dõi nhiệt độ trung bình hoặc các loại dữ liệu khác. Thẻ RFID gồm chip bán dẫn nhỏ (bộ nhớ của chip có thể chứa từ 96 đến 512 bit dữ liệu, nhiều gấp 64 lần so với mã vạng) và anten được thu nhỏ trong một số hình thức đóng gói. Vài thẻ RFID giống như những nhãn giấy và được ứng dụng để bỏ vào hộp và đóng gói. Một số khác được sản xuất thành các miếng da bao cổ tay. Mỗi thẻ được lập trình với một nhận dạng duy nhất cho phép theo dõi không dây đối tượng hoặc con người đang gắn thẻ đó. Khi thẻ đi vào vùng sóng điện từ, nó sẽ phát hiện ra tín hiệu kích hoạt từ đầu đọc và sẽ phát thông tin nhận dạng đến đầu đọc. Đầu đọc giải mã dữ liệu được mã hóa trong chip (sóng vô tuyến phản xạ từ thẻ) và gửi vào hệ thống để xử lý.
  • 15. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 2.2.2 Các Thành Phần Hệ Thống RFID Một hệ thống RFID bao gồm các thành phần sau: −Reader: là thành phần bắt buộc, thường được tích hợp sẵn cả anten. −Thẻ tag: là thành phần bắt buộc với mọi hệ thống RFID. −Thiết bị xử lý: bao gồm các vi xử lý có khả năng nhận được mã tag được gửi về từ reader, sau đó gửi lên hệ thống. Hình 2.2: Giao tiếp giữa thẻ Tag và đầu đọc Hình 2.1: Một số thẻ RFID thông dụng hiện nay
  • 16. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 −Ngoài ra các hệ thống lớn còn được kết nối với các máy tính, hạ tầng mạng để truyền nhận thông tin của thẻ tag, thực hiện các tác vụ như liên kết tài khoản, thông tin, tiền phí...Cũng như có các cơ cấu chấp hành để thực thi các yêu cầu đặt ra với hệ thống. 2.2.3 Ưu và nhược điểm của hệ thống RFID ➢ Ưu điểm −Đọc với tốc độ cao mà không cần tiếp xúc vậy lý: nhiều đối tượng có thể được quét tại cùng một thời điểm, có thể lên đến 40 thẻ trong 3 giây làm giảm thời gian hoạt động tăng năng suất của hệ thống. −Khả năng đọc và ghi dữ liệu nhiều lần: một số thẻ cho phép đọc và ghi dữ liệu nhiều lần, từ đó làm giảm chi phí hoạt động của hệ thống, cũng như của người sử dụng. −Nhỏ gọn, bền: các thẻ RFID hoạt động khá tốt trong môi trường không thuận lợi (nóng ẩm, bụi bẩn...). −Một số thẻ RFID, đặc biệt là các thẻ thụ động không cần phải cung cấp nguồn để có thể hoạt động, từ đó nâng cao tính tiện lợi của hệ thống. −Việc áp dụng công nghệ RFID vào các lĩnh vực của đời sống làm tăng năng suất lao động, đồng thời tự động hoát các quy trình, sản xuất, thay thế các hoạt động đòi hỏi việc phải lặp đi lặp lại với tần suất cao của con người, từ đó giảm thiểu, triệt tiêu những sai sót có thể xảy ra. −Kiểm kê với tốc độ cao mà không cần tiếp xúc: Nhiều đối tượng có thể được quét tại cùng một thời điểm, có thể lên đến 40 thẻ trong 1 giây. Kết quả là thời gian để đếm các đối tượng đã giảm thực sự. ➢ Nhược điểm −Khả năng kiểm soát các thiết bị còn hạn chế: thẻ dễ bị nhiều sóng trong môi trường nước và kim loại. −Các đầu đọc có thể đọc chồng lên nhau: vì nhiệm vụ của các đầu đọc thẻ là gửi tín hiệu đến các thẻ tag, sau đó nhận tín hiệu gửi về, vì thế trong một số trường hợp có thể xảy ra việc đọc chồng chéo lên nhau. −Giá thành của hệ thống RFID hiện nay vẫn còn khá cao, xét đến tính thực tế ở Việt Nam thì vẫn chưa thể ứng dụng rộng rãi trong mọi lĩnh vực.
  • 17. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 2.3 GIỚI THIỆU VỀ PHẦN MỀM PHPMYADMIN 2.3.1 Giới thiệu về phpMyAdmin PhpMyAdmin là phần mềm mã nguồn mở được viết bằng ngôn ngữ PHP nhằm giúp người dùng (thường là các nhà quản trị cơ sở dữ liệu hay database administrator) có thể quản lý cơ sở dữ liệu MySQL thông qua giao diện web thay vì sử dụng giao diện cửa sổ dòng lệnh (command line interface). Sử dụng phpMyAdmin người dùng có thể thực hiện được nhiều tác vụ khác nhau như khi sử dụng cửa sổ dòng lệnh. Các tác vụ này bao gồm việc tạo, cập nhật và xoá các cơ sở dữ liệu, các bảng, các trường, dữ liệu trên bảng, phân quyền và quản lý người dùng phpMyAdmin là một công cụ hoàn hảo để duyệt cơ sở dữ thể được coi là một công cụ quản trị đầy đủ tính năng. 2.3.2 Giới thiệu về cơ sở dữ liệu MySQL trong phpMyAdmin ➢ Giới thiệu SQL là viết tắt của cụm từ Structure Query Language, tạm dịch là ngôn ngữ truy vấn có cấu trúc hay được gọi là Cơ sở dữ liệu Thông qua phpMyAdmin nó người dùng có thể quản lý cơ sở dữ liệu MySQL thông qua giao diện web phpMyAdmin Hình 2.3: Giao diện đăng nhập phpMyAdmin
  • 18. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 online người sử dụng có thể thực hiện nhiều tác vụ khác nhau như cập nhập chỉnh sửa bảng, trường dữ liệu, phân quyền cho người dùng. Hướng dẫn tạo cơ sở dữ liệu và truy vấn Trong giao diện đăng nhập MySQL ta chọn New để tạo một database có tên timkiem trong cơ sở dữ liệu tìm kiếm ta chọn new để tạo các cơ sở dữ liệu. Trong Hình 2.4: Giao diện đăng nhập MySQL Hình 2.5: Tạo các trường dữ liệu mới
  • 19. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9 các cơ sở dữ liệu ta chọn “chèn” để điền các thông tin vào để chỉnh sửa thông tin ta chọn “thay đổi”. 2.4 GIỚI THIỆU VỀ PHẦN CỨNG 2.4.1 Module RFID RC522 ➢ Giới thiệu các loại đầu đọc RFID Trên thị trường có rất nhiều loại đầu đọc thẻ RFID. Nó đa dạng về kiểu, màu sắc, loại kết nối... Sau đây là một số đầu đọc có trên thị trường: Hình 2.6 trình bày loại đầu đọc ở dãy tần HF 13.56MHz. Là loại đầu đọc có dây và có thêm bộ driver đính kèm cho việc giao tiếp máy tính. Thiết bị này chỉ có chức năng đọc dữ liệu từ thẻ mà không thể ghi dữ liệu. Hình 2.6: Đầu đọc RFID HF Hình 2.7: Đầu đọc RFID UHF
  • 20. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 Hình 2.5 trình bày loại đầu đọc hoạt động ở dãy tần số UHF. Là loại đầu đọc di động và chỉ cho chức năng đọc dữ liệu từ thẻ mà không thể ghi dữ liệu. Đây cũng là loại có giá cao nhất trong các loại đầu đọc RFID trên thị trường. Hình 2.6 trình bày loại đầu đọc/ghi dữ liệu rẻ nhất trên thị trường. Thiết bị hoạt động ở tần số 13.56MHz. Cho phép ghi/ đọc dữ liệu lên thẻ cũng như tương thích kết nối với đa số vi xử lý trên thị trường. Vì những thuận lợi mà thiết bị này mang đến nên nhóm nghiên cứu đã chọn module này làm thiết bị đọc RFID chính [3]. ➢ Giới thiệu module MFRC522 Module MFRC522 là module đọc/ghi trong môi trường giao tiếp tại tần số 13.56MHz. Module hỗ trợ đọc các chuẩn ISO/IEC 1443 A/MIFARE và NTAG. Module MFRC522 hỗ trợ hầu hết các loại thẻ MF1xxS20, MF1xxS70 và MF1xxS50. Module còn hỗ trợ giao tiếp và cho phép tốc độ truyền lên tới 848 kBd trong cả hai chiều đối với thẻ MIFARE. ➢ Chức năng chân và Thông số kỹ thuật. Hình 2.8: Đầu đọc/ghi RFID HF Hình 2.9: Module đọc thẻ MFRC522
  • 21. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 −Chức năng chân: +SDA(CS): chân lựa chọn chip khi giao tiếp SPI (kích hoạt mức thấp). +SCK: chân xung trong chế độ SPI. +MOSI (SDI): master data out - slave in trong chế độ giao tiếp SPI. +MISO (SDO): master data in – slave out trong chế độ giao tiếp SPI. +IRQ: chân ngắt. +GND: chân mass. +RST: chân reset module. +VCC: nguồn cung cấp 3.3V. −Thông số kỹ thuật cơ bản MFRC522: +Nguồn: 3.3VDC, 13-26mA. +Tần số sóng mang: 13.56MHz. +Khoảng cách hoạt động:0 ~60mm (mifare1 card). +Giao tiếp: SPI, I2C, UART. +Tốc độ truyền dữ liệu: tối đa 10Mbit/s. +Các loại Card RFID (tag) hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire. +Kích thước: 40mm x 60 mm. ➢ Nguyên lý hoạt động Module MFRC522 là một reader nên có sẽ phát ra sóng điện từ có tần số 13.56MHz qua anten. Khi có một thẻ tag nằm trong vùng hoạt động, thẻ tag sẽ nhận ra sóng điện từ này và thẻ sẽ thu nhận sóng này làm năng lượng. Từ đó phát lại cho module MFRC522 biết mã số cũng như dữ liệu của thẻ. Module sẽ đọc mã số thẻ và dữ liệu để thực thi một nhiệm vụ mà người sử dụng yêu cầu. ➢ Kết nối module MFRC522 với Arduino Để module MFRC522 có thể đọc/ghi dữ liệu lên thẻ tag cũng như giao tiếp dữ liệu với máy tính, ta cần kết nối module này với Arduino thông qua chuẩn giao tiếp SPI. 2.4.2 Thẻ RFID Hiện nay trên thị trường có rất nhiều loại thẻ RFID với nhiều kích thước và mẫu mã khác nhau nhưng chúng đều có cấu tạo các phần cơ bản như nhau gồm 2 thành phần cơ bản: Chip lưu trữ một số thứ tự duy nhất, hoặc thông tin khác dựa trên loại
  • 22. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12 thẻ và anten được gắn với vi mạch truyền thông tin từ chip đến bộ đọc, một anten được gắn với vi mạch truyền thông tin từ chip đến bộ đọc, một anten càng lớn. ➢ Các loại thẻ RFID được chia làm 3 loại cơ bản và thông dụng là: −Thẻ thụ động (Passive tag): Thẻ thụ động hay nhãn dán thụ động là thẻ không có nguồn năng lượng. Ngay khi mà dòng điện được gây ra bởi những tín hiệu sóng radio đi vào trong ăng-ten cung cấp đủ năng lượng cho mạch tích hợp CMOS (IC) trong thẻ, mạch bắt đầu hoạt động và thẻ truyền tín hiệu phản hồi lại. Điều này có nghĩa là khi thẻ thụ động đi qua máy đọc, năng lượng của sóng radio phát từ máy đọc sẽ cung cấp năng lượng cho chip và đánh thức nó để thu nhận thông tin mà nó lưu giữ. Điều này có nghĩa là anten phải thiết kế để thu năng lượng từ cả hai tín hiệu đến và tín hiệu phản lại truyền ra. Chính vì nó không có nguồn nuôi bên trong thẻ, nên những thẻ thụ động và nhãn dán thụ động có kích thước khá nhỏ, vì thể nó cũng không có khoảng cách đọc quá xa. −Thẻ bán chủ động (Semi-active tag): Thẻ bán chủ động RFID tương đối giống với thẻ thụ động, trừ phần có thêm một pin nhỏ. Pin này cho phép IC của thẻ được cấp nguồn liên tục, giảm bớt sự cần thiết trong thiết kế anten thu năng lượng từ tín hiệu quay lại. Các thẻ bán thụ động không chủ động truyền tín hiệu vô tuyến về đầu đọc, mà nó nằm im bảo tồn năng lượng cho tới khi nhận được tín hiệu vô tuyến từ đầu đọc, nó sẽ kích hoạt hệ thông hoạt động. Thẻ bán chủ động RFID nhanh hơn Hình 2.10: Thẻ RFID
  • 23. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13 trong sự phản hồi lại vì vậy mạnh hơn trong việc đọc số truyền so với thẻ chủ động. Do đó khoảng cách đọc của nó cũng xa hơn so với thẻ thụ động. −Thẻ chủ động (Active tag): Đây là loại thẻ khác so với hai loại trên, thẻ chủ động RFID có nguồn năng lượng trong chính bản thân, được sử dụng để cung cấp nguồn cho tất các các IC và phát ra tín hiệu. Chúng thường được gọi là đèn hiệu bởi vì chúng phát các tín hiệu mà chúng nhận được. Thẻ chủ động có vùng hoạt động rộng hơn, có thể lên tới vài chục mét, trong khi bộ nhớ của nó cũng lớn hơn, cho phép lưu trữ và truyền nhiều dữ liệu hơn. Trong khuôn khổ đề tài này sử dụng thẻ thụ động (Passive tag). 2.4.3 Bộ Vi Xử Lí Trung Tâm Arduino UNO ➢ Giới thiệu Arduino là dự án nguồn mở, làm việc dựa trên bo mạch điện tử bao gồm một vi điều khiển, các đầu vào/đầu ra, một ngôn ngữ lập trình và một IDE (trình soạn thảo trong môi trường phát triển tích hợp). Arduino là một công cụ để thực hiện các ứng dụng tương tác độc lập hoặc có thể được kết nối với phần mềm trên máy tính (chẳng hạn như là Flash, Max/MSP…). Arduino UNO R3 là dòng mạch phổ biến nhất trong các dòng mạch Arduino, phiên bản R3 là phiên bản mới nhất, có độ chính xác và độ bền cao hơn rất nhiều so với Arduino UNO phiên bản cũ. Arduino UNO R3 có thể sử dụng 3 vi điều khiển họ 8bit AVR là Atmega8, Atmega168, Atmega328. Bộ điều khiển này có thể điều khiển led đơn, điều khiển động cơ, xử lí các tín hiệu, thu thập dữ liệu từ cảm biến để hiển thị lên màn hình LCD...và còn rất nhiều ứng dụng khác mà Arduino có thể xử lý [4]. Hình 2.11: Board Arduino UNO
  • 24. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14 ➢ Thông số kỹ thuật Các thông số kĩ thuật chính: −Sử dụng vi điều khiển Atmega328 họ 8 bit. −Có 14 chân I/O Digital. Trong đó có 6 chân có thể được sử dụng là ngõ ra cấp xung PWM. −Có 6 ngõ ra Analog với độ phân giải 10 bit. −Điện áp hoạt động là 5Vdc được cấp thông qua cổng USB. −Điện áp khuyên dùng là từ 7V đến 12V. −Điện áp vào giới hạn từ 6V đến 20V. −Bộ nhớ Flash: 32kB với 0,5kB được dùng cho Bootloader. −SRAM: 2kB. Arduino UNO R3 có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7V đến12V và giới hạn là 6V đến 20V. Thông thường nếu không cấp nguồn bằng cáp USB thì nên cấp nguồn bằng pin 9V. Bởi vì nếu cấp nguồn vượt quá ngưỡng giới hạn trên thì Arduino UNO sẽ dễ dàng bị hỏng. Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng các thông số sau: −32KB bộ nhớ Flash: những câu lệnh được lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường sẽ có vài KB được sử dụng cho Bootlader. −2KB cho SRAM: Giá trị các biến được khai báo khi lập trình sẽ lưu ở đây. Trong chương trình khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. −1KB cho EEPROM: là nơi có thể đọc và ghi dữ liệu vào mà không lo bị xóa khi mất điện giống như dữ liệu trên SRAM. 2.4.4 LCD 16x02 ➢ Giới thiệu LCD là một thiết bị được sử dụng rất nhiều trong các ứng dụng của vi điều khiển. LCD có nhiều ưu điểm hơn các dạng hiển thị khác như: có khả năng hiển thị đa dạng nhiều ký tự, các ký tự rất trực quan (gồm chữ, số, ký tự để đồ họa), dễ dàng ứng dụng Hình 2.12: Màn Hình LCD 16x02
  • 25. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15 theo nhiều giao thức giao tiếp khác nhau, ít chiếm tài nguyên hệ thống và giá thành hợp lý. LCD có nhiều loại về số chân nhưng chủ yếu là hai loại 14 chân và 16 chân. Điểm khác nhau giữa hai loại này là 16 chân sẽ có thêm chân nguồn cho đèn nền, còn các chân còn lại không thay đổi [2]. ➢ Thông số kỹ thuật 2.4.5 Module I2C LCD STT Tên I/O Chức năng 1 VSS Nguồn Chân nối GND 2 VDD Nguồn Chân cấp nguồn cho LCD 3 VCC Điện áp Chân cho phép điều khiển sự tương phản 4 RS InPut Chân chọn thanh ghi 5 RW InPut Chân để chọn chế độ đọc/ghi dữ liệu: −Nối mức “0” để LCD hoạt động ở chế độ ghi −Nối mức “1” để LCD hoạt động ở chế độ đọc 6 E InPut Chân cho phép 7-14 DB0-DB7 I/O Chân dữ liệu có 2 chế độ hoạt động: − Chế độ 8 bit: dữ liệu truyền trên 8 đường − Chế độ 4 bit: dữ liệu truyền trên đường D4 – D7. 15 A Input Chân cấp nguồn 5V. 16 K Input Chân nối GND Bảng 2.1: Thông số kỹ thuật của LCD 16X02 Hình 2.13: Module I2C LCD
  • 26. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16 Module I2C LCD là module tích hợp IC PCF8574 cho phép mở rộng chân trong giao tiếp I2C. Để sử dụng các loại LCD có driver là HD44780 thì cần ít nhất 7 chân giao tiếp giữa LCD và MCU. Nhưng trong một số dự án sử dụng MCU có số chân hạn chế thì việc kết nối với LCD làm mất rất nhiều chân kết nối. Vì vậy module này ra đời cho phép giao tiếp với LCD thông qua hai chân SDA và SCL. 2.4.6 Chuẩn giao tiếp I2C ➢ Giới thiệu I2C là chuẩn giao tiếp nối tiếp hai dây được phát triển bởi hãng Phillips. Đây là đường giao tiếp giữa các IC với nhau. Chuẩn giao tiếp này được sử dụng rộng rãi trên toàn thế giới và nó trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển. Đặc điểm của chuẩn I2C là sử dụng hai dây SDA và SCL. SDA là đường truyền dữ liệu, SCL là đường truyền xung đồng hồ để động bộ. Mỗi thiết bị sử dụng chuẩn I2C đều có địa chỉ giao tiếp, nó cho phép duy trì mối quan hệ chủ - tớ trong suốt thời gian kết nối. ➢ Nguyên lí hoạt động Thiết bị chủ tạo một điều kiện START: chuyển từ trạng thái cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao. Điều kiện này thông báo cho thiết bị tớ lắng nghe dữ liệu trên đường truyền. Sau đó thiết bị chủ gửi địa chỉ mà thiết bị chủ muốn kết nối với thiết bị tớ. Khi thiết bị tớ trên đường truyền I2C nhận ra đúng địa chỉ thì sẽ phản hồi cho thiết bị chủ biết bằng một xung ACK. Lúc này giao tiếp giữa thiết bị chủ và tớ trên đường dữ liệu bắt đầu. Mỗi xung clock từ đường SCL sẽ có một bit dữ liệu được truyền. Mức tín hiệu SDA chỉ thay đổi khi xung clock đang ở mức thấp và ổn định khi ở mức cao. Hình 2.14: Nguyên Lý hoạt động của chuẩn giao tiếp I2C
  • 27. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17 Cả thiết bị chủ và thiết bị tớ đều có thể truyền hoặc nhận dữ liệu tùy thuộc vào quá trình truyền thông là đọc hay viết. Bên truyền sẽ gửi dữ liệu 8 bit và bên nhận sẽ phản hồi với một bit ACK. Để kết thúc quá trình, thiết bị chủ tạo một điều kiện STOP: chuyển từ trạng thái cao sang thấp trên đường SDA trong khi đường SCL đang ở mức cao. 2.5 GIỚI THIỆU VỀ PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN ➢ Môi trường lập trình Arduino IDE Môi trường phát triển tích hợp Arduino là một nền tảng được viết bằng ngôn ngữ Java, nó được trích xuất từ IDE cho ngôn ngữ lập trình vi xử lý và những dự án khác. Môi trường lập trình Arduino IDE gồm một trình soạn thảo với các tính năng như: cho phép làm nổi bật các cú pháp, các dấu ngoặc nối chương trình, tự đồng thụt đầu dòng, có khả năng biên dịch và tự tải lên các chương trình đã viết lên bo mạch với cú nhấp chuột. Một chương trình hoặc mã viết cho Arduino được gọi là sketch. Arduino IDE cho phép viết chương trình bằng ngôn ngữ C. Người sử dụng cần định nghĩa hai hàm để có thể thực hiện một chương trình là: − Hàm setup (): Hàm này chỉ chạy một lần duy nhất khi bắt đầu chương trình. Trong hàm này chủ yếu được dung để khởi tạo các thiết lập ban đầu. − Hàm loop (): Hàm này được gọi lặp lại liên tục. Chương trình chỉ ngừng khi ngắt nguồn bo mạch Arduino. Môi trường lập trình Arduino IDE có thể chạy trên cả 3 nền tảng phổ biến nhất hiện nay là Windows, MacOS và Linux. Do có tính chất mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm. Ngôn ngữ lập trình có thể mở rộng thông qua các thư viện C/C++. Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn. Để cài đặt Arduino IDE, tùy vào từng hệ điều hành khác nhau mà ta sẽ tải các bản tương thích thông qua trang web chính thức: http://www.arduino.cc/ và tiến hành cài đặt từng bước theo hướng dẫn. ➢ Cách cài đặt Bước 1: Truy cập vào trang: https://www.arduino.cc/en/Main/Software Ta tiến hành click vào mục Download sẽ có một cửa sổ hiện ra
  • 28. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18 sau đó ta chọn mục Download the Arduino IDE chọn phần: Windows ZIP file for non admin install. Bước 2: Sau khi chọn sẽ được chuyển sang trang mới. Tại trang mới, chọn JUST DOWNLOAD để bắt đầu tải Arduino IDE.Sau khi tải về và tiến hành cài đặt thành công ta lưu ý trước khi thực hiệp lập trình, ta phải lựa chọn loại board mà ta sử dụng, cũng như port được kết nối thông qua menu Tools. Để tạo project mới, ta chọn menu File/New. Sau đó tiến hành lập trình cho Arduino. Trong quá trình viết chương trình, nếu cần thêm các thư viện thì vào menu Sketch/Include Library. Sau khi đã viết xong, tiến hành biên dịch và kiểm tra lỗi bằng cách chọn menu Sketch/Verify/Compile. Nếu Hình 2.16 Hướng dẫn tải phần mềm Arduino IDE Hình 2.15: Hướng Dẫn cách Download phần mềm arduino
  • 29. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19 trình biên dịch kiểm tra và không phát hiện lỗi, ta sẽ đổ chương trình xuống board bằng cách chọn menu Sketch/Upload 2.6 GIỚI THIỆU PHẦN MỀM LẬP TRÌNH CHO MÁY TÍNH ➢ Giới thiệu C# và phần mềm lập trình Visual Studio C# là một ngôn ngữ lập trình hướng đối tượng (object-oriented) và có thể được sử dụng với cho nhiều mục đích khác nhau (general purpose). C# là ngôn ngữ được phát triển bởi Microsoft và là ngôn ngữ được sử dụng phổ biến trong khuôn khổ .NET framework (cùng được phát triển bởi Microsoft). Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động được ở cả gỡ lỗi mức độ mã nguồn và gỡ lỗi cấp độ máy. Có nhiều công cụ tích hợp bao gồm mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu. Hình 2.17: Giao diện khi cài đặt xong.
  • 30. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20 Sử dụng C# chúng ta có thể xây dựng được các ứng dụng phần mềm chạy trên hệ điều hành Windows, các ứng dụng web service, các ứng dụng mobile, các ứng dụng về database và rất nhiều loại dụng khác nữa. Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C, C++, VB.NET (thông qua Visual Basic.Net), C#. Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML, JavaScript và CSS. Để cài đặt Visual Studio, ta có thể tải phiên bản Express, hoàn toàn miễn phí và đáp ứng nhu cầu nghiên cứu cũng như công việc. Để tạo project mới, ta vào File/New/Project, sau đó đặt tên project, nơi lưu trữ và chọn OK để hoàn thành Hình 2.18: Hướng dẫn tạo project mới
  • 31. SỞ LÍ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21 Sau đó, chương trình sẽ xuất hiện giao diện cho phép chúng ta thiết kế giao diện bằng cách sử dụng các đối tượng có sẵn cùng với các thuộc tính tương ứng. Sau khi chọn các sự kiện xảy ra, sẽ mở ra giao diện cho phép chúng ta lập trình như sau: Sau khi lập trình xong, chúng ta thực hiện kiểm tra lỗi, sau đó tiến hành Debug bằng cách chọn Start Debugging và chạy chương trình. Hình 2.19: Chạy thử chương trình mẫu.
  • 32. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22 Chương 3. TÍNH TOÁN VÀ THIẾT KẾ Trong chương này, trình bày về phương án thiết kế hệ thống gồm các khối: đọc dữ liệu, hiển thị, vi xử lý, máy tính để quản lí hệ thống. 3.1 TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG 3.1.1 Thiết kế sơ đồ khối ➢ Chức năng từng khối: −Khối vi điều khiển: đọc dữ liệu từ thẻ RFID. Cấp nguồn cho khối đọc dữ liệu thẻ RFID, khối hiển thị. Truyền nhận dữ liệu với máy tính. −Khối đọc dữ liệu thẻ: Đọc dữ liệu từ thẻ RFID. −Khối hiển thị: Hiển thị thông tin mã thẻ −Máy tính: Nhận dữ liệu từ khối vi điều khiển đem so sánh với khối dữ liệu để truy xuất thông tin. Hình 3.1: Sơ đồ khối của hệ thống ĐỌC DỮ LIỆU TỪ THẺ RFID VI ĐIỀU KHIỂN MÁY TÍNH KHỐI HIỂN THỊ CƠ SỞ DỮ LIỆU KHỐI NGUỒN
  • 33. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23 −Khối cơ sở dữ liệu: Lưu các thông tin người dùng. −Khối nguồn: Để cung cấp nguồn cho khối vi điều khiển. ➢ Nguyên lý hoạt động −Khi đăng nhập vào hệ thống và quẹt thẻ RFID, mã thẻ sẽ được khối vi điều khiển gửi lên phần mềm máy tính đồng thời mã cũng sẽ hiện ra màn hình LCD, từ phần mềm máy tính sẽ lấy mã thẻ đó truy xuất lên cơ sở dữ liệu để lấy thông tin về hiển thị lên máy tính. −Trong phần mềm máy tính chúng ta có thể thêm thẻ mới, xóa thẻ, thay thế sửa thông tin người dùng. 3.1.2 Tính toán và thiết kế mạch ➢ Thiết kế khối nguồn. Các mức điện áp của các linh kiện sử dụng trong mạch là: −Module RC522 hoạt động ở mức điện áp 3.3VDC, dòng tiêu thụ từ (13-26) mA. −Module Arduino UNO sử dụng ở mức điện áp 5-12VDC dòng định mức 500 (mA), dòng ra tối đa trên các chân GPIO là 40mA, từ chân VCC là 150 (mA). −Module I2C sử dụng mức điện áp từ 2.7-5.5VDC dòng định mức 60 (mA). Từ các thông tin đã được trình bày như trên dòng tổng của mạch sẽ được tính bằng công thức: It= IRFID + II2C + ILed + IArduino = 586 (mA) ( 3.1) − Thiết kế mạch nguồn Sau khi tìm hiểu và tính toán mức điện áp và dòng tiêu thụ của các linh kiện trong mạch thì nhóm quyết định sử dụng nguồn DC 5V-1A để cung cấp cho phần cứng. Bảng 3.1: Thông số dòng điện và điện áp của các linh kiện trong mạch STT Tên Linh Kiện Dòng định mức(mA) Số lượng Mức điện áp(V) Tổng dòng điện(mA) 1 Arduino UNO 500 01 5 500 2 RFID RC522 100 01 3.53 100 3 I2C +LCD 16x02 60 01 5 60 4 LED 25 01 5 25
  • 34. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24 Giải thích và lựa chọn linh kiện: Nguồn 9VAC cấp cho cầu diode ta lấy từ máy biến áp sau khi chỉnh lưu. − Chọn mạch chỉnh lưu: Ta có thể chọn diode rời hoặc cầu diode tích hợp để làm nhiệm vụ biến đổi điện áp xoay chiều thành điện áp một chiều ở đây ta chọn cầu diode 2A Điện áp một chiều chính là điện áp trung bình sau khi chỉnh lưu được xác định theo công thức: (3.2) Trong đó: Vd là điện áp trung bình sau khi chỉnh lưu VAC là điện áp sau khi chỉnh lưu từ máy biến áp. − Chọn tụ lọc nguồn: Tụ điện có chức năng tích trữ năng lượng điện trong nó lên nó làm mịn điện áp một chiều. Nếu không có tụ điện thì điện áp ở hai đầu ra của mạch chỉnh lưu tuy đã là một chiều nhưng vẫn còn nhấp nhô, không bằng phẳng hay nhẵn nhụi như điện áp một chiều của pin hay ắc quy. Để làm được điện áp một chiều ổn định thì người ta phải mắc thêm tụ điện này. Khi chọn tụ điện cần quan tâm đến hai thông số đó là điện áp định mức và điện dung của nó. Ta biết rằng điện áp đỉnh của Hình 3.2: Sơ đồ nguyên lí mạch nguồn Hình 3.3: Dạng sóng sau khi chỉnh lưu
  • 35. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25 một điện áp xoay chiều sẽ bằng giá trị của nó nhân với căn 2. Giả sử một biến biến áp có điện áp U2 là 9V thì điện áp đỉnh trên hai đầu dây của nó sẽ được tính theo công thức (3.2). Vì thế khi chọn tụ lọc nguồn ta phải chọn tụ có điện áp định mức lớn hơn điện áp đỉnh rơi trên hai đầu U2 của biến áp. Còn trị số điện dung thì chọn càng lớn càng lọc nguồn tốt nhưng ngược lại sẽ tốn tiền. Với biến áp có đầu ra 9VAC thì chọn tụ lọc nguồn có điện áp định mức lớn hơn điện áp đỉnh thì ta chọn tụ có điện áp định mức 1000uF 16V. − Chọn IC ổn áp: theo nhu cầu sử dụng của mạch thì ta chọn IC ổn áp 7805, IC này cho mức điện áp ngõ ra cố định là 5VDC với dòng điện tối đa là 1A. − Chọn điện trở cho led: Module Arduino có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA ở đề tài thì sử dụng mức điện áp là 5V. Mà Led được sử dụng trong mạch là led đỏ có mức hoạt động ở mức 1,6 đến 2.1V dòng 10 đến 20mA nếu lấy trực tiếp nguồn 5V thì led sẽ bị hư nên ta chọn điện trở cho led được tính bằng công thức: Giá trị điện trở nhỏ nhất: Rmin = 5𝑉−𝑉𝐿𝑚𝑎𝑥 20𝑚𝐴 = 5𝑉−2.1𝑉 20𝑚𝐴 = 145 () (3.3) Giá trị điện trở lớn nhất: Rmax = 5𝑉−𝑉𝐿𝑚𝑖𝑛 10𝑚𝐴 = 5𝑉−1.6𝑉 10𝑚𝐴 = 340 () (3.4) để led hoạt động ổn định nên ta điện trở có giá trị là 220 (). Sau khi tìm hiểu và tính toán mức điện áp và dòng tiêu thụ để tối ưu cho phần cứng và giảm thiểu chi phí thì nhóm quyết định sử dụng nguồn DC 5V - 1A từ ngõ ra của máy tính để cấp nguồn cho Module Arduino. Nguồn ngõ ra của Module Arduino đủ cấp cho các Module RC522, Module I2C. ➢ Thiết kế khối RFID Khối RFID bao gồm đầu đọc thẻ RC522 và thẻ MIFARE hoạt động ở mức điện áp 2.5VDC đến 3.3VDC, dòng hoạt động 100mA, hỗ trợ chuẩn giao tiếp SPI với khoảng cách đọc từ 0 đến 5cm.
  • 36. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26 Sơ đồ mạch của khối RFID ➢ Thiết kế khối hiển thị Sử dụng LCD 16x02 kết hợp với module I2C để hiển thị thông tin bệnh nhân lên màn hình. Sơ đồ kết nối LCD 16x02 kết hợp với module I2C: Hình 3.4: Sơ đồ nguyên lý kết nối module RFID với vi điều khiển Hình 3.5: LCD 16x02 kết hợp với module I2C 9 10 11 12 13 GND 5V A4 A5
  • 37. TOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27 3.1.3 Sơ đồ nguyên lý của toàn mạch ➢ Giải thích sơ đồ nguyên lý: − Sử dụng nguồn DC 5V - 1A cung cấp cho Arduino. − Đầu đọc RC522 được kết nối với vi điều khiển thông qua chân 9,10,11,12,13 của Module Arduino, nguồn cấp cho đầu đọc là 3.3 VDC được cung cấp từ Module Arduino. − Module I2C được kết nối Module Arduino thông qua chân A4, A5 của Module Arduino và nguồn cấp cho Module là 5v được lấy từ Module Arduino. − Led báo hiệu được kết nối với Arduino thông qua chân số 7. Hình 3.6: Sơ đồ nguyên lý toàn hệ thống
  • 38. CÔNG HỆ THỐNG VÀ KẾT QUẢ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28 Chương 4. THI CÔNG HỆ THỐNG VÀ KẾT QUẢ Từ những nghiên cứu trước đó nhóm đã thực hiện phân chia thi công hệ thống ra làm hai phần: − Thiết kế và thi công phần cứng. − Viết chương trình cho Arduino, thiết kế phần mềm giao diện quản lý hệ thống và cơ sở dữ liệu. 4.1 THI CÔNG PHẦN CỨNG 4.1.1 Thi công board mạch Các bước thi công phần cứng −Mạch in được thiết kế trên phần mềm Altimum 17.0.7 −Thực hiện thi công mạch và tiến hành thi công board mạch. −Sau khi thi công sẽ dùng đồng hồ VOM để kiểm tra ngõ vào, ngõ ra để xem có lỗi trong lúc thực hiện hay không. ➢ Mạch điều khiển Sơ đồ bố trí linh kiện của mạch Hình 4.1: Sơ đồ bố trí linh kiện của mạch
  • 39. CÔNG HỆ THỐNG VÀ KẾT QUẢ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29 Sơ đồ bao gồm: ở trung tâm là nơi gắn board mạch Arduino UNO, Một jump 8 chân cho phép kết nối với Module RFID và được đánh dấu bằng tên “RFID”, một jump 4 chân ở bên phải của mạch cho phép kết nối với Module I2C, gồm 3 con điện trở với 2 led và 1 buzer như trên hình. Sơ đồ thi công mạch in lớp dưới: ➢ Thống kê linh kiện sử dụng trong hệ thống Bảng 4.1: Bảng linh kiện sử dụng trong mạch STT Tên Linh Kiện Giá trị Số lượng Chú thích 1 Module Arduino UNO 01 2 Điện trở 0.22k 01 3 Led đơn 5v 01 Màu xanh, màu đỏ 4 Module MFRC522 3.3v 01 5 LCD 5V 01 Loại 16x02 6 Module I2C 5v 01 Hình 4.2: Mạch in sau khi thiết kế
  • 40. CÔNG HỆ THỐNG VÀ KẾT QUẢ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30 4.1.1 Lắp ráp và kiểm tra Sau khi đã hoàn thành việc vẽ mạch in, thực hiện lắp ráp linh kiện và hàn linh kiện lên board kiểm tra mạch xem board có bị đứt hay chập mạch không, nếu có thì tiến hành xử lý. Test mạch và kiểm tra − Kết nối với máy tính: Kết nối máy tính với Arduino thông qua cổng USB, có thể kiểm tra trực tiếp bằng phần mềm lập trinh cho Arduino là Arduino IDE. − Nếu như kết nối thành công, sẽ xuất hiện dòng: “Port: COM4(Arduino/UNO). Có nghĩa là đã kết nối thành công Arduino với máy tính thông qua cổng COM4. − Kết nối với khối dữ liệu: Các khối được kết nối theo sơ đồ nguyên lý, sau đó cấp nguồn cho Arduino, kiểm tra đèn màu đỏ báo nguồn trên các RFID RC522 xem có hoạt động không, dùng code mẫu và sử dụng Serial Monitor có sẵn của Arduino IDE để kiểm tra xem có hoạt động bình thường hay không. Hình 4.3: Kiểm tra kết nối với Arduino
  • 41. CÔNG HỆ THỐNG VÀ KẾT QUẢ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 − Khối hiển thị: LCD sau khi kết nối với module I2C, sẽ kết nối với Arduino theo sơ đồ nguyên lý. − Kết nối nguồn: Kết nối nguồn vào Arduino, chú ý xem thứ các module kết nối với Arduino có được cấp nguồn ổn định không, có bị chập chờn hay không hoạt động không. Theo dõi thêm vài phút để có thể phát hiện nếu Arduino bị nóng vì quá dòng, nguồn quá cao dẫn đến hư hỏng thiết bị. 4.1.2 Đóng gói và thi công bộ điều khiển Sau khi kiểm tra và kết nối các khối, các thiết bị lại với nhau, ta được mô hình sau: 4.1.3 Thi công mô hình Sau khi đã kết nối phần cứng, ta kết nối với máy tính thông qua cổng USB, như vậy ta đã được một mô hình hoàn chỉnh. Sau đó, tiến hành lập trình cho Arduino, xây dựng phần mềm quản lý và cơ sơ dữ liệu. Hình 4.4: LCD khi kết nối với Arduino Hình 4.5: Mô hình hoàn chỉnh
  • 42. CÔNG HỆ THỐNG VÀ KẾT QUẢ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 4.1.4 Lập trình cho phần cứng ➢ Lưu đồ và giải thuật Arduino UNO ➢ Giải thích lưu đồ: Sau khi ta kết nối nguồn và nạp chương trình cho vi điều khiển, các khối module LCD, RFID và Serial Port sẽ được khởi tạo, ta tiến hành đọc thẻ và kiểm tra tín hiệu RFID. Nếu có tín hiệu nhận được từ thẻ RFID thì vi điều kiển sẽ xử lý và gửi dữ liệu của mã thẻ RFID lên Serial Port và hiển thị lên màn hình LCD và phần mềm máy tính. Nếu vi điều khiển không nhận được tín hiệu từ thẻ RFID thì sẽ tiếp tục quay lại kiểm tra tín hiệu RFID. Hình 4.6: Lưu đồ và giải thuật Arduino Uno Bắt đầu, Khởi tạo serial Port, LCD, RFID Kiểm tra dữ liệu thẻ RFID ử lý chuỗi mã thẻ Gửi mã thẻ qua serial Port, hiển thị lên LCD Kết thúc Đ S
  • 43. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 4.2 LẬP TRÌNH VIẾT PHẦN MỀM 4.2.1 Lưu đồ và giải thuật C# Giao diện hệ thống Đăng nhập Hệ thống Admin User Kết nối CSDL với arduino Kiểm tra dữ liệu từ arduino Kiểm tra dữ liệu từ arduino Thêm, xóa, sửa thông tin bệnh nhân. Đăng ký tài khoản sử dụng Thêm, xóa, sửa thông tin bệnh nhân. Cập nhật cơ sở dữ liệu Cập nhật cơ sở dữ liệu Kết nối CSDL với arduino Đ Đ Đ Đ Đ S S S S S Kết thúc Bắt đầu Hình 4.7: Lưu đồ và giải thuật C#
  • 44. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 ➢ Giải thích lưu đồ: Khi khởi động chương trình cho phép vào giao diện của hệ thống. Mỗi hệ thống sẽ sẽ có một tài khoản quản lý là admin, với tài khoản admin này cho phép người sử dụng tạo nhiều tài khoản (user) khác với chức năng tương tự chức năng của tài khoản admin nhưng không có chức năng tạo thêm tài khoản user. Vào trang đăng nhập của hệ thống và sử dụng một tài khoản đã được tạo trước đó để đăng nhập. Mỗi giao diện quản lý sau khi đăng nhập cho phép người dùng kết nối giữa dữ liệu đọc được từ arduino với máy tính để hiển thị thông tin của mỗi thẻ bệnh nhân trên máy tính. Dữ liệu này sẽ được kiểm tra với dữ liệu đã được lưu trên database trước đó. Nếu có thông tin dữ liệu của thẻ trên database, hệ thống cho phép truy xuất những thông tin kèm theo của bệnh nhân như tên, tuổi, giới tính, năm sinh, hình ảnh, ngày vào, ngày ra và bệnh án. Bên cạnh đó, với mỗi lần thêm, sửa hoặc xóa thông tin của bệnh nhân thì hệ thống cũng sẽ cập nhật thông tin trên database. 4.2.2 Thực hiện viết phần mềm − Ngôn ngữ lập trình hướng đối tượng : Ngôn ngữ lập trình C# là ngôn ngữ lập trình thuần hướng đối tượng với các đặc tính như thừa kế, đa hình, đóng gói và trừu tượng. − Biến chưa được khởi tạo không thể dùng trong C#. Hỗ trợ kiểm tra tràn dữ liệu trong C#. − Bộ thu gom rác tự động: C# hỗ trợ tự động quản lý bộ nhớ. − C# là ngôn ngữ lập trình hướng đối tượng cho phép người sử dụng xây dựng các ứng dụng trên nền tảng web như :game, mobile store, điện toán đám mây. Bước 1 : Tạo Project và lựa chọn kiểu ứng dụng cần phát triển Hình 4.8: Đăng nhập C# trên Visual Studio
  • 45. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 Cửa sổ bên trái : Mô tả template ứng dụng cần tạo như : − Ứng dụng windows Application : Console application, Windows Phone, Windows Store. − Ứng dụng Web : ASP.net MVC, ASP.Net Webform, Web API. − Ứng dụng Office SharePoint : Cho phép tạo các ứng dụng trên nền tảng cổng thông tin SharePoint Bước 2 : Sau khi nhập các thông tin cần thiết như tên project, chọn thư mục lưu trữ, giao diện hiển thị bộ Visual Studio như sau : Bước 3 : Thực hiện lập trình bằng ngôn ngữ C#. Ứng dụng Windows Form: Là ứng dụng được hiển thị với giao diện cửa sổ đồ họa. Chúng ta chỉ cần kéo và thả các điều khiển (control) lên cửa sổ Form. Visual Studio sẽ sinh mã trong chương trình để tạo ra, hiển thị các thành phần trên cửa sổ. − Giao tiếp với người dùng bằng bàn phím và mouse. − Có giao diện đồ họa và xử lý sự kiện. Hình 4.9: Giao diện lầm việc của C# trên Visual Studio
  • 46. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 Ta có thể kéo và thả các thành phần giao diện (control) lên Form. Để hiển thị cửa sổ Toolbox chứa những điều khiển mà ta có thể kéo và thả lên Form, ta chọn View → Toolbox từ menu. Biên dịch và chạy chương trình: Để biên dịch chương trình, ta chọn Build → Build Solution. Để chạy chương trình, ta chọn Debug → Start. Nếu ta có thay đổi nội dung của Form, như đặt thêm điều khiển khác lên Form chẳng hạn, ta phải yêu cầu Visual Studio biên dịch lại. Sau khi lập trình ta có giao diện đăng nhập và giao diện màn hình sau khi đăng nhập Hình 4.11: Giao diện màn hình chính lập trình C# trên Window Form Hình 4.10: Giao diện đăng nhập sau khi nhập trình
  • 47. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 4.3 KẾT QUẢ THỰC HIỆN 4.3.1 Kết quả thi công phần cứng 4.3.2 Hình ảnh mô phỏng ➢ Phần cứng Khi các khối được kết nối và nạp code cho vi điều khiển ta được kết quả như sau: − Đã đọc được mã thẻ và hiển thị lên LCD. − Giửi được mã thẻ lên phần mềm máy tính. ➢ Phần mềm Hình 4.12: Giao diện đăng nhập vào hệ thống Hình 4.13: Khi đọc mã thẻ thành công
  • 48. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 − Sau khi đăng nhập vào hệ thống ta sẽ có giao diện như hình. − Sau nhấn Kết Nối và tiến hành đọc thẻ ở ô Mã Thẻ, hiện ID của bệnh nhân. Nút Thông Tin thể hiện tất cả thông tin cơ bản của bệnh nhân sẽ hiện ra, ngoài ra chúng ta còn có thể thêm, xóa, sửa thông tin bệnh nhân bằng cách nhấn vào các ô tương ứng trên giao diện phần mềm. − Có thể xuất được thông tin cơ bản của bệnh nhân Hình 4.14: Giao diện đăng nhập vào hệ thống Hình 4.15: Giao diện phần mềm sau khi đăng nhập
  • 49. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 − Có thể tìm kiếm và xuất thông tin bệnh nhân theo mã thẻ. − Có thể tìm kiếm và xuất thông tin bệnh nhân theo ngày vào. Hình 4.16: Tra cứu thông tin Bệnh Nhân bằng mã thẻ Hình 4.17: Tra thông tin bệnh nhân theo ngày vào
  • 50. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 − Có thể xem và xuất ra đơn thuốc của bệnh nhân Hình 4.18: Tra và xuất thông tin đơn thuốc của bệnh nhân
  • 51. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Sau 12 tuần thực hiện đề tài, trong quá tình nghiên cứu làm đồ án nhóm đã nghiên cứu được nhiều vấn đề và kiến thức mới Nhóm đã đạt được những kết quả sau: − Tìm hiểu về cách quản lí dữ liệu bệnh nhân hiện nay. − Tìm hiểu được các nhu cầu cơ bản trong việc quản lí dữ liệu bệnh nhân. − Tìm hiểu về cách thức sử dụng và lập trình các Module RFID RC522, Arduino UNO, Module I2C, LCD 16x02. − Đối với module RFID được sử dụng trong hệ thống nhóm đã có được cái nhìn tổng quan và những ứng dụng thiết thực của công nghệ RFID cũng như thực hiện được cách giao tiếp module với hệ thống, lập trình để hệ thống có thể đọc, ghi thông tin trên thẻ Mifare từ đầu đọc RFID. − Biết cách sử dụng các phần mềm lập trình như Visual Studio, Arduino IDE, phpMyAdmin. − Tìm hiều được thêm ngôn ngữ lập trình C#, C, SQL Biết được cách tạo một hệ cơ sở dữ liệu để lưu trữ và truy xuất thông tin, biết được quy trình và cách viết một chương trình quản lí bệnh nhân bằng phần mềm C#. − đơn thuốc của bệnh nhân 5.1 KẾT LUẬN Sau thời gian nghiên cứu và thi công, nhóm đã thực hiện được công việc như xây dựng phần cứng, viết giao diện quản lý, xây dựng cơ sở dữ liệu cho hệ thống. Hiểu được các lập trình Arduino, hiểu biết cơ bản về cơ chế và cách thức lập trình C# và sql phpMyAdmin. Từ những yêu cầu đặt ra khi nghiên cứu, nhóm đã đạt được một số yêu cầu sau: − Hoàn thiện được hoàn chỉnh mô hình, các bộ đọc quét được mã thẻ nhanh chóng. − Phần mềm hoàn thiện và hoạt động ổn định. − Hiểu biết cơ bản về lập trình C# và cách xây dựng cơ sở dữ liệu trên và sql phpmyadmin. − Hiểu biết về Arduino Uno R3 và module RC522.
  • 52. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 Ngoài ra còn một số yếu điểm cần được khắc phục: − Giao diện chưa thân thiện với người dùng. − Mô hình còn nhiều điểm chưa giống với thực tế của các hệ thống quản lý dữ liệu của bệnh nhân trong bệnh viện. ➢ Hạn chế của đề tài − Sử dụng module RFID RC522 để đọc mã thẻ tương đối chính xác, tuy nhiên vẫn còn chậm và chưa thể đáp ứng được nhu cầu khi có một lượng lớn người thực hiện tác vụ quét thẻ. − Màn hình LCD 16x2 vẫn còn khá nhỏ và thiếu tính trực quan, không thân thiện với người dùng. 5.2 HƯỚNG PHÁT TRIỂN Sau khi nghiên cứu và xây dựng mô hình mô phỏng, để có thể áp dụng vào thực tiễn tốt hơn thì cần phải phát triển thêm các yếu tố sau: − Thiết kế hệ thống quản lý các hồ sơ dữ liệu bệnh nhân trong quá trình chụp phim như chụp X-Quang, MRI, đo điện não... − Thiết kế giao diện và mô hình trực quan hơn, để người dùng có thể dễ dàng quản lý và xây dựng một cơ sở dữ liệu để quản lý một cách tối ưu nhất dữ liệu của bệnh nhân. 5.3 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM Bước 1: Sau khi mở phần mềm chúng ta Đăng Nhập bằng tài khoản admin được cung cấp bởi người lập trình. Hình 5.1: Giao diện khi đăng nhập
  • 53. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 Bước 2: Sau khi đăng nhập thành công ta có giao diện như hình 5.2 − Ta chọn biểu tượng kết nối để kết nối vi điều khiển để lấy thông tin ID từ thẻ Sau khi quét thẻ thông tin ID sẽ được hiện ở ô Mã Thẻ sau đó ta click vào Thông Tin thì lúc đó tất cả thông tin của bệnh nhân sẽ được hiện ra − Tương tự khi chúng ta có thể thêm, xóa, chỉnh sửa các thông tin bằng cách click vào các biểu tượng trên màn hình − Ngoài ra chúng ta còn có thể thêm hình đại diện cho bệnh nhân bằng cách click vào biểu tượng load − Để xem toa thuốc ta cũng click vào mục đơn kê thoa thuốc − Sau khi đăng nhập thành công chúng ta có giao diện màn hình đăng nhập có nút đăng ký, chúng ta chỉ đăng ký được sau khi đăng nhập bằng tài khoản admin. Hình 5.2: Giao diện sau khi đăng nhập thành công
  • 54. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 Bước 3: Tra cứu thông tin bệnh nhân. − Để tra cứu thông tin và lịch sử của bệnh nhân trên màn hình giao diện đăng nhập như hình 5.5 ta chọn biểu tượng Quản Lí sau đó chọn biểu tượng Excel. Trong giao diện này ta có thể tìm kiếm bằng các quét thẻ và nhấn tìm kiếm để xuất ra file thông tin đó ta chọn phần Excel − Ở phần này có 2 cách tra cứu lịch sử bệnh nhân hình 5.4 là cách tìm kiếm theo ID bệnh nhân, ta chọn biểu tượng kết nối rồi tiến hành quẹt thẻ sau đó nhấn tìm kiếm thông tin bệnh nhân sẽ được hiển thị ra − Chúng ta có thể tra cứu thông tin bệnh nhân bằng cách nhập khoảng thời gian cụ thể như hình 5.6 Hình 5.3: Giao diện đăng ký tài khoản người dùng
  • 55. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 Hình 5.4 : Giao diện tra cứu thông tin bệnh nhân bằng mã thẻ của bệnh nhân Hình 5.5: Tra cứu bằng ngày vào khám
  • 56. LUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 Bước 4: Xuất và in ra thông tin và toa thuốc của bệnh nhân Ở giao diện màn hình sau khi đăng nhập hình 5.4 ta chọn đơn kê toa thuốc thì sẽ có cửa sổ tiếp theo như hình 5.6 ở đây chúng ta có thể in ra thông tin và đơn thuốc của bệnh nhân. Hình 5.6: Giao diện thông tin đơn thuốc
  • 57. KHẢO BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47 TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Văn Hiệp, “Giáo trình công nghệ nhận dạng bằng sống vô tuyến”, ĐH Sư phạm Kỹ Thuật TP.HCM, 2014. [2] Nguyễn Đình Phú, “Giáo trình vi điều khiển PIC”, N B ĐH Quốc gia Tp.HCM, 8/2016. [3] N P Semiconductor, “MFRC522 Standard performance MIFARE and NTAG frontend”, N P Semiconductor Datasheet, 2016. [4] Phạm Quang Huy, Lê Cảnh Trung, “Lập trình điều khiển Arduino”, Đại học SPKT Tp.HCM [5] Nguyễn Mạnh Hùng, Lập trình và sử dụng Module đọc thẻ RFID-RC522, Link: http://arduino.vn/bai-viet/833-lap-trinh-va-su-dung-modul-doc-rfid-rc522. [6] JunezRiyaz, How to Connect I2C Lcd Display to Arduino Uno, Link: https://www.instructables.com/id/How-to-Connect-I2C-Lcd-Display-to-Arduino- Uno/.
  • 58. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48 PHỤ LỤC ➢ Code cho vi điều khiển

    include

    include

    include

    include

    include

    define SS_PIN 10

    define RST_PIN 9

    define LED_DENIED_PIN 7

    define LED_ACCESS_PIN 6 LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class int code[] = {32,154,149,117}; //This is the stored UID (Unlock Card) int codeRead = 0; String uidString; void setup() { Serial.begin(9600); SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 pinMode( LED_DENIED_PIN , OUTPUT); pinMode( LED_ACCESS_PIN , OUTPUT); lcd.begin (16,2); //Initialize the LCD lcd.backlight(); lcd.setCursor(0,0); lcd.print("Show your card:)"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Tag UID:"); lcd.setCursor(0,1); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(String(mfrc522.uid.uidByte[i] < 0x10 ? "0":"")); Serial.print(String(mfrc522.uid.uidByte[i],HEX)); lcd.print(String(mfrc522.uid.uidByte[i] < 0x10 ? "0":"")); lcd.print(String(mfrc522.uid.uidByte[i], HEX)); lcd.print(" "); } Serial.println();

  • 59. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49 int i = 0; boolean match = true; while(i
  • 60. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50 ➢ Code viết phần mềm using System; using System.Data; using System.Drawing; using System.Windows.Forms; using System.Data.SqlClient; using MySql.Data.MySqlClient; namespace TIMKIEM { public partial class Form1 : Form { public Form1(string role) { InitializeComponent(); label12.Text = role; timer1.Start();//dem thoi gian } string connString = "datasource=localhost;port=3306;Initial Catalog='timkiem';username=root;password=; charset=utf8;"; private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false;//khi tao ra 1 thread, co 1 user su dung gay ra loi cho he thong if (label12.Text.Trim() != "admin") { btn_them.Enabled = false; btn_sua.Enabled = false; btn_xoa.Enabled = false; linkLabel1.Enabled = false; fileExcelToolStripMenuItem.Enabled = false; filePdfToolStripMenuItem.Enabled = false; } string connString = "datasource=localhost;port=3306;Initial Catalog='timkiem';username=root;password=; charset=utf8;"; MySqlConnection conn = new MySqlConnection(connString); try { } catch { }
  • 61. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51 } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("Ban chua nhap thong tin!!", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { MySqlDataAdapter sda = new MySqlDataAdapter("SELECT *FROM tbl_quanly where ID ='" + textBox1.Text + "'", connString); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows.Count > 0) { dataGridView1.DataSource = dt; dataGridView1.Refresh(); ////////////////sua/////////// textBox1.DataBindings.Clear(); textBox1.DataBindings.Add("Text", dataGridView1.DataSource, "ID"); txt_ten.DataBindings.Clear(); txt_ten.DataBindings.Add("Text", dataGridView1.DataSource, "HOTEN"); txtdiachi.DataBindings.Clear(); txtdiachi.DataBindings.Add("Text", dataGridView1.DataSource, "DIACHI"); txtsdt.DataBindings.Clear(); txtsdt.DataBindings.Add("Text", dataGridView1.DataSource, "SDT"); txt_benh.DataBindings.Clear(); txt_benh.DataBindings.Add("Text", dataGridView1.DataSource, "BENH"); txt_toa.DataBindings.Clear(); txt_toa.DataBindings.Add("Text", dataGridView1.DataSource, "SOTOA"); txtgioitinh.DataBindings.Clear(); txtgioitinh.DataBindings.Add("Text", dataGridView1.DataSource, "GIOITINH"); this.txtvao.DataBindings.Clear(); this.txtvao.DataBindings.Add("Text", dataGridView1.DataSource, "NGAYVAO");
  • 62. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52 this.txtra.DataBindings.Clear(); this.txtra.DataBindings.Add("Text", dataGridView1.DataSource, "NGAYRA"); txtduongdan.DataBindings.Clear(); txtduongdan.DataBindings.Add("Text", dataGridView1.DataSource, "HINH"); filename = txtduongdan.Text; if (filename != "") { pt_pic.Image = new Bitmap(Application.StartupPath + @"anh" + filename); } else { filename = ""; pt_pic.Image = null; } } else { MessageBox.Show("Không có dữ liệu cho thẻ này!", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Warning); Form1_Load(null, null); textBox1.Text = ""; } } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { } string LuuTam = ""; private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { LuuTam = serialPort1.ReadTo("rn"); // truyen du lieu tu arduino len PC textBox1.Text = LuuTam; }
  • 63. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53 private void btnKetNoi_Click(object sender, EventArgs e) { serialPort1.PortName = "COM4"; serialPort1.BaudRate = 9600; serialPort1.Open(); } private void btnNgatKetNoi_Click(object sender, EventArgs e) { serialPort1.Close(); } private void textBox1_TextChanged(object sender, EventArgs e) { } private void btn_thoat_Click(object sender, EventArgs e) { DialogResult = MessageBox.Show("Bạn có muốn thoát không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (DialogResult == DialogResult.OK) { Application.Exit(); } } string filename = ""; private void btn_load_Click(object sender, EventArgs e) { dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//dd tieu de vo giua OpenFileDialog dlg = new OpenFileDialog(); dlg.InitialDirectory = Application.StartupPath + @"anh"; if (dlg.ShowDialog() == DialogResult.OK) { filename = dlg.FileName.Substring(dlg.FileName.LastIndexOf("") + 1, dlg.FileName.Length - dlg.FileName.LastIndexOf("") - 1); } try {
  • 64. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54 pt_pic.Image = new Bitmap(Application.StartupPath + @"anh" + filename); txtduongdan.Text = filename; } catch { MessageBox.Show(this, "Hinh chon ko dung", "Thong bao"); } } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void btn_huy_Click(object sender, EventArgs e) { txt_ten.Text = ""; textBox1.Text = ""; txtdiachi.Text = ""; txtgioitinh.Text = ""; txtsdt.Text = ""; txt_benh.Text = ""; txtvao.Text = ""; txtra.Text = ""; txt_toa.Text = ""; } private void đăngNhậpToolStripMenuItem_Click(object sender, EventArgs e) { } private void fileExcelToolStripMenuItem_Click(object sender, EventArgs e) { Excel frm = new Excel(); frm.Show(); Hide(); serialPort1.Close(); } private void xuấtFileExcelToolStripMenuItem_Click(object sender, EventArgs e) {
  • 65. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55 } private void filePdfToolStripMenuItem_Click(object sender, EventArgs e) { PDF frm = new PDF(); frm.Show(); Hide(); serialPort1.Close(); } private void btn_xoa_Click(object sender, EventArgs e) { DialogResult thongbao; thongbao = MessageBox.Show("Bạn có chắc muốn xóa!", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (thongbao ==DialogResult.OK) { MySqlConnection conn = new MySqlConnection(connString); conn.Open(); string sql = "delete from tbl_quanly where ID='" + textBox1.Text + "' "; MySqlCommand cmd = new MySqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show("Đã xóa thành công!"); conn.Close(); } } public bool kiemtramathe1(string mathe) { MySqlConnection conn = new MySqlConnection(connString); conn.Open(); string sql = "select ID from tbl_quanly where ID='" + mathe + "' "; MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() == true) { conn.Close(); return true; } conn.Close(); return false; } private void btn_them_Click(object sender, EventArgs e) { MySqlConnection conn = new MySqlConnection(connString); try
  • 66. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 { // if (textBox1.Text != "" && txt_ten.Text != "") if (kiemtramathe1(textBox1.Text) == true) { conn.Open(); string sql = "insert into tbl_quanly(ID,HOTEN,DIACHI,GIOITINH,HINH,SDT,NGAYVAO,NGAYRA, TUOI,BENH,SOTOA) values('" + textBox1.Text + "',N'" + txt_ten.Text + "',N'" + txtdiachi.Text + "',N'" + txtgioitinh.Text + "',N'" + txtduongdan.Text + "' ,N'" + txtsdt.Text + "',N'" + txtvao.Text + "',N'" + txtra.Text + "',N'" + this.dtp.Text + "',N'" + txt_benh.Text + "',N'" + txt_toa.Text + "' )"; MySqlCommand cmd = new MySqlCommand(sql, conn); int kq = (int)cmd.ExecuteNonQuery(); if (kq > 0) { MessageBox.Show("Thêm thành công !"); } else MessageBox.Show("Thêm thất bại !!"); conn.Close(); } else { conn.Open(); string sql = "insert into tbl_quanly(ID,HOTEN,DIACHI,GIOITINH,HINH,SDT,NGAYVAO,NGAYRA, TUOI,BENH,SOTOA) values('" + textBox1.Text + "',N'" + txt_ten.Text + "',N'" + txtdiachi.Text + "',N'" + txtgioitinh.Text + "',N'" + txtduongdan.Text + "' ,N'" + txtsdt.Text + "',N'" + txtvao.Text + "',N'" + txtra.Text + "',N'" + this.dtp.Text + "',N'" + txt_benh.Text + "',N'" + txt_toa.Text + "' )"; MySqlCommand cmd = new MySqlCommand(sql, conn); int kq = (int)cmd.ExecuteNonQuery(); if (kq > 0) { MessageBox.Show("Thêm thành công !"); //Control.CheckForIllegalCrossThreadCalls = false; } else MessageBox.Show("Thêm thất bại !!"); conn.Close(); } } catch(Exception ex)
  • 67. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 { } } private void btn_sua_Click(object sender, EventArgs e) { MySqlConnection conn = new MySqlConnection(connString); if (textBox1.Text != "") { MySqlCommand cmd = new MySqlCommand("update tbl_quanly set ID=@ID,HOTEN=@HOTEN,DIACHI=@DIACHI,GIOITINH=@GIOITINH,HI NH=@HINH,SDT=@SDT,NGAYVAO=@NGAYVAO,NGAYRA=@NGAYR A,TUOI=@TUOI,BENH=@BENH,SOTOA=@SOTOA where ID=@ID", conn); cmd.Parameters.AddWithValue("@id", textBox1.Text); cmd.Parameters.AddWithValue("@HOTEN", txt_ten.Text); cmd.Parameters.AddWithValue("@DIACHI", txtdiachi.Text); cmd.Parameters.AddWithValue("@GIOITINH", txtgioitinh.Text); cmd.Parameters.AddWithValue("@HINH", txtduongdan.Text); cmd.Parameters.AddWithValue("@SDT", txtsdt.Text); cmd.Parameters.AddWithValue("@NGAYVAO", txtvao.Text); cmd.Parameters.AddWithValue("@NGAYRA", txtra.Text); cmd.Parameters.AddWithValue("@TUOI", this.dtp.Text); cmd.Parameters.AddWithValue("@BENH", txt_benh.Text); cmd.Parameters.AddWithValue("@SOTOA", txt_toa.Text); MySqlDataReader myReader; try { conn.Open(); myReader = cmd.ExecuteReader(); MessageBox.Show("Đã lưu lại thành công !"); while (myReader.Read()) { } } catch (Exception ex) { } conn.Close(); } } private void timer1_Tick(object sender, EventArgs e)
  • 68. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 { DateTime dateTime = DateTime.Now; this.time_lbl.Text = dateTime.ToString(); } public class LuuThongTin { static public string mathe; static public string ten; static public string diachi; static public string sotoa; } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { serialPort1.Close(); LuuThongTin.mathe = textBox1.Text; LuuThongTin.ten = txt_ten.Text; LuuThongTin.diachi = txtdiachi.Text; LuuThongTin.sotoa = txt_toa.Text; Toathuoc frm = new Toathuoc(); frm.Show(); Hide(); } private void button3_Click(object sender, EventArgs e) { serialPort1.Close(); Form2 frm = new Form2(); frm.Show(); this.Hide(); } } }