HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN Đề tài Máy rửa tay tự động Môn Đồ án thiết kế hệ thống số Giảng viên Nguyễn Văn Thành Nhóm môn học 01 Nhóm sinh viên 02 Hà Nội, 2021 1 NHẬN[.]
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-BÁO CÁO BÀI TẬP LỚN
Đề tài: Máy rửa tay tự động Môn: Đồ án thiết kế hệ thống số
Giảng viên : Nguyễn Văn Thành Nhóm môn học : 01
Nhóm sinh viên : 02
Hà Nội, 2021
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Trang 3
DANH SÁCH THÀNH VIÊN NHÓM 02
STT Họ và tên Mã sinh viên Công việc chủ yếu
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 4
I Ý tưởng xây dựng đề tài 5
1 Cách thức hoạt động 5
2 Linh kiện sử dụng 5
a) Arduino Nano CH340 5
b) LCD16x2 6
c) Module I2C Arduino 7
d) Cảm biến vật cản hồng ngoại E18-D80NK 8
e) Máy bơm 12V 8
f) LED báo hiệu 9
g) Cảm biến đo khoảng cách HC-SR40 9
3 Sơ đồ khối 10
4 Mục tiêu của đồ án 11
II Quá trình thực hiện 11
1 Xây dựng phần mềm 11
a Khai báo các cổng sử dụng 11
b Thiết lập các cổng 12
c Tính lượng xà phòng còn lại sau mỗi lần bơm 13
d Thiết lập quá trình hoạt động 13
e Chương trình hoàn chỉnh 15
2 Thiết kế phần cứng 19
a Sơ đồ kết nối các khối sử dụng 19
b Xây dựng mạch in khối điều khiển 23
c Mô hình thử nghiệm 24
III Các định hướng cho tương lai sản phẩm 26
Trang 5LỜI NÓI ĐẦUVấn đề giữ vệ sinh nơi công công cộng đã trở thành một vấn đề đặc biệt nổi lên từ
khi đại dịch COVID hoành hành Giữ sạch sẽ đôi bàn tay của bản thân khi ra ngoài và khi trở về đã trở thành một phương pháp hữu hiệu và vô cùng quan trọng trong việc phòng chống dịch bệnh Tuy nhiên ngay trong thao tác rửa tay cũng tồn tại những rủi ro nhất định khi mà có sự tiếp xúc giữa lòng bàn tay và khóa nước, ở những nơi công cộng thì tỉ
lệ rủi ro do tiếp xúc lại càng cao Bởi thế một thiết bị hỗ trợ việc rửa tay mà không cần tiếp xúc có thể tỏ ra có ích để giải quyết vấn đề trên
Các chung cư là nơi có mật độ dân cư rất cao, vì vậy vấn đề giữ vệ sinh chung ở nơi đây được quan tâm rất nhiều Đặc biệt ở sảnh chính của các tòa nhà luôn có các chai dung dịch khử khuẩn phục vụ việc sát khuẩn tay cho cư dân khi sử dụng thang máy Tuy nhiên với mỗi lần nhấn nắp để dung dịch khử khuẩn phun vào tay thì đồng thời trên nắp chai sẽ trở thành nơi tiếp xúc với một bàn tay chưa qua sát khuẩn, mà đó cũng là nơi người sử dụng sau tiếp xúc Có một cách để giải quyết vấn đề này mà nhiều nơi đã áp dụng là tự động hóa quy trình rửa tay Có nghĩa là sẽ cải tiến những chai xịt khử khuẩn kia bằng một thiết bị, thiết bị này sẽ tự động phun một lượng chất lỏng vào tay người sử dụng bất cứ khi nào người đó chìa bàn tay phía dưới khu vực chỉ định Phương pháp này vừa loại bỏ thao tác tiếp xúc ẩn chứa rủi ro, vừa tiết kiệm thời gian cho người sử dụng
Chính vì vậy mà nhóm 2 bọn em đã lựa chọn đề tài Máy rửa tay tự động với mục đích nâng cao ý thức phòng chống dịch bệnh cũng như rèn luyện kĩ năng làm việc với Arduino và một số loại cảm biến Trong quá trình thực hiện bọn em đã trao đổi, cùng hỗ trợ lẫn nhau trong quá trình tìm hiểu và thực hiện, tuy nhiên sai xót là điều khó tránh khỏi
Bọn em rất mong những góp ý của thầy để sản phẩm này có tính ứng dụng cao hơn
Trang 6I Ý tưởng xây dựng đề tài
1 Cách thức hoạt động
➢ Mục đích của thiết bị này là hạn chế sự tiếp xúc nên thiết bị sẽ hoạt động theo nguyên lí: bất cứ khi nào người dùng đặt tay vào khu vực bên dưới vòi phun chất khử khuẩn thì một lượng nhỏ dung dịch sẽ tự động được phun ra
➢ Thiết bị gồm 2 vòi phun riêng biệt, một cho ra nước sạch, một cho ra dung dịch khử khuẩn (xà phòng)
➢ Có thêm đèn báo lượng dung dịch khử khuẩn còn đủ để sử dụng không, đồng thời hiển thị trên LCD để quản lí khu vực đặt máy rửa tay tự động nắm bắt tình hình, xem khi nào cần cho thêm dung dịch sát khuẩn vào bể chứa
➢ Vì lượng nước sử dụng chung với nguồn nước của chung cư nên chỉ cần quan tâm đến lượng xà phòng còn lại trong bể chứa bằng cảm biến khoảng cách
2 Linh kiện sử dụng
a) Arduino Nano CH340
➢ Có kích thước nhỏ gọn, thiết kế và chuẩn chân giao tiếp tương đương với Arduino Nano chính hãng Tuy nhiên sử dụng chip nạp chương trình và giao tiếp UART CH340 giá rẻ để tiết kiệm chi phí
Trang 7➢ Sử dụng MCU Atmega328P-AU dán
➢ Điện áp cấp: 5VDC
➢ Dòng GPIO: 40 mA
➢ Số chân Digital: 14 chân, trong đó có 6 chân PWM
➢ Số chân Analog: 8 chân
➢ Lập trình trên Arduino đơn giản và tiện lợi hơn một số dòng kit khác như STM32, FPGA… và Arduino có giá thành rẻ hơn cả vì vậy nhóm 2 chọn loại Arduino Nano này để tiết kiệm chi phí sản phẩm mà vẫn đáp ứng đầy đủ tính năng cần thiết
➢ Hiển thị tối đa 16 kí tự trên 2 dòng
➢ 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
➢ Có thể cấu hình cho LCD ở chế độ lệnh hoặc chế độ dữ liệu và chế độ đọc hoặc ghi
Trang 8➢ Sử dụng LCD 16x2 vì nhu cầu hiển thị không nhiều, chỉ để báo về lượng nước trong bể
c) Module I2C Arduino
➢ LCD có quá 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 Module I2C LCD ra đời để 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 16x2 (RS, EN, D4, D5, D6, D7) thì với module I2C 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 và tương thích với hầu hết các vi điều khiển hiện nay
➢ Điện áp hoạt động: 2.5-6 VDC
➢ Cách kết nối giữa module I2C Arduino với LCD 16x2 (hình ảnh minh họa)
Trang 9d) Cảm biến vật cản hồng ngoại E18-D80NK
➢ Cảm biến sử dụng ánh sáng hồng ngoại để xác định vật cản phía trước cảm biến
➢ Cảm biến phát ra tia hồng ngoại với dải tần số chuyên biệt cho khả năng chống nhiễu tốt kể cả ở điều kiện ánh sáng ngoài trời Có thể chỉnh khoảng cách mong muốn thông qua biến trở trên cảm biến, cảm biến có ngõ ra là cấu trúc Transistor NPN (sinking sensors) đã được nối điện trở nội 10k lên VCC nên có thể sử dụng ngay mà không cần trở kéo lên VCC
➢ Số dây tín hiệu: 3 dây (2 dây nguồn DC và 1 dây tín hiệu)
➢ Nguồn cung cấp: 5VDC
e) Máy bơm 12V
➢ Điện áp làm việc: 12VDC
Trang 10➢ Lưu lượng tối đa: 2-3 lit/phút
➢ Áp suất đầu ra: 1 - 2.5kg
➢ Độ sâu hút đạt được: 1 - 2.5m
➢ Tuổi thọ làm việc bình thường: 2 - 3 năm
f) LED báo hiệu
➢ LEDs là viết tắt của từ Light Emitting Diodes nghĩa là diode phát quang được cấu tạo từ chất bán dẫn loại P và loại N
➢ Sử dụng led với mục đích làm đèn báo trạng thái của mạch, màu xanh được hiểu
là thiết bị đang hoạt động tốt, lượng xà phòng (dung dịch sát khuẩn) vẫn còn đủ để sử dụng, màu đỏ nghĩa là hết xà phòng
g) Cảm biến đo khoảng cách HC-SR40
➢ Cảm biến khoảng cách siêu âm HC-SR04 được sử dụng rất phổ biến để xác định khoảng cách vì rẻ và chính xác Cảm biến sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 -> 300 cm, với độ chính xác gần như chỉ phụ thuộc vào cách lập trình
Trang 11➢ Cảm biến HC-SR04 có 4 chân là: Vcc, Trig, Echo, GND
➢ Để đo khoảng cách, cảm biến sẽ phát 1 xung rất ngắn (5 microSeconds - us) từ chân Trig Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ ở pin này Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại
➢ Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tương đương với 29.412 microSeconds/cm (106 / (340*100)) Khi đã tính được thời gian, ta sẽ chia cho 29.4 để nhận được khoảng cách xấp xỉ
h) Phần mềm sử dụng
➢ Nhóm sử dụng phần mềm Arduino IDE bởi giao diện dễ dùng, quá trình nạp code đơn giản
3 Sơ đồ khối
Trang 12➢ Khối trung tâm là bo mạch nhúng sử dụng Arduino Nano CH340, cùng các thiết
bị, cảm biến được kết nối như sơ đồ
➢ Phương thức truyền dữ liệu được sử dụng là phương thức I2C
➢ Dữ liệu nhận được từ cảm biến đo mực nước luôn được cập nhật trên LCD, nếu có người sử dụng, cảm biến tay người sẽ nhận và gửi dữ liệu về bo mạch chủ, từ đó điều khiển động cơ hoạt động, phun một lượng cố định dung dịch sát khuẩn ra Khi dung dịch từ bể chứa hết thì sẽ báo hiệu để người quản lí thêm dung dịch mới
4 Mục tiêu của đồ án
➢ Củng cố kĩ năng làm việc nhóm, kĩ năng lập trình của các thành viên trong nhóm
➢ Hiểu được các giao thức giao tiếp, cách thức lập trình Arduino
➢ Nắm bắt được cách thức các module hoạt động và cách thức truyền tín hiệu của từng module
II Quá trình thực hiện
1 Xây dựng phần mềm
a Khai báo các cổng sử dụng
Trang 13➢ Sử dụng LCD1602, địa chỉ mặc định của LCD là 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
➢ Tiếp đó là khai báo các chân sử dụng
#define denbao1 5 // Pin 5 để hiển thị đèn báo 1
#define denbao2 6 // Pin 6 để hiển thị đèn báo 2
#define TIME_OUT 5000 // Thời gian chờ xung là 5s = 5000ms
#define Trig 8 // Thiết lập chân Trig ở chân số 8
#define hongngoai 3 // Cảm biến hồng ngoại 01 ở chân 3
#define hongngoai2 4 // Cảm biến hồng ngoại 02 ở chân 4
➢ Khởi tạo các biến
int temp;
int distance = 0; // Thiết lập khoảng cách ban đầu = 0cm
b Thiết lập các cổng
➢ Cài đặt hiển thị cho LCD
• Khởi động một cổng Serial với một baudrate 9600
➢ Thiết lập các chân ở các chế độ hoạt động như sau:
• Đèn báo 1 và 2 là hai chân dữ liệu ra, tương tự cho Trig, Echo (dữ liệu vào) và Relay
pinMode(denbao1, OUTPUT);
pinMode(denbao2, OUTPUT);
Trang 14c Tính lượng xà phòng còn lại sau mỗi lần bơm
➢ Nếu một vật thể bất kì được đặt cách cảm biến tối đa 10cm thì thiết bị sẽ bơm ra dung dịch, tay người ở vòi nào sẽ bơm bên vòi đó Sau đó lượng dung dịch xà phòng còn lại được tính bằng cách sau:
Trang 15➢ Khi cho tay vào dưới vòi thì sẽ có 2 trường hợp xảy ra
• Trường hợp 1: Khi cả xà phòng và nước đều còn thì 2 cảm biến đều hoạt động
và máy bơm cũng hoạt động, lượng xà phòng vẫn vẫn được cập nhật trạng thái còn lại bao nhiêu, đèn LED vẫn báo xanh
Trang 19lcd.print(" Canh bao het ");
Trang 21Máy bơm
Trang 22Khối điều khiển
Khối hiển thị
Trang 23Cảm biến hồng ngoại
Đèn báo
Trang 24b Xây dựng mạch in khối điều khiển
Trang 25c Mô hình thử nghiệm
➢ Nhóm 2 đã làm một mô hình mô phỏng cách thức hoạt động như sau: Thiết kế 2 vòi, một vòi phun nước bên phải (dùng nguồn nước chung từ chung cư), vòi còn lại phun xà phòng khử khuẩn (bể chứa xà phòng nằm trong thiết bị)
➢ Góc nhìn từ trên xuống của thiết bị
Trang 26➢ Góc nhìn ngang
Trang 27III Các định hướng cho tương lai sản phẩm
➢ Nếu sản phẩm thành công trong tương lai thì nhóm sẽ phát triển thêm tính năng báo hiệu qua Wifi, khối điều khiển lúc này sẽ tích hợp với ESP để truyền và nhận dữ liệu
➢ Sản phẩm sẽ thêm bể chứa phụ, để khi xà phòng ở bể chứa chính hết thì chỉ với một thao tác trên webserver hoặc trên app blynk, người quản lí có thể bơm đầy xà phòng vào các thiết bị mà không cần đến từng thiết bị một Hoặc một tính năng tự động bơm lại dung dịch từ bể khác sang thiết bị hết xà phòng cũng có thể được phát triển