Tải bản đầy đủ (.docx) (27 trang)

Đồ án thiết kế máy đo thân nhiệt không tiếp xúc ( word + code )

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.81 MB, 27 trang )

THIẾT KẾ MÁY ĐO THÂN NHIỆT
KHÔNG TIẾP XÚC

ĐỒ ÁN HỆ THỐNG NHÚNG
KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022

1


THIẾT KẾ MÁY ĐO THÂN NHIỆT
KHÔNG TIẾP XÚC

ĐỒ ÁN HỆ THỐNG NHÚNG
KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022

2


LỜI CẢM ƠN

TP. Hồ Chí Minh, ngày 01 tháng 05 năm 2022
Tác giả

3


MỤC LỤC


CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI......................................................................................1
1.1 Giới thiệu đề tài..................................................................................................................1
1.2 Mục đích nghiên cứu..........................................................................................................1
1.3 Đối tượng nghiên cứu.........................................................................................................1
1.4 Phạm vi nghiên cứu............................................................................................................1
1.5 Dự kiến kết quả...................................................................................................................1
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...............................................................................................2
2.1 Giao tiếp I2C...........................................................................................................................2
2.2 Giao tiếp UART.......................................................................................................................3
2.3 Nguyên lý hoạt động của cảm biến vật cản hồng ngoại..........................................................4
2.4 Nguyên lý hoạt động của cảm biến MLX 90614....................................................................4
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG....................................................................................5
3.1 Sơ đồ khối hệ thống.................................................................................................................5
3.1.1 Khối nguồn.......................................................................................................................5
3.1.2 Khối vi điều khiển............................................................................................................6
3.1.3 Khối cảm biến..................................................................................................................8
3.1.4 Khối hiển thị.....................................................................................................................9
3.1.5 Khối âm thanh..................................................................................................................9
3.2 Sơ đồ nguyên lý tổng qt.....................................................................................................11
3.3 Thiết kế mơ hình....................................................................................................................12
3.3.1 Vẽ PCB Layout..............................................................................................................12
3.3.2 Mạch thực tế:................................................................................................................12
3.4 Thiết kế giao diện..................................................................................................................13
CHƯƠNG 4: GIẢI THUẬT VÀ ĐIỀU KHIỂN.........................................................................14
4.1 Hoạt động hệ thống...............................................................................................................14
4.2 Lưu đồ giải thuật...................................................................................................................14
CHƯƠNG 5: THỰC NGHIỆM...................................................................................................15
5.1 Tiến hành thí nghiệm.............................................................................................................15
5.2 Kết quả thực nghiệm.............................................................................................................16
5.3 Kết luận thực nghiệm............................................................................................................16

6.1 Ưu điểm.................................................................................................................................17
6.2 Nhược điểm...........................................................................................................................17
6.3 Hướng phát triển....................................................................................................................17
TÀI LIỆU THAM KHẢO.............................................................................................................17
PHỤ LỤC 1: CHƯƠNG TRÌNH HỆ THỐNG ĐIỀU KHIỂN..................................................17

4


CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu đề tài
Thích ứng với “trạng thái bình thường mới”, sống chung với đại dịch như hiện nay thì
việc kiểm sốt thân nhiệt ở các địa điểm công cộng là hết sức cần thiết. Nhận ra vấn đề đó,
em đã nghiên cứu và thiết kế ra thiết bị đo thân nhiệt không tiếp xúc.
Với việc sử dụng thiết bị tự động này ở nơi công cộng sẽ giải quyết các vấn đề cịn tồn tại
của phương pháp đo thủ cơng. Từ đó giúp tiết kiệm được thời gian, nhân công cũng như là
phát hiện sớm được những người có khả năng cao nhiễm bệnh .
1.2 Mục đích nghiên cứu
 Tìm hiểu về cảm biến đo thân nhiệt khơng tiếp xúc
 Tìm hiểu về chip ATMEGA328 PU
 Tìm hiểu giao thức I2C
 Tìm hiểu giao tiếp UART
 Tìm hiểu thêm về Arduino cách để nạp một chương trình vào một module
1.3 Đối tượng nghiên cứu
 Phần mềm lập trình Arduino
 Module GY-906 MX90614
 Màn hình Oled 1.3 Inch
 Mạch phát âm thanh DFPlayer Mini
1.4 Phạm vi nghiên cứu
 Máy đo thân nhiệt chỉ đo thân nhiệt được ở khoảng cách <4cm

 Thời gian mỗi lần đo là 10s
1.5 Dự kiến kết quả
Máy đo thân nhiệt không tiếp xúc, cho phép hiển thị nhiệt độ và cảnh báo khi nhiệt độ lớn
hơn mức cho phép.

1


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

2.1 Giao tiếp I2C

Hình 2.1: Giao tiếp I2C
Khái niệm:
I2C ( Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ được phát
triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa các IC với nhau chỉ sử
dụng hai đường truyền tín hiệu.
Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn được
thiết lập bởi 1 tín hiệu đồng hồ.
Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khác nhau
như các loại vi điều khiển, cảm biến, EEPROM, … .
Thành phần:
Giao tiếp I2C sử dụng hai dây để truyền dữ liệu giữa các thiết bị:
SDA (Serial Data) - đường truyền cho master và slave để gửi và nhận dữ liệu.
SCL (Serial Clock) - đường mang tín hiệu xung nhịp.
I2C là một giao thức truyền thông nối tiếp, vì vậy dữ liệu được truyền từng bit dọc
theo một đường duy nhất (đường SDA).
Giống như SPI, I2C là đồng bộ, do đó đầu ra của các bit được đồng bộ hóa với việc lấy
mẫu các bit bởi một tín hiệu xung nhịp được chia sẻ giữa master và slave. Tín hiệu xung nhịp
ln được điều khiển bởi master.


2


2.2 Giao tiếp UART

Hình 2.2: Giao tiếp UART
Khái niệm:
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.
Sau đó truyền nó nối tiếp đến UART nhận, rồi 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. Chỉ cần hai dây để truyền dữ liệu giữa hai UART. Dữ liệu
truyền từ chân Tx của UART truyền (Transmiter) đến chân Rx của UART nhận (Receiver)
Thành phần:
 TX (Transmiter) - Dây truyền dữ liệu
 RX (Receiver) - Dây nhận dữ liệu
Ưu điểm:
 Chỉ sử dụng hai dây
 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
 Phương pháp được ghi chép rõ ràng và được sử dụng rộng rãi
Nhược điểm:
3


 Kích thước của khung dữ liệu được giới hạn tối đa là 9 bit
 Không hỗ trợ nhiều hệ thống phụ hoặc nhiều hệ thống chính
 Tốc độ truyền của mỗi UART phải nằm trong khoảng 10% của nhau
2.3 Nguyên lý hoạt động của cảm biến vật cản hồng ngoại


Hình 2.3: Nguyên lý hoạt động của cảm biến hồng ngoại
Cảm biến hồng ngoại sẽ hoạt động bằng cách phát ra và phát hiện ra bức xạ hồng
ngoại. Cảm biến hồng ngoại chủ động thường có cấu tạo gồm 2 phần là: diode phát sáng
(LED) và máy thu. Khi một vật thể đến gần cảm biến thì ánh sáng hồng ngoại từ đèn LED
sẽ phản xạ khỏi vật thể. Sau đó chúng sẽ được người nhận phát hiện.

2.4 Nguyên lý hoạt động của cảm biến MLX 90614
Cảm biến MLX90614 có thể đo nhiệt độ của một vật thể mà không cần tiếp xúc vật
lý với nó. Điều này được thực hiện với một định luật gọi là Định luật Stefan-Boltzmann,
trong đó nói rằng tất cả các vật thể và sinh vật đều phát ra Năng lượng IR và cường độ của
năng lượng IR phát ra này sẽ tỷ lệ thuận với nhiệt độ của vật thể hoặc sinh vật đó.
Vì vậy, cảm biến MLX90614 tính tốn nhiệt độ của một đối tượng bằng cách đo lượng
năng lượng IR phát ra từ nó.

4


CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG
3.1 Sơ đồ khối hệ thống
Khối hiển thị

Khối cảm biến

Khối VĐK

Khối âm thanh

Khối nguồn


Hình 3.1: Sơ đồ khối của hệ thống
3.1.1 Khối nguồn
Chức năng: Cùng cấp nguồn 1 chiều 5V ổn định cho mạch hoạt động
Linh kiện sử dụng:
 Adapter 12V DC: Nguồn dùng để nuôi mạch
 L7805ACD2T-CN: IC ổn áp 5V
Thông số kỹ thuật L7805
Loại IC

Ổn áp

Điện áp ngõ ra

5V

Dòng điện ngõ ra

1.5A

Điện áp ngõ vào max

35V

Nhiệt độ hoạt động
Chế độ bảo vệ

-40°C ~ 125°C
0°C ~ 125°C
Hình 3.2: IC L7805


5


3.1.2 Khối vi điều khiển
Chức năng: Dùng để tiếp nhận và xử lý thông tin từ các khối chức năng, sau đó gửi tin
hiệu đến khối hiện thị đưa thơng tin ra cho người dùng.
Linh kiện sử dụng: Vi điều khiển Atmega328P

Hình 3.3: Vi điều khiển Atmega328P
Thơng số kỹ thuật:

 Thiết kế hiệu suất cao

 Tổng số chân I / O kỹ thuật số là 14

 Tiêu thụ ít điện năng
 Tổng số chân ngõ vào Analog

chân
 RISC tiên tiến
 Khóa chức năng chương trình để bảo

là 6
 Chứa 32 kilobyte bộ nhớ flash

mật mã lập trình
 Chứa tổng cộng ba bộ định thời, hai 8

 Chứa 2 kilobyte SRAM
 Chứa 1 kilobyte EEPROM


bit và một 16 bit
 Tổng số chân I / O là 23 chân
 Tổng số kênh PWM là 6
 Điện áp hoạt động tối thiểu từ 1.8V DC

 Tốc độ xung nhịp 16 megahertz

đến 5.5V DC
6


Danh sách chân I/O
Số
thứ tự

Mô tả

Chức năng

Mô tả chức năng

1

PC6

reset

2
3

4

PD0
PD1
PD2

5

PD3

Chân kỹ thuật số (RX)
Chân kỹ thuật số (TX)
Chân kỹ thuật số
Chân kỹ thuật số

6

PD4

Chân kỹ thuật số

7
8

Vcc
GND

Điện áp dương
Nối đất


9

XTAL

Dao động tinh thể

10

XTAL

Dao động tinh thể

11

PD5

12

PD6

13
14
15

PD7
PB0

chân

PB1


Khi chân reset này ở mức thấp, bộ vi điều khiển và

(PWM)

Chân

kỹ

(PWM)
Chân kỹ

thuật

Chân 5 được sử dụng làm ngắt ngoài 1
Chân 6 được sử dụng cho nguồn bộ đếm bên ngoài
Timer0
Nguồn dương của hệ thống
Nối đất của hệ thống
Chân này nối với một châncủa bộ dao động tinh thể
để cung cấp xung nhịp bên ngoài cho chip
Chân này nối với chân còn lại của bộ dao động tinh

số

thể để cung cấp xung nhịp bên ngoài cho chip
Chân 11 được sử dụng cho nguồn bộ đếm bên ngoài
Timer1

thuật


(PWM)
Chân kỹ thuật số
Chân kỹ thuật số
Chân kỹ thuật

số

Bộ so sánh analog dương i / ps
Bộ so sánh analog âm i / ps
Nguồn đầu vào bộ đếm hoặc bộ hẹn giờ

số
Bộ đếm hoặc bộ hẹn giờ so sánh khớp A

(PWM)
Chân

chương trình của nó sẽ được reset.
Chân đầu vào cho giao tiếp nối tiếp
Chân đầu ra cho giao tiếp nối tiếp
Chân 4 được sử dụng làm ngắt ngoài 0

kỹ

thuật

số

(PWM)

Chân kỹ

thuật

số

16

PB2

17

PB3

18

PB4

Chân kỹ thuật số

19

PB5

Chân kỹ thuật số

20

AVcc


Điện áp dương

21

AREF

Tham chiếu analog

22

GND

Nối đất

(PWM)

Chân này hoạt động như lựa chọn slave i / p.
Chân này được sử dụng làm đầu ra dữ liệu master
và đầu vào dữ liệu slave cho SPI.
Chân này hoạt động như một đầu vào xung nhịp
master và đầu ra xung nhịp slave.
Chân này hoạt động như một đầu ra xung nhịp
master và đầu vào xung nhịp slave cho SPI.
Điện áp dương cho ADC (nguồn)
Điện áp tham chiếu analog cho ADC (Bộ chuyển đổi
analog sang kỹ thuật số)
Nối đất của hệ thống

7



23
24
25
26

PC0
PC1
PC2
PC3

Đầu vào analog
Đầu vào analog
Đầu vào analog
Đầu vào analog

Đầu vào analog giá trị kỹ thuật số kênh 0
Đầu vào analog giá trị kỹ thuật số kênh 1
Đầu vào analog giá trị kỹ thuật số kênh 2
Đầu vào analog giá trị kỹ thuật số kênh 3
Đầu vào analog giá trị kỹ thuật số kênh 4. Chân này

27

PC4

Đầu vào analog

cũng có thể được sử dụng làm kết nối giao diện nối
tiếp cho dữ liệu.


3.1.3 Khối cảm biến
Chức năng: Nhận diện đối tượng đo bằng hồng ngoại, nếu phát hiện có đối tượng cần đo
thì sẽ tiến hành đo nhiệt độ. Khi đo xong giá trị nhiệt độ sẽ được gửi về vi điều khiển và
hiển thị lên màn hình.
Linh kiện sử dụng:
- Cảm biến nhiệt độ hồng ngoại không tiếp xúc GY-906 MX90614
Thông Số Kỹ Thuật:
Điện áp hoạt động : 3.3 - 5VDC
Chip : MXL90614
Giao tiếp : I2C
Nhiệt độ đo : -70 ~ 380 độ C
Độ chính xác : 0.5 độ C
Có chế độ ngủ tiêu thụ điện năng thấp.
Hình 3.4: Module GY-906 MX90614
- Cảm Biến Vật Cản Hồng Ngoại E18-D80NK
Thông số kỹ thuật:
Nguồn điện cung cấp: 5VDC.
Khoảng cách phát hiện: 3 ~ 80cm.
Có thể điều chỉnh khoảng cách qua biến trở.
Dịng kích ngõ ra: 300mA.
Ngõ ra dạng NPN
Chất liệu sản phẩm: nhựa.
Có led hiển thị ngõ ra màu đỏ.
Kích thước: 1.8cm (D) x 7.0cm (L).

Hình 3.5: Module E18-D80NK

8



3.1.4 Khối hiển thị
Chức năng: Sử dụng màn hình Oled 1.3 Inch để hiển thị giá trị thân nhiệt và thông báo đo
nhiệt độ đến người dùng.
Thông số kỹ thuật:
Điện áp sử dụng: 2.2~5.5VDC
Cơng suất tiêu thụ: 0.04w
Góc hiển thị: lớn hơn 160 độ
Số điểm hiển thị: 128x64 điểm.
Độ rộng màn hình: 1.3 inch.
Màu hiển thị: Trắng / Xanh Dương.
Giao tiếp: I2C
Driver: SH1106

Hình 3.6: Module Oled 1.3 Inch

3.1.5 Khối âm thanh
Chức năng: Dùng để giải mã âm thanh từ thẻ nhớ, đồng thời phát ra âm thanh thông báo
theo chương trình được lập trình sẵn trong board mạch.
Linh kiện sử dụng:
- Mạch phát âm thanh DFplayer mini mp3

9


Hình 3.7: Module DFplayer
Thơng số kỹ thuật:
Điện áp sử dụng: 3.2~5VDC
Chuẩn giao tiếp: UART hoặc có thể điều khiển trực tiếp qua các chân IO
Tích hợp IC Amply cơng suất nhỏ YX8002A nên có thể nối trực tiếp với loa < 2W.

Định dạng âm thanh hỗ trợ: MP3 và WAV
Tốc độ lấy mẫu (Khz) ; 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 với ngõ ra 24bit
Hỗ trợ đầy đủ FAT16, FAT32, thẻ TF hỗ trợ tối đa 32Gb.
Các file âm thanh có thể sắp xếp theo thư mục ( tối đa 100 mục ) , mỗi mục chứa tối đa
255 bài hát.
Có thể điều chỉnh 30 mức Volume và 6 mức EQ.
- Loa 3W
Thơng số kỹ thuật:
Đường kính Loa: 4 cm
Bề rộng : 2 cm
Công suất cực đại : 3W
Trở Kháng : 4 ohm
Độ nhạy: 100 dB/W
Hình 3.8: Loa 3W
- Module Pam8403 mini
Thông số kỹ thuật mẫu sản phẩm: GF1002
Phạm vi nguồn điện: 5VDC
Đầu ra tối thiểu: 3W * 2
Kích thước: 29,5 * 20,2 * 15mm
Hình 3.9: Module Pam8403 mini

10


3.2 Sơ đồ nguyên lý tổng quát

Hình 3.10: Sơ đồ nguyên lý

11



3.3 Thiết kế mơ hình
3.3.1 Vẽ PCB Layout
Từ sơ đồ đấu dây trên Proteus, ta tiến hành vẽ mạch in

Hình 3.11: Bản vẽ Layout trên Proteus
Sau khi có Layout chúng ta sẽ xuất ra file PDF, rồi tiến hành in ra giấy chuyên dụng

3.3.2 Mạch thực tế:
Đây là kết quả sau khi tiến hành ủi, ngâm dung dịch, khoan lỗ, hàn linh kiện và nạp code

Hình 3.12: Mạch thực tế xong khi gắn linh kiện

12


3.4 Thiết kế giao diện
Để thuận tiện cho việc sử dụng máy đo thân nhiệt, cũng như đảm bảo tính thẩm mỹ,
em đã thiết kể hộp tủ bằng bìa cát tơng với kích thước 30x10x15 để chứa các linh kiện.
Tiến hành cắt bìa cát tơng và cố định linh kiện trên hộp ta được như sau:

Hình 3.13: Gắn các linh kiện vào tủ
Và sau khi cố định, kiểm tra kỹ càng lại lần nữa chúng ta tiền hành đóng tủ, cấp nguồn cho
mạch và đây là kết quả:

Hình 3.14: Máy đo thân nhiệt hoàn chỉnh

13



CHƯƠNG 4: GIẢI THUẬT VÀ ĐIỀU KHIỂN
4.1 Hoạt động hệ thống
Thiết bị đo thân nhiệt không tiếp xúc sẽ được gắn cố định chỗ có nhiều người qua lại. Khi
cảm biến phát hiện có người lại gần máy, loa sẽ phát ra âm thanh yêu cầu người đo giữ nguyên vị
trí, đưa trán lại gần thiết bị đo và tiến hành đo nhiệt độ. Sau khi đo nhiệt độ, lúc nầy màn hình sẽ
hiển thị giá trị thân nhiệt của bạn. Nếu nhiệt độ của bạn bé hơn mức 37.5oC, thì loa phát ra âm
thanh báo nhiệt độ bình thường, ngược lại nếu nhiệt độ lớn hơn mức cho phép là 37.5oC thì loa sẽ
phát ra âm thanh cảnh báo.

4.2 Lưu đồ giải thuật
Bắt đầu

Cảm biến phát hiện có người

Sai

Đúng
Loa thông báo
Đọc dữ liệu từ cảm biến
nhiệt độ
Hiển thị giá trị ra màn hình

Đúng

x≤37.5

Loa thơng báo bình
thường

Sai


Loa cảnh báo nhiệt độ
vượt mức

Kết thúc

14


CHƯƠNG 5: THỰC NGHIỆM
5.1 Tiến hành thí nghiệm
Bước 1: Cấp nguồn DC cho mạch từ 5V-35V

Hình 5.1: Mạch khi được cấp nguồn
Bước 2: Đứng trước máy đo nhiệt độ, cảm biển hồng ngoại xác định có vật cản, loa thơng
báo giữ nguyên vị trí
Bước 3: Đưa trán lại gần cảm biến nhiệt độ, tiến hành đo thân nhiệt
Hình 5.2: Máy đang đo nhiệt độ
Bước 4: Quan sát giá trị nhiệt độ được hiện thị lên màn hình, loa phát ra âm thanh thông
báo

15


Hình 5.3: Kết quả sau khi đo thân nhiệt

5.2 Kết quả thực nghiệm
Mạch hoạt động bình thường, khối cảm biến và khối hiển thị hoạt động tốt, không xảy ra
hiện tượng sụt áp.
5.3 Kết luận thực nghiệm

Sau khi cấp nguồn và tiến hành đo thân nhiệt thì thấy rằng mạch hoạt động như dự kiến,
nhiệt độ đo chuẩn với thực tế và thời gian đo nhanh đáp ứng giá trị đề ra.

16


CHƯƠNG 6 : KẾT LUẬN
6.1 Ưu điểm
 Tiết kiệm được thời gian và nhân công so với việc đo thân nhiệt bằng phương pháp
thủ công.
 Đảm bảo được sự an tồn ở các điểm cơng cộng.
 Giúp theo dõi, kiểm tra thân nhiệt một cách tự động đặc biệt là nơi có nhiều người
qua lại.
6.2 Nhược điểm
 Cịn tồn tại nhiễu trong quá trình sử dụng như điều kiện ánh sáng
 Gía thành linh kiện đắt
6.3 Hướng phát triển
 Nâng cấp máy đo thân nhiệt có thể nâng lên, hạ xuống theo chiều cao của người đo
 Tích hợp camera để có thể chụp hình những người có nhiệt độ lớn hơn mức quy
định
TÀI LIỆU THAM KHẢO
ATmega328P, Microchip Technology, from the website: />PHỤ LỤC 1: CHƯƠNG TRÌNH HỆ THỐNG ĐIỀU KHIỂN
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#include <Adafruit_MLX90614.h>
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#define OLED_RESET 4

#define vatcan 7
Adafruit_SH1106 display(OLED_RESET);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

17


#if (SH1106_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SH1106.h!");
#endif
int z;
float x;
SoftwareSerial mp3(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
static const unsigned char PROGMEM logo16_glcd_bmp[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,

0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,

18


0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,

0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x00,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x00,
0x00, 0x00, 0x7f, 0xff, 0x80, 0x00,
0x00, 0x00, 0xff, 0xfc, 0x80, 0x00,
0x00, 0x00, 0xff, 0xfc, 0x80, 0x00,
0x00, 0x00, 0x7f, 0xfc, 0x80, 0x00,
0x00, 0x00, 0x7f, 0xf8, 0x80, 0x00,
0x00, 0x00, 0x7f, 0xf9, 0x80, 0x00,
0x00, 0x00, 0x3f, 0xe1, 0x00, 0x00,
0x00, 0x00, 0x3f, 0x02, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x04, 0x00, 0x00,
0x00, 0x00, 0x07, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void setup() {
Serial.begin(9600);
mlx.begin();
mp3.begin(9600);
if (!myDFPlayer.begin(mp3, true, false)) {

while (true) {
delay(0);
}

19


}
pinMode(vatcan, INPUT);
display.begin(SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(40, 18);
display.println("Nhiet do:");
display.display();
myDFPlayer.volume(30); //Set volume value. From 0 to 30
}
void covatcan () {
x=mlx.readObjectTempC()+1;
display.clearDisplay();
display.drawBitmap(0, 0, logo16_glcd_bmp, 44, 64, 1);
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(40, 18);
display.println("Nhiet do:");
display.setTextSize(3);
display.setCursor(50, 33);
display.println(x, 1);
display.display();
Serial.print("Nhiet do co the: ");

Serial.println(x);
delay(1000);
}
void kovatcan () {
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(3, 5);
display.println("Moi Ban Do");
display.setTextSize(2);
display.setCursor(5, 40);
display.println("Than Nhiet");
display.display();
Serial.println("Moi ban do than nhiet ");
delay(500);
}
void cambien () {

20


z = digitalRead(vatcan);
Serial.println(z);
delay(1000);
}
void sound1() {
myDFPlayer.play(1);
delay(4000);
}
void sound2() {

myDFPlayer.play(2);
delay(5000);
}
void sound3() {
myDFPlayer.play(3);
delay(7000);
}
void loop()
{
cambien();
if (z == 0) {
sound1();
covatcan();
if (x<37.5) {
sound3();
}
if (x>=37.5) {
sound2();
}

delay(500);
}
if (z == 1) {
kovatcan();
delay(500);
}
}

21



×