Professional Documents
Culture Documents
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
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!
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
2. LÝ THUYẾT..................................................................................................................................1
8. PHỤ LỤC.......................................................................................................................................4
iii
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
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
iv
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
v
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
vi
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
1. GIỚI THIỆU
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.
Đ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
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
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.
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.
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 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 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
- Đ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ỉ 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 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.
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.
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.
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.
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.
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
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.
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.
Đườ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.
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.
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.
Để 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.
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
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ó
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%
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.
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
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.
Ư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
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.
12
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
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ẻ,…
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.
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
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
Thông số kĩ thuật
Đị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.
Thông số kỹ thuật:
Ứng dụng cảm biến nhiệt hồng ngoại không tiếp xúc:
16
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
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,...
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.
Thông số kỹ thuật:
Tích hợp biến trở chỉnh khoảng cách nhận biết vật cản.
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
Ở 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)
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.
20
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
Microcontroller
LED
MLX90614
STM32F103C8T6
Sensor
Module Bluetooth
Power Serial
HC - 05
Terminal
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 :
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
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 đỏ.
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
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
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.
Hỗ trợ sinh code cho các IDE phổ biến như Keil C, IAR, GCC
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
26
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
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
27
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
28
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
Hình 4.8.
Cấu hình
chân cho 2 LED
Hình 4.9.
Cấu hình chân IR Sensor
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
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.
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
+ 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.
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
33
Đồ án môn học GVHD: Ths. Võ Thị Thu Hồng
Ví dụ về Bảng số liệu
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.
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
[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