ĐỒ ÁN MÔN HỌC ĐỀ TÀI: MÁY ĐO THÂN NHIỆT TỰ ĐỘNG GVHD: THS. VÕ THỊ THU HỒNG TP. HỒ CHÍ MINH, THÁNG 8 NĂM 2021 LỜI CẢM ƠN Em xin cảm ơn chân thành tới các thầy cô Khoa Điện- Điện Tử Trường ĐH Bách thiếu xót và rất mong nhận được sự thông cảm của quý thầy cô. Em xin chân thành cảm ơn và chúc quý thầy cô thật nhiều sức khỏe! Tp. Hồ Chí Minh, ngày 01 tháng 08 năm 2021 . Sinh viên ` TÓM TẮT ĐỒ ÁN Đồ án này trình bày về hệ thống đo thân nhiệt tự động. Áp dụng các kiến thức đã được học của các môn Vi xử lý, Hệ thống ngôn ngữ và lập trình C, Truyền số liệu và mạng, Thiết kế hệ thống nhúng, Lập trình hệ thống nhúng để triển khai, thực hiện một mô hình hệ thống nhúng phù hợp và thiết thực với đời sống, cụ thể là trong tình hình dịch bệnh hiện nay. MỤC LỤC 1. GIỚI THIỆU 1 1.1 Tổng quan 1 1.2 Nhiệm vụ đề tài 1 2. LÝ THUYẾT 1 3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 2 4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 2 5. KẾT QUẢ THỰC HIỆN 2 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4 6.1 Kết luận 4 6.2 Hướng phát triển 4 7. TÀI LIỆU THAM KHẢO 4 8. PHỤ LỤC 4 DANH SÁCH HÌNH MINH HỌA Hình 2.1 Minh hoạ kết nối sử dụng giao tiếp I2C 2 YHình 2.2 Khung truyền dữ liệu khi thiết bị master muốn gửi dữ liệu cho thiết bị slave 3 YHình 2.3. Khung truyền dữ liệu khi thiết bị master muốn đọc dữ liệu từ thiết bị slave 4 YHình 2.4. Kết nối UART giữa 2 thiết bị 7 YHình 2.5. Truyền dữ liệu trong UART 2 YHình 2.6 Kết quả mô phỏng 2 YHình 2.7 Kết quả mô phỏng 2 YHình 2.8 Kết quả mô phỏng 2 YHình 2.9 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - ĐỒ ÁN MÔN HỌC ĐỀ TÀI: MÁY ĐO THÂN NHIỆT TỰ ĐỘNG GVHD: THS VÕ THỊ THU HỒNG TP HỒ CHÍ MINH, THÁNG 8 NĂM 2021 Lời cảm ơn GVHD: Ths Võ Thị Thu Hồng LỜI CẢM ƠN Em xin cảm ơn chân thành tới các thầy cô Khoa Điện- Điện Tử Trường ĐH Bách Khoa- Đại Học Quốc Gia TP.HCM, đặc biệt là cô Võ Thị Thu Hồng đã tận tình hướng dẫn, hỗ trợ em trong suốt thời gian thực hiện đồ án môn học và trong quá trình làm báo cáo đồ án môn học Trong thời gian thực hiện đồ án môn học, em đã được cô tư vấn, giải đáp tận tình những thắc mắc từ việc chọn đề tài cho đến khi thực hiện đề tài, phát huy những kiến thức chuyên môn đã được học trong trường do các thầy cô tận tình giảng dạy để áp dụng vào đề tài Với kiến thức còn hạn chế nên bản báo cáo đồ án môn học không thể tránh khỏi những thiếu xót và rất mong nhận được sự thông cảm của quý thầy cô Em xin chân thành cảm ơn và chúc quý thầy cô thật nhiều sức khỏe! Tp Hồ Chí Minh, ngày 01 tháng 08 năm 2021 Sinh viên ` i Đồ án môn học GVHD: Ths Võ Thị Thu Hồng TÓM TẮT ĐỒ ÁN Đồ án này trình bày về hệ thống đo thân nhiệt tự động Áp dụng các kiến thức đã được học của các môn Vi xử lý, Hệ thống ngôn ngữ và lập trình C, Truyền số liệu và mạng, Thiết kế hệ thống nhúng, Lập trình hệ thống nhúng để triển khai, thực hiện một mô hình hệ thống nhúng phù hợp và thiết thực với đời sống, cụ thể là trong tình hình dịch bệnh hiện nay ii MỤC LỤC 1 GIỚI THIỆU 1 1.1 Tổng quan 1 1.2 Nhiệm vụ đề tài 1 2 LÝ THUYẾT 1 3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 2 4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 2 5 KẾT QUẢ THỰC HIỆN 2 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4 6.1 Kết luận 4 6.2 Hướng phát triển 4 7 TÀI LIỆU THAM KHẢO 4 8 PHỤ LỤC 4 DANH SÁCH HÌNH MINH HỌA Hình 2.1 Minh hoạ kết nối sử dụng giao tiếp I2C 2 YHình 2.2 Khung truyền dữ liệu khi thiết bị master muốn gửi dữ liệu cho thiết bị slave .3 YHình 2.3 Khung truyền dữ liệu khi thiết bị master muốn đọc dữ liệu từ thiết bị slave .4 YHình 2.4 Kết nối UART giữa 2 thiết bị 7 YHình 2.5 Truyền dữ liệu trong UART 2 YHình 2.6 Kết quả mô phỏng 2 YHình 2.7 Kết quả mô phỏng 2 YHình 2.8 Kết quả mô phỏng 2 YHình 2.9 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 YHình 2.1 Kết quả mô phỏng 2 DANH SÁCH BẢNG SỐ LIỆU Bảng 1 Thông số hệ thống 3 Đồ án môn học GVHD: Ths Võ Thị Thu Hồng 1 GIỚI THIỆU 1.1 Tổng quan Thân nhiệt của con người là một thông số quan trọng biểu đạt tình trạng sức khỏe của con người Trong bối cảnh đại dịch COVID như hiện nay, việc đo thân nhiệt đóng vai trò vô cùng quan trọng trong việc rà soát những biểu hiện, triệu chứng ban đầu của bệnh, giúp con người biết được tình trạng cơ thể hay cụ thể là thân nhiệt của cơ thể để đưa ra những biện pháp thích hợp trong công tác phòng chống dịch Ngày nay khoa học công nghệ ngày càng phát triển, các dòng vi điều khiển như AVR , PIC, ARM ngày càng trở lên thông dụng và phổ biến của nó trong các thiết bị điện tử, di động Nếu như trên mảng PC chúng ta có Intel, AMD thì trên mảng di động, ARM cũng "nổi tiếng" với mức độ tương đương bởi vì kiến trúc vi xử lí của họ được sử dụng trong hầu hết các thiết bị di động đang có mặt trên thị trường ARM là kiến trúc tập lệnh chỉ dẫn 32-bit được phổ biến nhất thế giới, vượt qua cả kiến trúc x86 của Intel, tính theo số lượng chip được sản xuất Theo ARM Holdings, chỉ tính riêng năm 2010, kiến trúc của họ đã có mặt trên 95% số smartphone, 35% số TV và set-top box, 10% số máy tính di động được bán ra Dựa trên bộ xử lý Arm® Cortex®-M 32-bit Hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32 STM32 là một họ vi điều khiển, cung cấp hiệu năng cao, khả năng xử lý thời gian thực, khả năng xử lý tín hiệu số, điện năng tiêu thụ thấp và khả năng kết nối (Wifi, Bluetooth, LoRa, Ethernet…) trong khi vẫn được sự hội nhập và dễ dàng phát triển Vì vậy, em quyết định sử dụng vi điều khiển STM32, cụ thể là họ STM32F103 cho đề tài đồ án môn học lần này 1.2Nhiệm vụ đề tài 1.2.1Yêu cầu đề tài Đo thân nhiệt của người dùng không tiếp xúc, gửi dữ liệu về thiết bị được kết nối từ xa (điện thoại, máy tính) để người giám sát không cần phải tới gần để đo như các máy đo cầm tay thông thường Từ đó tránh việc lây nhiễm ở khoảng cách gần, giảm thiếu tối đa nguy cơ lây nhiễm bệnh 1 1.2.2Kết quả cần đạt Hệ thống có thể được thân nhiệt của người dùng và hiển thị ra màn hình cho người dùng Hệ thống có thể kết nối Bluetooth với các thiết bị từ xa (điện thoại, máy tính) và gửi dữ liệu thân nhiệt của người dùng về các thiết bị đó 2 LÝ THUYẾT 2.1Tìm hiểu về giao thức I2C 2.1.1Định nghĩa giao thức I2C I2C là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền, nhận dữ liệu giữa một hoặc có thể nhiều Master – được xem như là các thiết bị điều khiển trung tâm với một hoặc nhiều Slave – được xem như là các ngoại vi trên cùng một hệ thống thông qua hai đường truyền tín hiệu Hình 2.1 Minh hoạ kết nối sử dụng giao tiếp I2 Các thiết bị kết nối với bus I2C được phân thành hai loại: master và slave Trong đó, master sở hữu quyền kiểm soát để thực hiện đưa ra yêu cầu đến các slave, còn slave là một thiết bị đáp ứng các yêu cầu từ master Như hình minh họa ở trên, master thông thường là các vi điều khiển, slave sẽ là các ngoại vi như cảm biến nhiệt độ, LCD driver, EEPROM,… Tại một thời điểm chỉ có duy nhất một thiết bị master ở trạng thái hoạt động trên bus I2C master điều khiển bus clock SCL và quyết định hoạt động nào sẽ được thực hiện trên bus dữ liệu SDA Tất cả các thiết bị đáp ứng các yêu cầu từ thiết bị master này đều là slave Để phân biệt giữa nhiều thiết bị slave khi được kết nối với cùng một hệ thống bus I2C thì mỗi thiết bị slave sẽ có một địa chỉ vật lý 7-bit cố định Khi một thiết bị master muốn truyền hoặc nhận dữ liệu từ một thiết bị slave, master sẽ xác định địa chỉ thiết bị slave cụ thể trên đường SDA và sau đó tiến hành truyền dữ liệu Tất cả các thiết bị slave khác không gửi tín hiệu phản hồi về, trừ khi địa chỉ của chúng được chỉ định bởi thiết bị master trên đường SDA 2.1.2Phương thức hoạt động Trường hợp 1: Thiết bị master muốn gửi dữ liệu cho một thiết bị slave Master thực hiện một điều kiện bắt đầu (START) Master gửi địa chỉ của slave (Device Address) cần nhận dữ liệu và Bit cấu hình đọc ghi dữ liệu (R/W) được gửi kèm có giá trị bằng 0 thể hiện hoạt động gửi dữ liệu Slave phản hồi bằng bit xác nhận (ACK), xác nhận có slave hoạt động trên hệ thống bus Master gửi địa chỉ thanh ghi của slave – địa chỉ mà master muốn ghi/bắt đầu ghi dữ liệu Slave phản hồi bằng bit xác nhận (ACK), xác nhận có địa chỉ thanh thi, sẵn sàng nhận dữ liệu Master gửi các dữ liệu (Data) cần ghi vào thanh ghi cho slave, có thể một hoặc nhiều byte Master thực hiện kết thúc việc truyền dữ liệu bằng một điều kiện kết thúc (STOP) Hình 2.2 Khung truyền dữ liệu khi thiết bị master muốn gửi dữ liệu cho thiết bị slave Sử dụng 4 pin AA 1.5V mắc nối tiếp tạo thành 6V để cấp nguồn cho hệ thống IR Sensor : Có nhiệm vụ gửi tín hiệu ở ngõ ra về vi điều khiển Khi không có người cảm biến sẽ xuất mức cao – 5V ở ngõ ra Khi phát hiện khi có người tới gần, cảm biến sẽ xuất mức thấp – 0V ở ngõ ra MLX90614 Sensor: Khi có người, đo nhiệt độ của người sử dụng và trả về giá trị cho vi điều khiển thông qua giao thức I2C LCD 16x2 Hiển thị nhiệt độ của người sau khi đo ra màn hình Khi nhiệt độ > 37°C sẽ hiện cảnh báo nhiệt độ cao ra màn hình LED Gồm 2 LED: LED xanh dương biểu thị nhiệt độ của người dùng ở mức cho phép (≤ 37°C) LED đỏ biểu thị nhiệt độ của người dừng vượt mức cho phép (> 37°C.) Module HC – 05 Giúp vi điều khiển kết nối Bluetooth với các thiết bị khác Đồng thời, truyền và nhận dữ liệu theo giao thức UART thông qua giao tiếp Bluetooth giữa vi điều khiển với các thiết bị được kết nối Hình 3.2 Kết nối giữa vi điều khiển và module Bluetooth HC - 05 Bluetooth Serial Terminal Sử dụng trên thiết bị được kết nối Bluetooth với hệ thống Hiển thị dữ liệu nhiệt độ mà hệ thống gửi về giúp người giám sát thuận tiện trong việc theo dõi Microcontroller Khi phát hiện có người (cảm biến IR xuất mức thấp), xuất giá trị nhiệt độ đo được từ cảm biến MLX90614 ra màn hình LCD Đồng thời, gửi giá trị nhiệt độ đó về thiết bị được kết nối Bluetooth với hệ thống Khi nhiệt độ của người dùng trong mức cho phép, bật LED xanh dương Ngược lại, khi nhiệt độ của người dùng vượt mức cho phép, bật LED đỏ 4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 4.1 Lưu đồ giải thuật Start ngắt timerT Timer tràn? Chương N trình chính Đồ án môn học GVHD: Ths Võ Thị Thu Hồng Y N IR Sensor Flag = 2 Output = LOW? Y Flag = 1 Hình 4.1 Lưu đồ giải thuật chương trình phục vụ ngắt Timer BeginR Khởi tạo UART, I2C, TStart ngắt Timer Start ngắt Timer Flag = 1? N Measuring, StopY ngắt Flag = 2? N Hiển thị LCD và Bluetooth Y Temp>37 N Hiển thị LCD, flag = LED xanh bật, LED đỏ tắt, flag = Y Hiển thị LCD và Bluetooth LED đỏ bật, LED xanh tắt, flag = 24 Đồ án môn học GVHD: Ths Võ Thị Thu Hồng Hình 4.2 Lưu đồ giải thuật chương trình chính 4.2 Thực hiện phần mềm 4.2.1 Cấu hình chân sử dụng phần mềm CubeMX Phần mềm CubeMX là một công cụ của ST giúp người lập trình có thể sinh code C thông qua giao diện tương tác rất dễ sử dụng Các tính năng chủ yếu như: Tự động giải quyết các xung đột về Pin out Hỗ trợ tất cả các dòng chip STM32 Cầu hình Clock thông qua Clock Tree rất dễ sử dụng Ước tính năng lượng tiêu thụ Hỗ trợ sinh code cho các IDE phổ biến như Keil C, IAR, GCC Cấu hình chân LED1, LED2 sử dụng cho 2 LED I2C1 sử dụng cho module I2C LCD I2C2 sử dụng cho cảm biến MLX90614 UART1 sử dụng cho module Bluetooth HC – 05 SENSOR sử dụng cho IR Sensor 25 Hình 4.3 Cấu hình các chân cần sử dụng cho hệ thống Cấu hình Clock cho chip Sử dụng bộ dao động HIS Clock = 8MHz Hình 4.4 Cấu hình Clock cho chip Cấu hình ngắt Timer2 Cho phép ngắt Timer2 Chọn PreScaler = 8000, Mode đếm lên, chu kỳ đếm là 499 vì vậy sẽ đếm từ 0 đến 499 Clock hệ thống = 8MHz, sau khi qua PreScaler sẽ được 1000Hz Vậy một chu kỳ máy sẽ là 1ms Do đó, Timer cứ mỗi 500ms sẽ bị tràn và nhảy vào ngắt Hình 4.5 Cấu hình ngắt Timer2 Cấu hình UART Tốc độ baund = 9600, 8 bit dữ liệu, 0 bit parity, 1 bit stop Hình 4.6 Cấu hình UART Cấu hình chân Input/Output cho IR Sensor và 2 LED Hình 4.7 Cấu hình Input/Output Cấu hình chân cho 2 LED Hình 4.8 Cấu hình chân cho 2 LED Cấu hình chân cho IR Sensor Hình 4.9 Cấu hình chân IR Sensor 4.2.2 Triển khai thực hiện Sử dụng phần mềm Keil C để chứa code đã tạo ra sau khi cấu hình chân từ phần mềm CubeMX Hình 4.10 Phần mềm Keil C Các thư viện dùng cho chương trình: sử dụng 2 thư viện có sẵn trên github “i2c-lcd.h”: Được viết dựa trên thư viện HAL của STM32, giúp giao tiếp với LCD thông qua I2C “mlx90614.h”: Được viết dựa trên thư viện HAL của STM32, giúp giao tiếp với cảm biến MLX90614 thông qua I2C Hình 4.11 Các thư viện dùng cho chương trình Giải thích code Khai báo biến cần sử dụng Trong hàm main, khởi tạo I2C, UART, Timer và bật ngắt timer Trong hàm while(1), sẽ liên tục kiểm tra cờ flag và - In ra màn hình LCD: + Hàm lcd_clear_display(): Xóa toàn bộ màn hình LCD + Hàm lcd_goto_XY(a,b): Đưa con trỏ đến vị trí hàng a, cột b với a từ 1 đến 2 và b từ 0 đến 15 + Hàm lcd_send_string("abcd"): Sẽ in ra màn hình tại vị trí con trỏ chuỗi abcd - Gửi dữ liệu về thiết bị thông qua Bluetooth HC – 05: + Hàm HAL_UART_Transmit(&huart1,(uint8_t *) Tx_data,50,10000) sẽ truyền giá trị được lưu trong biến Tx_data với timeout = 10000ms - Bật/ tắt LED bằng hàm HAL_GPIO_WritePin với + GPIO_PIN_SET là mức cao + GPIO_PIN_RESET là mức thấp Trong hàm ngắt timer, cứ mỗi 500ms sẽ kiểm tra giá trị input của cảm biến IR bằng hàm HAL_GPIO_ReadPin() Như vậy hệ thống sẽ luôn phát hiện khi có người sử dụng 5 KẾT QUẢ THỰC HIỆN 5.1 Kết quả thi công 5.2 Kết quả đo Hình 0.1 Kết quả mô phỏng Ví dụ về Bảng số liệu Bảng 1 Thông số hệ thống Thông số 1 Thông số 2 Thông số 3 Thông số 4 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1Kết luận Hệ thống đạt được những yêu cầu đặt ra ban đầu Tuy nhiên, vẫn còn một số hạn chế: Kết quả đo từ cảm biến với còn sai số so với nhiệt độ môi trường Vì vậy, trong khi tính toán, phải bù trừ đi để ra được kết quả gần đúng so với thực tế Khoảng cách đo trong phạm vi gần thì cảm biến mới đạt được độ chính xác nhất định 6.2Hướng phát triển Cải tiến cảm biến để đạt được độ chính xác cao hơn, có thể thay thế việc gởi dữ liệu qua Bluetooth bằng kết nối Wifi Từ đó, có thể giám sát được người sử dụng không nhất thiết ở khoảng cách giới hạn mà có thể ở bất kỳ đâu Dựa trên ý tưởng của đề tài, có thể áp dụng mở rộng sử dụng trong các nhà máy, cơ quan, bênh viện, trường học để phục vụ công tác chống dịch hiện nay 7 TÀI LIỆU THAM KHẢO [1] Giao thức I2C và giao tiếp với cảm biến nhiệt hồng ngoại MLX90614, https://tapit.vn [2] Reference manual STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced Arm®-based 32-bit MCUs, STMicroelectronics [3] MLX90614 family Datasheet Single and Dual Zone Infra Red Thermometer in TO39, Melexis [4] Interface LCD 16×2 via I2C with STM32, https://controllerstech.com [5] Thư viện MLX90614, https://github.com/dinamitemic/mlx90614 8 PHỤ LỤC ... tài 1.2.1Yêu cầu đề tài Đo thân nhiệt người dùng không tiếp xúc, gửi liệu thiết bị kết nối từ xa (điện thoại, máy tính) để người giám sát khơng cần phải tới gần để đo máy đo cầm tay thông thường... Kiểm soát nhiệt độ công nghiệp phận chuyển động Kiểm soát nhiệt độ máy in máy photocopy Thiết bị gia dụng có kiểm sốt nhiệt độ Chăm sóc sức khỏe Giám sát chăn nuôi Phát chuyển động Điều... Sensor: Khi có người, đo nhiệt độ người sử dụng trả giá trị cho vi điều khiển thông qua giao thức I2C LCD 16x2 Hiển thị nhiệt độ người sau đo hình Khi nhiệt độ > 37°C cảnh báo nhiệt độ cao hình