You are on page 1of 42

ĐẠ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


SVTH: HUỲNH PHẠM NHẤT TRIỀU
MSSV: 1814434

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
` Huỳnh Phạm Nhất Triều

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
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

iii
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

iv
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

v
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

DANH SÁCH BẢNG SỐ LIỆU

Bảng 1 Thông số hệ thống......................................................................................................................3

vi
Đồ á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.2 Nhiệm vụ đề tài


1.2.1 Yê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
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

1.2.2 Kế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.1 Tì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,…

2
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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.2 Phươ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

3
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Trường hợp 2: Thiết bị master muốn đọc dữ liệu từ 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, theo kèm là bit cấu
hình đọc ghi dữ liệu (R/W) có giá trị bằng 0 thể hiện hoạt động gửi dữ liệu (bằng 0 để
gửi tiếp địa chỉ thanh ghi)
 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 ghi trên thiết bị
slave. 
 Master gửi lại điều kiện bắt đầu cùng với địa chỉ của thiết bị slave, theo sau đó là giá
trị 1 của bit R/W thể hiện hoạt động đọc dữ liệu.
 Slave phản hồi bằng bit xác nhận (ACK) 
 Master nhận dữ liệu từ slave, có thể một hoặc nhiều byte.

 Master kết thúc việc nhận dữ liệu bằng cách thực hiện bit xác nhận (NACK) và theo
sau đó là một điều kiện kết thúc (STOP).

Hì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

 Phân tích các thành phần trong khung truyền: 

- Điều kiện bắt đầu và điều kiện kết thúc (STAT, STOP)

 Giao tiếp I2C được khởi tạo bằng cách master thực hiện điều kiện bắt đầu và kết thúc
bằng cách master thực hiện điều kiện kết thúc. Một sự chuyển đổi logic từ mức HIGH
sang mức LOW trên đường truyền SDA trong khi đường truyền SCL ở mức HIGH
được định nghĩa là một điều kiện bắt đầu. Một sự chuyển đổi mức logic từ mức LOW

4
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

sang mức HIGH trên đường truyền SDA trong khi đường SCL ở mức HIGH được
định nghĩa là điều kiện kết thúc. 

- Các bit địa chỉ 

 Các bit địa chỉ giúp xác định, phân biệt các slave khác nhau trên hệ thống bus I2C,
các master phải có/ được cài đặt các địa chỉ khác nhau. Thông thường có 7 bit địa chỉ.

 Bit địa chỉ được gửi kèm với bit cầu hình đọc/ghi dữ liệu.

- Bit cấu hình đọc/ghi dữ liệu (R/W)

 Bit này xác định hướng truyền dữ liệu hay có thể hiểu là thiết bị nào sẽ điều khiển
đường SDA: Nếu master cần truyền dữ liệu đến Slave, bit Read / Write được thiết lập
mức logic HIGH. Ngược lại, nếu master cần nhận dữ liệu từ Slave, bit này được thiết
lập mức logic LOW.

-  Bit xác nhận (ACK/NACK)

 Mỗi byte dữ liệu đều được xác nhận bởi một bit ACK từ phía nhận dữ liệu gửi cho
phía gửi dữ liệu để báo rằng byte đã được nhận thành công và có thể tiếp tục gửi byte
dữ liệu tiếp theo. Bit ACK có giá trị LOW. Khi nó có giá trị HIGH thì được gọi là bit
NACK, bit NACK được gửi đi trong một số trường hợp như: 

o Phía nhận đang bận và không thể nhận hay truyền dữ liệu vì đang thực hiện
một tính năng khác. 

o Trong quá trình truyền nhận, dữ liệu/địa chỉ không hợp lệ, không tồn tại. 

o Trong quá trình truyền, phía nhận không thể nhận thêm các byte dữ liệu nữa. 

o Trong trường hợp master yêu cầu dữ liệu từ slave, master đã nhận đủ và không
nhận thêm dữ liệu. 

- Các bit dữ liệu (Data)

 Dữ liệu được truyền tới các thiết bị slave hoặc được đọc từ các thiết bị slave, bản chất
của việc này chính là thực hiện đọc/ghi các thanh ghi trong thiết bị slave. Các thanh
ghi này nằm trong bộ nhớ của slave và được xác định, phân biệt bởi các địa chỉ, các
thanh ghi sẽ chứa thông tin, có thể là thông tin cấu hình hoạt động của thiết bị slave,

5
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

có thể thông tin dữ liệu mà slave có được trong quá trình hoạt động như dữ liệu lấy
mẫu từ cảm biến. Để điều khiển thiết bị slave thực hiện một nhiệm vụ chức nào đó,
master cũng sẽ thực hiện việc ghi vào thanh ghi của thiết bị slave. 

- Lặp lại điều kiện bắt đầu (Repeated Start)

 Việc thiết bị master thực hiện lặp lại điều kiện bắt đầu cũng tương tự như việc master
thực hiện điều kiện bắt đầu (START), lặp lại điều kiện bắt đầu được sử dụng để thay
thế cho việc thực hiện điều kiện STOP rồi thực hiện điều kiện START. 

 Lặp lại điều kiện bắt đầu được sử dụng trong trường hợp thiết bị master muốn đọc dữ
liệu từ thiết bị slave sau khi đã nhận các phản hồi về địa chỉ thiết bị slave và địa chỉ
thanh ghi muốn đọc dữ liệu. 

2.2 Tìm hiểu về giao tiếp UART


2.2.1 Định nghĩa giao tiếp UART

UART (Universal Asynchronous Receiver-Transmitter – Bộ truyền nhận dữ liệu nối


tiếp bất đồng bộ) là một trong những giao thức truyền thông giữa thiết bị với thiết bị được sử
dụng nhiều nhất. Có thể thấy giao tiếp UART được sử dụng nhiều trong các ứng dụng để giao
tiếp với các module như: Wifi, Bluetooth, Xbee, module đầu đọc thẻ RFID với Raspberry Pi,
Arduino hoặc vi điều khiển khác. Đây cũng là chuẩn giao tiếp thông dụng và phổ biến trong
công nghiệp từ trước đến nay.

Khi được cấu hình đúng cách, UART có thể hoạt động với nhiều loại giao thức nối
tiếp khác nhau liên quan đến việc truyền và nhận dữ liệu nối tiếp. Trong giao tiếp nối tiếp, dữ
liệu được truyền từng bit bằng cách sử dụng một đường dây. Trong giao tiếp hai chiều, chúng
ta sử dụng hai dây để truyền dữ liệu nối tiếp thành công. Tùy thuộc vào ứng dụng và yêu cầu
hệ thống, truyền thông nối tiếp cần ít mạch và dây hơn, điều này làm giảm chi phí thực hiện.

2.2.2 Cách thức hoạt động

Trong giao tiếp UART, hai UART giao tiếp trực tiếp với nhau. UART truyền chuyển
đổi dữ liệu song song từ một thiết bị điều khiển như CPU thành dạng nối tiếp, truyền nó nối
tiếp đến UART nhận, sau đó chuyển đổi dữ liệu nối tiếp trở lại thành dữ liệu song song cho
thiết bị nhận.

6
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

Hình 2.4. Kết nối UART giữa 2 thiết bị

Hai đường dây mà mỗi thiết bị UART sử dụng để truyền dữ liệu đó là:

 Transmitter (Tx)

 Receiver (Rx)

UART truyền dữ liệu không đồng bộ, có nghĩa là không có tín hiệu đồng hồ để đồng
bộ hóa đầu ra của các bit từ UART truyền đến việc lấy mẫu các bit bởi UART nhận. Thay vì
tín hiệu đồng hồ, UART truyền thêm các bit start và stop vào gói dữ liệu được chuyển. Các
bit này xác định điểm bắt đầu và điểm kết thúc của gói dữ liệu để UART nhận biết khi nào
bắt đầu đọc các bit.

Khi UART nhận phát hiện một bit start, nó bắt đầu đọc các bit đến ở một tần số cụ thể
được gọi là tốc độ truyền (baud rate). Tốc độ truyền là thước đo tốc độ truyền dữ liệu, được
biểu thị bằng bit trên giây (bps – bit per second). Cả hai UART đều phải hoạt động ở cùng
một tốc độ truyền. Tốc độ truyền giữa UART truyền và nhận chỉ có thể chênh lệch khoảng
10% trước khi thời gian của các bit bị lệch quá xa.

UART sẽ truyền dữ liệu nhận được từ một bus dữ liệu (Data Bus). Bus dữ liệu được
sử dụng để gửi dữ liệu đến UART bởi một thiết bị khác như CPU, bộ nhớ hoặc vi điều khiển.
Dữ liệu được chuyển từ bus dữ liệu đến UART truyền ở dạng song song. Sau khi UART
truyền nhận dữ liệu song song từ bus dữ liệu, nó sẽ thêm một bit start, một bit chẵn lẻ và một
bit stop, tạo ra gói dữ liệu. Tiếp theo, gói dữ liệu được xuất ra nối tiếp từng bit tại chân Tx.
UART nhận đọc gói dữ liệu từng bit tại chân Rx của nó. UART nhận sau đó chuyển đổi dữ

7
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

liệu trở lại dạng song song và loại bỏ bit start, bit chẵn lẻ và bit stop. Cuối cùng, UART nhận
chuyển gói dữ liệu song song với bus dữ liệu ở đầu nhận.

Hình 2.5. Truyền dữ liệu trong UART

Dữ liệu truyền qua UART được tập hợp thành gói (packet). Mỗi gói chứa 1 bit start, 5
đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ (parity bit) tùy chọn và 1 hoặc 2 bit
stop.

Hình 2.6. Gói packet truyền đi

Start bit (Bit bắt đầu)

Đường truyền dữ liệu UART thường được giữ ở mức điện áp cao khi nó không truyền dữ
liệu. Để bắt đầu truyền dữ liệu, UART truyền sẽ kéo đường truyền từ mức cao xuống mức
thấp trong một chu kỳ đồng hồ. Khi UART nhận phát hiện sự chuyển đổi điện áp cao xuống
thấp, nó bắt đầu đọc các bit trong khung dữ liệu ở tần số của tốc độ truyền.

Data Frame (Khung dữ liệu)

Khung dữ liệu chứa dữ liệu thực tế đang được truyền. Nó có thể dài từ 5 bit đến 8 bit nếu sử
dụng bit chẵn lẻ. Nếu không sử dụng bit chẵn lẻ, khung dữ liệu có thể dài 9 bit. Trong hầu hết

8
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

các trường hợp, dữ liệu được truyền với bit có trọng số bé nhất (LSB – Least Significant Bit)
trước tiên.

Parity Bit (Bit chẵn lẻ)

Tính chẵn lẻ mô tả tính chẵn hoặc lẻ của một số. Bit chẵn lẻ là một cách để UART nhận cho
biết liệu có bất kỳ dữ liệu nào đã thay đổi trong quá trình truyền hay không. Bit có thể bị thay
đổi bởi bức xạ điện từ, tốc độ truyền không khớp hoặc truyền dữ liệu đường dài.

Sau khi UART nhận đọc khung dữ liệu, nó sẽ đếm số bit có giá trị là 1 và kiểm tra xem tổng
số là số chẵn hay lẻ. Nếu bit parity là 0 (even parity – parity chẵn), thì tổng số bit 1 trong
khung dữ liệu phải luôn là một số chẵn. Nếu bit parity là 1 (odd parity – parity lẻ) thì số tổng
bit 1 trong khung dữ liệu là một số lẻ.

Khi bit chẵn lẻ khớp với dữ liệu, UART biết rằng quá trình truyền không có lỗi. Nhưng nếu
bit chẵn lẻ là 0 và tổng là số lẻ, hoặc bit chẵn lẻ là 1 và tổng số là chẵn, thì UART biết rằng
các bit trong khung dữ liệu đã thay đổi.

Stop Bit (Bit kết thúc)

Để báo hiệu sự kết thúc của gói dữ liệu, UART gửi sẽ điều khiển đường truyền dữ liệu từ
điện áp thấp đến điện áp cao trong ít nhất hai khoảng thời gian bit.

Ưu và nhược điểm của UART

Không có giao thức truyền thông nào là hoàn hảo, nhưng UART thực hiện khá tốt những gì
chúng làm. Dưới đây là một số ưu và nhược điểm để giúp bạn quyết định xem chúng có phù
hợp với nhu cầu của bạn hay không.

Ưu điểm

 Chỉ sử dụng hai dây để truyền dữ liệu

 Không cần tín hiệu đồng hồ

 Có một bit chẵn lẻ để cho phép kiểm tra lỗi

 Cấu trúc của gói dữ liệu có thể được thay đổi miễn là cả hai bên được thiết lập cho nó

 Phương pháp truyền đơn giản, giá thành thấp

9
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

Nhược điểm

 Kích thước của khung dữ liệu được giới hạn tối đa là 9 bit

 Không phù hợp với các hệ thống đòi hỏi nhiều thiết bị chủ và tớ

 Tốc độ truyền của mỗi UART phải nằm trong khoảng 10% 

2.3 Giao tiếp Bluetooth và module Bluetooth HC - 05


2.3.1 Giới thiệu về giao tiếp Bluetooth

Bluetooth là sự trao đổi dữ liệu không dây tầm gần giữa các thiết bị điện tử. Công
nghệ này hỗ trợ việc truyền dữ liệu qua các khoảng cách ngắn giữa các thiết bị di động như
điện thoại di động, tablet, laptop với nhau và với thiết bị cố định mà không cần một sợi cáp
để truyền tải.

Hình 2.7. Giao tiếp Bluetooth

Giao tiếp Bluetooth sử dụng sóng Radio tần số 2.4GHz. Tuy sử dụng cùng tần số với
công nghệ Wifi nhưng chúng không hề xung đột với nhau vì Bluetooth sử dụng tần số có
bước sóng ngắn hơn.

10
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

2.3.2 Ứng dụng của Bluetooth

Kết nối Bluetooth được ứng dụng trong rất nhiều các thiết bị điện tử để phục vụ cho
nhu cầu giải trí. Từ máy chơi game, smartphone, loa Bluetooth cho tới những chiếc laptop,
máy ảnh hay thậm chí là ampli cũng có. Có thể kể tới các ứng dụng của Bluetooth như sau:

 Kết nối và, điều khiển, truyền tải dữ liệu giữa điện thoại và các thiết bị điện tử giải trí
như loa, máy ảnh, máy in….
 Kết nối tạo thành một mạng không dây giữa các laptop trong cự ly ngắn, không gian
hẹp.
 Hỗ trợ kết nối và giao tiếp không dây giữa máy tính và thiết bị như bàn phím, chuột
không dây...
 Có mặt trên các máy quét mã vạch, thiết bị giám sát giao thông, thiết bị y tế... thay
cho kiểu kết nối bằng dây cáp.
 Thay cho các kiểu điều khiển bằng tia hồng ngoại (ưu điểm là có thể hoạt động dù có
vật chắn giữa thiết bị điều khiển và được điều khiển, hồng ngoại thì không)
 Điều khiển từ xa cho các thiết bị trò chơi điện tử.
 Kết nối Internet cho máy tính bằng cách dùng điện thoại di động thay modem.

2.3.3 Ưu điểm và nhược điểm của Bluetooth

 Ưu điểm:
 Thay thế hoàn toàn dây nối.
 Hoàn toàn không nguy hại đến sức khoẻ con người.
 Bảo mật an toàn với công nghệ mã hóa trong. Một khi kết nối được thiết lập thì khó
có một thiết bị nào có thể nghe trộm hoặc lấy cắp dữ liệu.
 Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện (hiện nay
có loại Bluetooth kết nối lên đến 100m).
 Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe hoặc bận
việc dễ dàng.
 Giá thành rẻ.
 Tốn ít năng lượng, chờ tốn 0.3mAh, tối đa 30mAh trong chế độ truyền dữ liệu.
 Không gây nhiễu các thiết bị không dây khác.
 Tính tương thích cao nên được nhiều nhà sản xuất phần cứng và phần mềm hỗ trợ.
 Nhược điểm:

11
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Tốc độ thấp, khoảng 720kbps tối đa.


 Bắt sóng kém khi có vật cản.
 Thời gian thiết lập lâu.

2.4 Tìm hiểu về phần cứng


2.4.1 Kit STM32F103C8T6 Blue Pill

Kit STM32F103C8T6 Blue Pill thuộc loại kit phát triển được thiết kế đơn giản, kit ra
đầy đủ chân của vi điều khiển, có cổng giao tiếp USB và cổng nạp SWD, sử dụng dòng vi
điều khiển 32 Bit của dòng ST. Thích hợp với những người tiếp cận dòng STM 32 Bit và là
loại được sử dụng để nghiên cứu về ARM nhiều nhất hiện nay.

Hình 2.8. Sơ đồ chân của kit STM32F103C8T6 Blue Pill

Cấu hình chi tiết của STM32F103C8T6:

 ARM 32-bit Cortex M3 với clock max là 72Mhz.


 Bộ nhớ:

12
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 64 kbytes bộ nhớ Flash(bộ nhớ lập trình).


 20kbytes SRAM.
 Clock, reset và quản lý nguồn.
 Điện áp hoạt động 2.0V -> 3.6V.
 Power on reset(POR), Power down reset(PDR) và programmable voltage
detector (PVD).
 Sử dụng thạch anh ngoài từ 4Mhz -> 20Mhz.
 Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40khz.
 Sử dụng thạch anh ngoài 32.768khz được sử dụng cho RTC.
 Trong trường hợp điện áp thấp:
 Có các mode :ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ.
 Cấp nguồn ở chân Vbat bằng pin để hoạt động bộ RTC và sử dụng lưu trữ data
khi mất nguồn cấp chính.
 2 bộ ADC 12 bit với 9 kênh cho mỗi bộ.
 Khoảng giá trị chuyển đổi từ 0 – 3.6V.
 Lấy mẫu nhiều kênh hoặc 1 kênh.
 Có cảm biến nhiệt độ nội.
 DMA: bộ chuyển đổi này giúp tăng tốc độ xử lý do không có sự can thiệp quá sâu của
CPU.
 7 kênh DMA.
 Hỗ trợ DMA cho ADC, I2C, SPI, UART.
 7 timer.
 3 timer 16 bit hỗ trợ các mode IC/OC/PWM.
 1 timer 16 bit hỗ trợ để điều khiển động cơ với các mode bảo vệ như ngắt
input, dead-time..
 2 watdog timer dùng để bảo vệ và kiểm tra lỗi.
 1 sysTick timer 24 bit đếm xuống dùng cho các ứng dụng như hàm Delay….
 Hỗ trợ 9 kênh giao tiếp bao gồm:
 2 bộ I2C(SMBus/PMBus).
 3 bộ USART(ISO 7816 interface, LIN, IrDA capability, modem control).
 2 SPIs (18 Mbit/s).
 1 bộ CAN interface (2.0B Active)
 USB 2.0 full-speed interface
 Kiểm tra lỗi CRC và 96-bit ID.
13
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

2.4.2 LCD 16x2 và module I2C

 Màn hình LCD 16x2 (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng
dụng của VĐK. LCD 1602 có rất nhiều ưu điểm so với các dạng hiển thị khác như:
khả năng hiển thị kí tự đa dạng (chữ, số, kí tự đồ họa); dễ dàng đưa vào mạch ứng
dụng theo nhiều giao thức giao tiếp khác nhau, tiêu tốn rất ít tài nguyên hệ thống, giá
thành rẻ,…

Hình 2.9. Màn hình


LCD 16x2

Thông số kỹ thuật LCD 16×2

LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

 LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS,
RW, EN).

 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.

 Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.

 Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

14
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Module I2C LCD: LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu
nối và chiếm dụng nhiều chân trên vi điều khiển vì vậy Module I2C LCD được ra đời
và giải quyết vấn để này

Hình 2.10. Module I2C LCD 16×2

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5
và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4,
…) và tương thích với hầu hết các vi điều khiển hiện nay.

Ưu điểm

 Tiết kiệm chân cho vi điều khiển.

 Dễ dàng kết nối với LCD.

Thông số kĩ thuật

 Điện áp hoạt động: 2.5-6V DC.

 Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).

 Giao tiếp: I2C.

 Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).

 Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.

15
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

2.4.3 Cảm biến nhiệt hồng ngoại không tiếp xúc MLX90614

Cảm biến nhiệt hồng ngoại không tiếp xúc MLX90614 là loại cảm biến đo nhiệt độ
hồng ngoại không tiếp xúc dùng chip MXL90614 sử dụng giao tiếp I2C có thể dễ dàng kết
nối với bất cứ vi điều khiển nào.

Hình 2.11. Cảm biến MLX90614

Thông số kỹ thuật:

 Kích thước nhỏ, chi phí thấp


 10k Kéo điện trở lên cho giao diện I2C với các jumper hàn tùy chọn
 Dễ tích hợp
 Nhiệt độ hoạt động :
 Nhiệt độ đo : -70 ~ 380 độ C
 Độ chính xác: 0.5 ° C
 Các tùy chọn gói khác nhau cho các ứng dụng và tính linh hoạt của tính linh hoạt

Ứng dụng cảm biến nhiệt hồng ngoại không tiếp xúc:

 Độ chính xác cao không tiếp xúc nhiệt độ


 Cảm biến độ nhạy nhiệt cho hệ thống điều khiển điều hòa không khí di động
 Yếu tố cảm biến nhiệt độ cho dân cư, thương mại và công nghiệp xây dựng điều hòa
kính chắn gió defogging

16
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Phát hiện góc mù ô tô


 Kiểm soát nhiệt độ công nghiệp của các bộ phận chuyển động
 Kiểm soát nhiệt độ trong máy in và máy photocopy
 Thiết bị gia dụng có kiểm soát nhiệt độ
 Chăm sóc sức khỏe
 Giám sát chăn nuôi
 Phát hiện chuyển động
 Điều khiển nhiệt độ nhiều vùng – lên đến 127 bộ cảm biến có thể được đọc thông qua
2 dây phổ biến
 Relay / cảnh báo nhiệt
 Đo nhiệt độ cơ thể

2.4.4 Cảm biến IR

Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance được sử dụng để
nhận biết vật cản bằng ánh sáng hồng ngoại, cảm biến có cách sử dụng đơn giản với biến trở
chỉnh khoảng cách nhận biết vật cản, ngõ ra dạng Digital dễ dàng giao tiếp và lập trình với Vi
điều khiển, thích hợp để làm các ứng dụng Robot tránh vật cản, báo trộm, mô hình cửa tự
động,...

Hình 2.12. Cảm biến IR

Nguyên tắc hoạt động: Cảm biến hồng ngoại sẽ hoạt động bằng cách sử dụng một
cảm biến ánh sáng cụ thể để phát hiện bước sóng ánh sáng chọn trong phổ hồng ngoại (IR).
Bằng cách sử dụng đèn LED tạo ra ánh sáng có cùng bước sóng với cảm biến đang tìm

17
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

kiếm. Khi một vật ở gần cảm biến, ánh sáng từ đèn LED bật ra khỏi vật thể và đi vào cảm
biến ánh sáng. Điều này dẫn đến một bước nhảy lớn về cường độ, mà chúng ta đã biết có thể
được phát hiện bằng cách sử dụng một ngưỡng.

Hình 2.13. Nguyên tắc hoạt động của cảm biến IR

Thông số kỹ thuật:

 Điện áp sử dụng: 3.3~5vDC

 Nhận biết vật cản bằng ánh sáng hồng ngoại.

 Ngõ ra: Digital TTL

 Tích hợp biến trở chỉnh khoảng cách nhận biết vật cản.

 Kích thước: 3.2 x 1.4cm 

2.4.5 Module Bluetooth HC-05

Module Bluetooth HC-05 là thiết bị thường được lựa chọn để thực hiện các dự án dựa
trên giao tiếp Bluetooth. Module Bluetooth HC-05 là một thiết bị giao tiếp không dây đơn
giản dựa trên giao thức Bluetooth. Module này dựa trên IC Bluetooth chip đơn BC417 tuân
thủ tiêu chuẩn Bluetooth v2.0 và hỗ trợ cho cả giao diện UART và USB.

18
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

Hình 2.14. Các chân và các thành phần khác trên mô-đun Bluetooth HC-05 điển hình.

HC-05 có hai chế độ hoạt động là Command Mode và Data Mode. Ở chế độ
Command Mode ta có thể giao tiếp với module thông qua cổng serial trên module bằng tập
lệnh AT quen thuộc. Ở chế độ Data Mode module có thể truyền nhận dữ liệu tới module
bluetooth khác. Chân KEY dùng để chuyển đổi qua lại giữa hai chế độ này. Có hai cách để
bạn có thể chuyển module hoạt động trong chế độ Data Mode

-        Nếu đưa chân này lên mức logic cao trước khi cấp nguồn module sẽ đưa vào chế độ
Command Mode với baudrate mặc định 38400. Chế độ này khá hữu ích khi bạn không biết
baudrate trong module được thiết lập ở tốc độ bao nhiêu. Khi chuyển sang chế độ này đèn led
trên module sẽ nháy chậm (khoảng 2s) và ngược lại khi chân KEY nối với mức logic thấp
trước khi cấp nguồn module sẽ hoạt động chế độ Data Mode.

-        Nếu module đang hoạt động ở chế Data Mode để có thể đưa module vào hoạt động ở
chế độ Command Mode bạn đưa chân KEY lên mức cao. Lúc này module sẽ vào chế độ
Command Mode nhưng với tốc độ Baud Rate được bạn thiết lập lần cuối cùng. Vì thế bạn
phải biết baudrate hiện tại của thiết bị để có thể tương tác được với nó. Chú ý nếu module của
bạn chưa thiết lập lại lần nào thì mặc định của nó như sau:

 Baudrate 9600, data 8 bits, stop bits 1, parity : none, handshake: none
 Passkey: 1234

19
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 Device Name: HC-05

           Ở chế độ Data Mode HC-05 có thể hoạt động như một master hoặc slave tùy vào việc
bạn cấu hình (riêng HC-06 bạn chỉ có thể cấu hình ở chế độ SLAVE)

3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG

3.1 Yêu cầu thiết kế

 Hệ thống nhỏ gọn, có thể lắp đặt bất kỳ đâu để phù hợp cho mục đích và nhu
cầu của người sử dụng.
 Hệ thống bền, chắc chắn và có thể sử dụng được lâu dài.
 Đáp ứng được về mặt thời gian, trả về dữ liệu của người dùng nhanh và hiển
thị kết quả lên màn hình LCD để người dùng có thể theo dõi. Đồng thời, gửi
kết quả về thiết bị có kết nối Bluetooth với hệ thống cho người giám sát thuận
tiện theo dõi.
 Chi phí thiết kế: Các máy đo thân nhiệt trên thị trường có chi phí còn tùy
thuộc vào các yếu tố khác nhau như linh kiện sử dụng, thiết kế, yêu cầu về độ
chính xác,.. Và ở đây mô hình không quá tập trung hay khắt khe với những
yêu cầu đó nên chi phí đòi hỏi không quá cao, chỉ chọn những linh kiện, vi
điều khiển, cảm biến,.. để thiết kê ra một hệ thống đáp ứng được cho đề tài chỉ
khoảng dưới 500.000 đồng.
 Điện năng tiêu thụ: Dòng STM32 tiêu thụ năng lượng cực thấp trong khi đó
hiệu suất cực cao. Do đó với nguồn sử dụng cho mô hình này có thể dùng pin
hoặc pin sạc để tiện thay thế và lắp đặt.

3.2 Phân tích thiết kế


3.2.1 Sơ đồ khối tổng quát

20
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

IR Sensor LCD 16x2

Microcontroller
LED
MLX90614
STM32F103C8T6
Sensor

Module Bluetooth
Power Serial
HC - 05
Terminal

Hình 3.1. Sơ đồ khối tổng quát của hệ thống

3.2.2 Chi tiết các khối trong sơ đồ

 Khối Power:
 Có nhiệm vụ cung cấp nguồn điện cho vi điều khiển và các linh kiện trên hệ thống.
Do đó, khối nguồn yêu cầu phải có công suất đủ lớn và độ ổn định cao.
21
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 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.

22
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

Chương trình
Timer tràn?
N chính

23
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

N
IR Sensor
Flag = 2
Output = LOW?

Flag = 1

Hình 4.1. Lưu đồ giải thuật chương trình phục vụ ngắt Timer

BeginR
T

Khởi tạo UART, I2C,


TStart ngắt Timer

N Flag = 1? Start ngắt Timer

N Measuring,
Flag = 2? Stop ngắt
timer

Y N
Hiển thị LCD và Bluetooth
Hiển thị LCD, flag = Temp>37
LED xanh bật, LED đỏ tắt, flag =
0
0

Hiển thị LCD và Bluetooth


24

LED đỏ bật, LED xanh tắt, flag =


0
Đồ á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
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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.

26
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng


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.

27
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

Hình 4.6. Cấu hình UART

 Cấu hình chân Input/Output cho IR Sensor và 2 LED

28
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

29
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

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

30
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồ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

31
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

32
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

 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

33
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồ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.1 Kế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.2 Hướ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.

34
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng

[3] MLX90614 family Datasheet Single and Dual Zone Infra Red Thermometer in TO-
39, 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

35

You might also like