Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
4,39 MB
Nội dung
MỤC LỤC TÓM TẮT 12 Chương TỔNG QUAN .13 1.1 ĐẶT VẤN ĐỀ 13 1.2 MỤC TIÊU 13 1.3 NỘi DUNG NGHIÊN CỨU 13 1.4 GIỚI HẠN 13 1.5 BỐ CỤC 14 Chương CƠ SỞ LÝ THUYẾT 15 2.1 NHIỆT ĐỘ CƠ THỂ QUA CÁC GIAI ĐOẠN SỐT .15 2.2 GIỚI THIỆU CẢM BIẾN NHIỆT ĐỘ 15 2.2.1 Giới thiệu cảm biến nhiệt độ MLX90614 15 2.2.2 Giới thiệu cảm biến nhiệt độ ZTEMP TL901 .16 2.2.3 Giới thiệu cảm biến nhiệt độ PC151MT-0 17 2.3 GIỚI THIỆU MÁY ĐO NHIỆT ĐỘ .18 2.3.1 Giới thiệu máy đo Infrared Counter K-3S 18 2.3.2 Giới thiệu máy đo K3 PRO Infrared Thermometer 20 2.3.3 Giới thiệu hệ thống camera đo thân nhiệt HIKVISION .22 a) Camera thân nhiệt 24 b) Thiết bị Blackbody hỗ trợ camera thân nhiệt 25 2.4 GIỚI THIỆU MODULE ESP32 .26 2.4.1 Giới thiệu ESP32-WROOM-32 26 2.4.2 Giới thiệu module Esp32-Camera 28 2.5 GIỚI THIỆU MODULE PHÁT ÂM THANH DFPLAYER MINI 30 2.6 GIỚI THIỆU MODULE CHUYỂN MỨC LOGIC TTL 33 Chương TÍNH TỐN VÀ THIẾT KẾ 34 3.1 GIỚI THIỆU 34 3.2 TÍNH TỐN THIẾT KẾ HỆ THỐNG 34 3.2.1 Thiết kế sơ đồ khối hệ thống 34 3.2.2 Tính tốn mạch điện 35 a Khối xử lý điều khiển trung tâm .35 b Khối hiển thị led đoạn .36 c Khối cảm biến 39 d Khối nút nhấn 41 e Khối âm .41 f Khối điều khiển - hiển thị camera .42 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3.2.3 Sơ đồ ngun lí tồn mạch 43 Chương THI CÔNG HỆ THỐNG .44 4.1 GIỚI THIỆU 44 4.2 THI CÔNG HỆ THỐNG 44 4.2.1 Thi công board mạch 44 4.2.2 Lắp ráp kiểm tra .47 4.2.3 Thi công lắp ráp mơ hình 49 4.2.4 Bảng linh kiện công suất tiêu thụ tương ứng 50 4.3 LẬP TRÌNH HỆ THỐNG 51 4.3.1 Lưu đồ giải thuật .51 4.3.2 Giới thiệu Arduino IDE .52 4.3.3 Giới thiệu app Blynk .56 Chương 5: KẾT QUẢ _NHẬN XÉT_ĐÁNH GIÁ .59 5.1 GIỚI THIỆU 59 5.2 KẾT QUẢ ĐẠT ĐƯỢC 59 5.3 KẾT QUẢ THỰC NGHIỆM 60 5.3.1 Trạng thái hoạt động máy đo 60 5.3.2 Đăng nhập điện thoại giám sát 66 5.4 NHẬN XÉT_ĐÁNH GIÁ 68 5.4.1 Nhận xét 68 5.4.2 Đánh giá 69 Chương KẾT LUẬN_HƯỚNG PHÁT TRIỂN 70 6.1 KẾT LUẬN 70 6.2 HƯỚNG PHÁT TRIỂN 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 73 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH DANH SÁCH HÌNH ẢNH Hình 2.1: Cảm biến nhiệt độ MLX90614 15 Hình 2.2: Cảm biến nhiệt độ ZTEMP TL901 .16 Hình 2.3: Cảm biến nhiệt độ PC151MT-0 17 Hình 2.4: Hình ảnh bên ngồi máy đo thân nhiệt K – 3S 19 Hình 2.5: Hình ảnh bên máy đo thân nhiệt K – 3S 19 Hình 2.6: Hình ảnh bên ngồi máy đo K3 PRO Infrared Thermometer 21 Hình 2.7: Hình ảnh bên máy đo K3 PRO Infrared Thermometer 21 Hình 2.8: Hình ảnh bên máy đo K3 PRO Infrared Thermometer 22 Hình 2.9: Hệ thống máy đo camera thân nhiệt 23 Hình 2.10: Hình ảnh camera thân nhiệt Dahua DSS 24 Hình 2.11: Hình ảnh gửi từ camera thân nhiệt .25 Hình 2.12: Thiết bị phụ trợ giúp tăng độ xác Blackbody 26 Hình 2.13: Module Esp-Wroom-32 .27 Hình 2.14: Sơ đồ chân module Esp32 .27 Hình 2.15: Hình ảnh module Esp32-Camera .29 Hình 2.16: Sơ đồ chân Esp32-Camera 29 Hình 2.17: Module DFPlayer Mini 30 Hình 2.18: Sơ đồ chân DFPayer Mini 31 Hình 2.19: Sơ đồ kết nối với loa .32 Hình 2.20: Module chuyển mức logic TTL 33 Hình 3.1: Sơ đồ khối hệ thống 34 Hình 3.2: Sơ đồ chân Arduino Nano .36 Hình 3.3: Hình ảnh led đoạn .37 Hình 3.4: Sơ đồ chân led đoạn Anode chung .37 Hình 3.5: Sơ đồ kết nối led đoạn với IC 74HC595 38 Hình 3.6: Sơ đồ kết nối led đoạn với IC 74HC595 38 Hình 3.7: Sơ đồ kết nối Arduino với Led đoạn 39 Hình 3.8: Cảm biến siêu âm HY-SRF05 .39 Hình 3.9: Sơ đồ kết nối cảm biến siêu âm với Arduino Nano 40 Hình 3.10: Sơ đồ kết nối MLX90614 với Arduino Nano 40 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Hình 3.11: Sơ đồ kết nối nút nhấn với Arduino Nano 41 Hình 3.12: Sơ đồ kết nối loa với Arduino Nano 42 Hình 3.13: Sơ đồ kết nối Esp32-Camera với Arduino Nano .42 Hình 3.14: Sơ đồ ngun lí tồn mạch 43 Hình 4.1: Bố trí linh kiện mặt mạch điều khiển 44 Hình 4.2: Bố trí linh kiện mặt sau mạch điều khiển .45 Hình 4.3: Sơ đồ bố trí linh kiện mặt trước mạch hiển thị 45 Hình 4.4: Sơ đồ bố trí kinh kiện mặt sau mạch hiển thị .46 Hình 4.5: Sơ đồ bố trí linh kiện mặt trước mạch cảm biến 46 Hình 4.6: Sơ đồ bố trí linh kiện mặt sau mạch cảm biến 47 Hình 4.7: Hình ảnh mạch điều khiển sau gắn linh kiện 47 Hình 4.8: Hình ảnh mạch cảm biến sau gắn linh kiện 48 Hình 4.9: Hình ảnh mạch hiển thị sau gắn linh kiện .48 Hình 4.10: Hình ảnh Mica 49 Hình 11: Hình mặt trước máy đo .49 Hình 4.12: Lưu đồ chương trình 51 Hình 4.13: Giao diện lập trình Arduino 53 Hình 4.14: Quy trình hoạt động Arduino 53 Hình 4.15: Thanh menu lệnh Arduino 53 Hình 4.16: Lệnh menu file Arduino 54 Hình 4.17: Giao diện Examples menu 54 Hình 4.18: lệnh menu tool Arduino 55 Hình 4.19: Chọn board Arduino Nano sử dụng 55 Hình 4.20: Arduino Toolbar 56 Hình 4.21: Hình ảnh báo chương trình nạp thành cơng .56 Hình 4.22: Thêm thư viện Blynk vào Arduino IDE .57 Hình 4.23: Giao diện khởi tạo blynk .57 Hình 5.1: Hình khởi động máy đo 60 Hình 5.2: Hình cảm biến máy đo 60 Hình 5.3: Máy hiển thị chữ Hold 61 Hình 5.4: Máy hiển thị nhiệt độ người đo .61 Hình 5.5: Hình hiển thị người có nhiệt độ cao .62 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 Hình 5.6: hình đổi qua hiển thị độ C 62 Hình 5.7: Hình đổi qua hiển thị độ F 63 Hình 5.8: Hình máy cảnh báo có nhiệt độ cao 63 Hình 5.9: Hình máy cảnh báo có nhiệt độ q thấp 64 Hình 5.10: Hình điều chỉnh âm lượng máy 64 Hình 5.11: Mức âm lượng lớn máy 65 Hình 5.12: Mức âm lượng nhỏ máy .65 Hình 5.13: Hình biểu tượng app Blynk 66 Hình 5.14: Giao diện hiển thị app Blynk .66 Hình 5.15: App cảnh báo có người bị sốt 67 Hình 5.16: Ứng dụng nhắn tin có nhiệt độ cao 67 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 TĨM TẮT Với tình hình dịch bệnh Covid-19 diễn biến phức tạp nước tồn giới việc phòng tránh dịch cần thiết đặc biệt môi trường đông người trường học, công ty Nhưng việc ý thức phòng tránh dịch người dân còn chưa cao, biện pháp phòng ngừa khu vực đơng người đeo trang Một dấu hiệu người bị nhiễm bệnh sốt, người có nhiệt độ thể cao, có biểu sốt phải ngăn không cho vào khu vực dễ lây nhiễm Nhưng việc kiểm tra người có nhiệt độ cao hay khơng phải cần dùng đến máy đo thân nhiệt phải trách tiếp xúc người đo với máy đo người đo với người giám sát khu vực để tránh nhiễm chéo dịch bệnh Để giải được vấn đề thuận tiện cho người sử dụng kiểm tra nhiệt độ thể thân, nhóm lên ý tưởng thiết kế máy đo thân nhiệt khơng tiếp xúc Khi người đo có nhiệt độ cao máy báo động âm chụp hình người gửi cho người giám sát Ngồi người giám sát xem nhiệt độ người đo qua điện thoại có kết nối internet BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12 CHƯƠNG TỔNG QUAN Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Hiện nay, dịch bệnh Covid-19 diễn biến phức tạp tồn giới Đo nhu cầu sử dụng thiết bị đo nhiệt độ tự động không tiếp xúc lớn, đặc biệt nơi bệnh viện, trường học, công ty Hiện ngồi thị trường có thiết bị đo thân nhiệt từ xa như: K3 Series[1], Infrared Counter K3S[2] Từ đó, cho thấy cần thiết thiết bị đo thân nhiệt tình hình dịch bệnh Tuy nhiên, máy đo thân nhiệt vẫn có nhiều hạn chế nên cần nghiên cứu để ứng dụng thêm nhiều công dụng khác, chức đa dạng cho thiết bị Từ khảo sát trên, với kiến thức được trang bị, nhóm làm đề tài kiến nghị thực việc thiết kế thi công thiết bị đo thân nhiệt Thiết bị có tên “Thiết bị đo thân nhiệt tự động khơng tiếp xúc” Có chức đo thân nhiệt người trước vào khu vực đơng người 1.2 MỤC TIÊU Thiết kế thi công được máy đo thân nhiệt tự động hiển thị led đoạn app Blynk Máy có phát âm loa đọc nhiệt độ, lưu trữ được thơng tin người đo có nhiệt độ khơng bình thường 1.3 NỘi DUNG NGHIÊN CỨU NỘI DUNG 1: Kết nối Arduino Nano với cảm biến nhiệt độ NỘI DUNG 2: Kết nối hiển thị nhiệt độ led đoạn app Blynk NỘI DUNG 3: Kết nối Arduino Nano với loa NỘI DUNG 4: Thiết kế mơ hình NỘI DUNG 5: Thi công phần cứng, chạy thử nghiệm hiệu chỉnh NỘI DUNG 6: Viết báo cáo đề tài 1.4 GIỚI HẠN Các thông số giới hạn đề tài bao gồm: Khoảng cách đo < 10cm Kích thước máy đo 20x14x6 cm Chỉ sử dụng hai ngôn ngữ tiếng Anh tiếng Việt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13 CHƯƠNG TỔNG QUAN Máy gửi hình ảnh người có nhiệt độ cao điện thoại Gửi liệu giám sát app Blynk có kết nối internet 1.5 BỐ CỤC Trong báo cáo nhóm nghiên cứu cố gắng trình bày cách thật logic để người đọc dễ dàng nắm rõ được kiến thức, phương thức cách thức hoạt động hệ thống Bố cục báo cáo được nhóm chia làm chương sau: Chương Tổng Quan Chương trình bày đặt vấn đề dẫn nhập lý chọn đề tài, mục tiêu, nội dung ̣nghiên cứu, giới hạn thông số bố cục đồ án Chương 2: Cơ Sở Lý Thuyết Chương trình bày lý thuyết có liên quan đến vấn đề mà đề tài dùng để thực thiết kế, thi công cho sản phẩm Chương 3: Thiết Kế Tính Tốn Chương giới thiệu tổng quan yêu cầu đề tài thiết kế tính tốn liên quan đến đề tài Chương 4: Thi công ̣thống Chương gồm kết thi cơng phần cứng kết hiển thị led đoạn hay giao diện điện thoại Chương 5: Kết quả_Nhận xét_Đánh giá Chương đưa nhận xét đánh giá sản phẩm mơ hình hồn thành Chương 6: Kết Luận Hướng Phát Triển Chương trình bày ngắn gọn kết thu được dựa vào phương pháp, thuật tốn kiến nghị ban đầu BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14 CHƯƠNG CƠ SỞ LÝ THUYẾT Chương CƠ SỞ LÝ THUYẾT 2.1 NHIỆT ĐỘ CƠ THỂ QUA CÁC GIAI ĐOẠN SỐT Nhiệt độ thể người thay đổi nhiều nguyên nhân khác môi trường xung quanh, đặc biệt nhiễm bệnh nhiệt độ thể tăng cao theo mức độ sau đây: - Nhiệt độ trung bình thể 33.50C - Sốt nhẹ nhiệt độ thể từ 37 – 380C - Sốt vừa nhiệt độ thể từ 38 – 390C - Sốt cao nhiệt độ thể từ 39 – 400C - Sốt cao nhiệt độ thể 400C Do thông tin nên nhóm chọn giới hạn máy đo từ 20 đến 450C 2.2 GIỚI THIỆU CẢM BIẾN NHIỆT ĐỘ 2.2.1 Giới thiệu cảm biến nhiệt độ MLX90614 Cảm biến nhiệt độ không tiếp xúc MLX90614 cảm biến nhiệt độ hồng ngoại để đo nhiệt độ bề mặt vật thể Không phải tiếp xúc với bề mặt vật thể nên an toàn sử dung Module cảm biến thiết kế để sử dụng với Arduino vi điều khiển giao tiếp với chuẩn I2C Module cảm biến giao tiếp với vi điều khiển qua chân: VCC, GND, SCL, SDA Sơ đồ chân cảm biến được phân bố hình 2.1 Hình 2.1: Cảm biến nhiệt độ MLX90614 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15 CHƯƠNG CƠ SỞ LÝ THUYẾT Thông số kỹ thuật Điện áp hoạt động: 3.3 đến 5V Dòng tiêu thụ: 2mA Nhiệt độ hoạt động: -40 đến +1250C Nhiệt độ vật thể: -70 đến +3800C Kích thước (PCB): 17*11mm Giao tiếp: I2C có điện trở kéo lên 10k Độ xác: ±0.10C Độ phân giải: 0.020C Chế độ ngủ để giảm tiêu thụ điện 2.2.2 Giới thiệu cảm biến nhiệt độ ZTEMP TL901 Cảm biến thân nhiệt không tiếp xúc ZTEMP TL901 loại cảm biến đo nhiệt độ vật thể thông qua tia hồng ngoại cảm biến có độ xác độ nhạy cao Cảm biến được sử dụng máy đo nhiệt độ cầm tay, trạm đo nhiệt độ không tiếp xúc,… Cảm biến có được thiết kế nhỏ gọn với nhiều tính sau: - Cảm biến bù nhiệt độ mơi trường giúp tăng độ xác đo nhiệt độ người - Cảm biến tích hợp tính SOC (System One Chip) để tối ưu hóa thiết kế khiến cảm biến trở nên nhỏ gọn tiết kiệm chi phí thấp - Dữ liệu đo được loại cảm biến đo nhiệt độ được lưu vào EFROM Hình 2.2: Cảm biến nhiệt độ ZTEMP TL901 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16 CHƯƠNG KẾT LUẬN_HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN_HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau khoảng 15 tuần nghiên cứu tìm hiểu, nhóm hồn thành đồ án thi cơng mơ hình theo yêu cầu đặt ban đầu Trong q trình thực hiện, nhóm thu được kết định - Sản phẩm đạt yêu cầu đo nhiệt độ hiển thị người đo mà không cần tiếp xúc với máy đo - Sản phẩm điều khiển giám sát online qua app Andriod IOS - Điều khiển giám sát offline hình led đoạn nút nhấn điều chỉnh - App điện thoại được bảo mật tài khoản gmail, dễ dàng sử dụng - Trong trình sử dụng người đo bị sốt máy cảnh báo nhanh chóng So sánh với sản phẩm thị trường Chức Sản phẩm Sản phẩn thị trường nhóm Đọc giá trị nhiệt độ qua ngơn ngữ khác Tiếng việt Khơng có tiếng anh Hiển thị độ C độ F Có Có Kết nối với điện thoại thơng qua internet Có Khơng Cảnh báo nhiệt độ bất thường Có Có Lưu trữ thơng tin có nhiệt độ bất Có Máy camera thân thường nhiệt Chụp ảnh Số lượng người lần đo Có khơng người người: máy k -3S máy k3 Nhiều người: camera thân nhiệt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 70 CHƯƠNG KẾT LUẬN_HƯỚNG PHÁT TRIỂN 6.2 HƯỚNG PHÁT TRIỂN - Camera ghi hình máy hoạt động - Dùng nút nhấn cảm ứng, đáp ứng nhanh thao tác người dùng - Thiết kế trang web riêng để gửi nhận thông tin - Loa đọc được thêm nhiều thứ tiếng khác BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 71 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Trần Thu Hà – Trương Thị Bích Ngà – Nguyễn Thị Lưỡng – Bùi Thị Tuyết Đan – Phù Thị Ngọc Hiếu – Dương Thị Cẩm Tú, Giáo trình Điện tử bản, Nhà xuất đại học quốc gia TP Hồ Chí Minh, 2013 [2] Nguyễn Đình Phú, Giáo trình Vi điều khiển, Trường ĐH Sư Phạm Kỹ Thuật TP Hồ Chí Minh [3] Nguyễn Đình Phú, Giáo trình Vi xử lý nâng cao, Trường ĐH Sư Phạm Kỹ Thuật TP Hồ Chí Minh [4] Nguyễn Đình Phú – Nguyễn Trường Duy, Giáo trình Kỹ thuật số, Nhà xuất đại học quốc gia TP Hồ Chí Minh, 2013 [5] Nguyễn Lâm Hoàng Minh Tuấn – Dương Quốc Trung, Đồ án môn học 1: Truyền liệu hai board Arduino, 2017 Trang web tham khảo [1] www.arduino.vn [2] https://www.youtube.com/watch?v=I-HbdRWwMVY&t=314s [3] https://community.blynk.cc/ [4] www.alldatasheet.com [5] https://sieuthiyte.com.vn/nhiet-ke-do-tran-khong-tiep-xuc-treo-tuong-k31188.html BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 72 PHỤ LỤC PHỤ LỤC Chương trình code cho Arduino #include #include #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" Nano SoftwareSerial mySoftwareSerial(9,10); // RX, TX DFRobotDFPlayerMini myDFPlayer; float bien; int ten, ten1, ten2; int one, one1; int point; int vol=20; int chuc; int donvi, donvi2, donvi1; int phay; #define sck // PIN 11 595 #define sdo // PIN 14 595 #define rck // PIN 12 595 #define #define #define #define #define #define SH_CP ST_CP BUTTON 11 // tin hieu c < > f btn led_green led_red vol_cong 13 // vol++ vol_tru A1 // vol-BUTTON1 12 #define cf_fc A2 #define eng_vie A3 #define TRIG_PIN // Chân Trig nối với chân #define ECHO_PIN // Chân Echo nối với chân #define TIME_OUT 10000 // Time_out pulseIn 10000 microsecond Adafruit_MLX90614 mlx = Adafruit_MLX90614(); const unsigned char MA7DOAN[]= {0xC0,0xF9,0xA4,0XB0,0X99,0X92,0X82,0XF8, // ko co dot cham 0X80,0X90}; const unsigned char MA7DOAN_2dot[]= {0x40,0x79,0x24,0X30,0X19,0X12,0X02,0X78, // co dot cham 0X00,0X10}; float body, stemp, body_f; float threshold = 2.3; int i, k,n, dtime; int delayTime = 800; int readcount = 0; int maxRange = 8; int minRange = 4; int maxRange_t = 50; int fc_cf, vie_eng, done; unsigned long dem; extern volatile unsigned long timer0_millis; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 73 PHỤ LỤC // Chương trình tính khoảng cách float getDistance() { long duration, distanceCm; // Phát xung 10uS từ chân Trig digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Thời gian tín hiệu phản hồi lại chân Echo duration = pulseIn(ECHO_PIN, HIGH, TIME_OUT); // Tính khoảng cách distanceCm = duration / 29.1 / 2; // trả lại giá trịnh tính return distanceCm; } void setup() { // put your setup code here, to run once: Serial.begin(19200); mySoftwareSerial.begin(9600); Serial.println(F("DFRobot DFPlayer Mini Demo")); Serial.println(F("Initializing DFPlayer (May take 3~5 seconds)")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3 Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms // Set volume -myDFPlayer.volume(vol); //Set volume value (0~30) myDFPlayer.volumeUp(); //Volume Up myDFPlayer.volumeDown(); //Volume Down // Set different EQ -myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); // Set device we use SD as default -// myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK); myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD); // myDFPlayer.play(19); pinMode(led_green, OUTPUT); pinMode(led_red, OUTPUT); pinMode(vol_cong, INPUT_PULLUP); //D9 CONG ++ VOL pinMode(vol_tru, INPUT_PULLUP); // set pull-up on analog pin A1 TRU VOL pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(BUTTON, INPUT); pinMode(BUTTON1, INPUT); pinMode(cf_fc, INPUT); pinMode(eng_vie, INPUT); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 74 PHỤ LỤC pinMode(sck, OUTPUT); pinMode(sdo, OUTPUT); pinMode(rck, OUTPUT); mlx.begin(); } void dem_chuc() { if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == if (chuc == delay(150); 0) 1) 2) 3) 4) 5) 6) 7) 8) 9) myDFPlayer.play(43); myDFPlayer.play(10); myDFPlayer.play(11); myDFPlayer.play(12); myDFPlayer.play(13); myDFPlayer.play(40); myDFPlayer.play(44); myDFPlayer.play(45); myDFPlayer.play(46); myDFPlayer.play(41); // lẻ } void dem_donvi() { if (donvi == 1) myDFPlayer.play(14); // mốt if (donvi1 == 1) myDFPlayer.play(1); // if (donvi == 2) myDFPlayer.play(2); if (donvi == 3) myDFPlayer.play(3); if (donvi == 4) myDFPlayer.play(4); if (donvi == 5) myDFPlayer.play(15); //lăm if (donvi == 6) myDFPlayer.play(6); delay(150); if (donvi == 7) myDFPlayer.play(7); if (donvi == 8) myDFPlayer.play(8); if (donvi == 9) myDFPlayer.play(9); delay(200); } void dem_phay() { if (phay == 1){ myDFPlayer.play(16);delay(450); myDFPlayer.play(1);delay(200);} //phẩy if (phay == 2){ myDFPlayer.play(16);delay(450); myDFPlayer.play(2);delay(200); } if (phay == 3){ myDFPlayer.play(16);delay(450); myDFPlayer.play(3);delay(200); } if (phay == 4){ myDFPlayer.play(16);delay(450); myDFPlayer.play(4);delay(200); } if (phay == 5){ myDFPlayer.play(16);delay(450); myDFPlayer.play(5);delay(200); } if (phay == 6){ myDFPlayer.play(16);delay(450); myDFPlayer.play(6);delay(200); } if (phay == 7){ myDFPlayer.play(16);delay(450); myDFPlayer.play(7);delay(200); } if (phay == 8){ myDFPlayer.play(16);delay(450); myDFPlayer.play(8);delay(200); } if (phay == 9){ myDFPlayer.play(16);delay(450); myDFPlayer.play(9);delay(200); } delay(250); } void dem_ten() // bien >= 20 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 75 PHỤ LỤC { if (ten == 2) myDFPlayer.play(31); delay(500); //twenty if (ten == 3) { myDFPlayer.play(32); delay(300); myDFPlayer.play(30);delay(310); } //thirty if (ten == 4) { myDFPlayer.play(23); delay(300); myDFPlayer.play(30);delay(310); } if (ten == 5) { myDFPlayer.play(33); delay(300); myDFPlayer.play(30);delay(310); } //fifty if (ten == 6) { myDFPlayer.play(25); delay(300); myDFPlayer.play(30);delay(310); } //sixty if (ten == 7) { myDFPlayer.play(26); delay(600); myDFPlayer.play(30);delay(300); } if (ten == 8) { myDFPlayer.play(27); delay(300); myDFPlayer.play(30); delay(200);} if (ten == 9) { myDFPlayer.play(28); delay(450); myDFPlayer.play(30); delay(310); } //if (ten1 == 0) { myDFPlayer.play(47); } // 10 if (ten1 == 1) { myDFPlayer.play(48); delay(100);} if (ten1 == 2) { myDFPlayer.play(49); delay(100);} if (ten1 == 3) { myDFPlayer.play(32); delay(300); myDFPlayer.play(29); delay(300); } // thirteen if (ten1 == 4) { myDFPlayer.play(23); delay(300); myDFPlayer.play(29); delay(300); } if (ten1 == 5) { myDFPlayer.play(33); delay(300); myDFPlayer.play(29); delay(300); } //fifteen if (ten1 == 6) { myDFPlayer.play(25); delay(300); myDFPlayer.play(29); delay(300); } //sixteen if (ten1 == 7) { myDFPlayer.play(26); delay(600); myDFPlayer.play(29); delay(300); } if (ten1 == 8) { myDFPlayer.play(27); delay(300); myDFPlayer.play(29); delay(300); } if (ten1 == 9) { myDFPlayer.play(28); delay(300); myDFPlayer.play(29); delay(300); } } // 11 // 12 void dem_one() { if if if if if if if if if (one (one (one (one (one (one (one (one (one == == == == == == == == == 1) 2) 3) 4) 5) 6) 7) 8) 9) myDFPlayer.play(20); // one myDFPlayer.play(21); myDFPlayer.play(22); myDFPlayer.play(23); myDFPlayer.play(24); //five myDFPlayer.play(25); myDFPlayer.play(26); delay(400); myDFPlayer.play(27); myDFPlayer.play(28); delay(400); } void dem_point() { if (point == 1){ myDFPlayer.play(36);delay(450); myDFPlayer.play(20);delay(200);} //point if (point == 2){ myDFPlayer.play(36);delay(450); myDFPlayer.play(21);delay(200); } if (point == 3){ myDFPlayer.play(36);delay(450); myDFPlayer.play(22);delay(200); } if (point == 4){ myDFPlayer.play(36);delay(450); myDFPlayer.play(23);delay(200); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 76 PHỤ LỤC if (point == 5){ myDFPlayer.play(36);delay(450); myDFPlayer.play(24);delay(200); } if (point == 6){ myDFPlayer.play(36);delay(450); myDFPlayer.play(25);delay(200); } if (point == 7){ myDFPlayer.play(36);delay(450); myDFPlayer.play(26);delay(400); } if (point == 8){ myDFPlayer.play(36);delay(450); myDFPlayer.play(27);delay(200); } if (point == 9){ myDFPlayer.play(36);delay(450); myDFPlayer.play(28);delay(200); } } void temp_reading_vie() { dem_chuc(); delay(450); dem_donvi(); delay(250); dem_phay(); } void temp_reading_eng() { dem_ten(); dem_one(); dem_point(); delay(400); } void dem_tieng_viet() { if(bien == 100) myDFPlayer.play(42); if(bien > 100 && bien < 101){ myDFPlayer.play(42); phay = (bien - 100)*10; } if(bien >= 101) { myDFPlayer.play(42);delay(650); bien = bien - 100; chuc = bien/10; donvi2 = bien - chuc*10; if(chuc == | chuc == 1) donvi1 = donvi2; // 100 lẻ or 100 mười donvi = donvi2; // mốt phay = (bien - chuc*10 - donvi2)*10; } else { chuc = bien/10; donvi2 = bien - chuc*10; if(chuc==0 | chuc==1) // mốt | donvi1 = donvi2; donvi = donvi2; phay = (bien - chuc*10 - donvi2)*10; } } void dem_tieng_anh() { if(bien == 100) myDFPlayer.play(34); if(bien > 100 && bien < 101){ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 77 PHỤ LỤC myDFPlayer.play(34); // 100 point >9 point = (bien - 100)*10; delay(100); } if(bien >= 101) { myDFPlayer.play(34);delay(700); myDFPlayer.play(35);delay(300); // 100 and bien = bien - 100; ten2 = bien/10; one1 = bien - ten2*10; if(ten2 if(ten2 if(ten2 if(ten2 point == == == >= 0) one = one1; 1) ten1 = one1; && one1 == 0) myDFPlayer.play(47); 2) { ten = ten2; one = one1;} //ten = (bien - ten2*10 - one1)*10; } else { // bien = 20){ ten = ten2; one = one1; } else { ten1=one1; } point = (bien - ten2*10 - one1)*10; } } void nut_nhan_vol_cong() { if (digitalRead(vol_cong) != 0) { delay(100); if (digitalRead(vol_cong) != 0) { vol=vol+5; if(vol>30) vol=30; myDFPlayer.volume(vol); //if(dem < 5) hien_volume();delay(1000); } } } void nut_nhan_vol_tru() { if (digitalRead(vol_tru) != 0) { delay(100); if (digitalRead(vol_tru) != 0) { vol=vol-5; if(vol 3) if((distance > maxRange) && (distance maxRange) && (distance minRange) && (distance 0) && (distance