Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA ĐIỆN – ĐIỆN TỬ



BÁO CÁO ĐỒ ÁN MÔN HỌC 2


ĐỀ TÀI

THIẾT KẾ VÀ THI CÔNG MẠCH CẢNH BÁO


NỒNG ĐỘ CỒN

Tp.Hồ Chí Minh, tháng 05 năm 2019


MỤC LỤC

PHẦN 1. TỔNG QUAN ..................................................................................................... 1


1. GIỚI THIỆU ĐỀ TÀI................................................................................................. 1
2. MỤC ĐÍCH NGHIÊN CỨU ...................................................................................... 1
3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU ........................................................... 2
4. THÔNG SỐ GIỚI HẠN ............................................................................................. 2
5. PHƯƠNG PHÁP NGHIÊN CỨU .............................................................................. 2
PHẦN 2. NỘI DUNG ......................................................................................................... 3
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT............................................................................... 3
1.1. Mô tả quá trình hoạt động ....................................................................................... 3
1.2. Nguyên tắc hoạt động của cảm biến nồng độ cồn MQ3 ......................................... 3
1.3. Nguyên tắc kết nối giữa cảm biến MQ3 và Arduino .............................................. 6
1.4. Cách lập trình với Arduino ..................................................................................... 6
1.5. Cách đọc dữ liệu từ cảm biến và hiển thị dữ liệu lên LCD oled .......................... 12
1.6. Hiển thị dữ liệu lên LCD oled .............................................................................. 13
1.7. Tìm hiểu về buzzer ............................................................................................... 14
CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG ..................................................................... 16
2.1. Giới thiệu .............................................................................................................. 16
2.2. Thiết kế sơ đồ khối ............................................................................................... 16
2.3. Giải thích chức năng các khối............................................................................... 16
2.4. Tính toán lựa chọn linh kiện ................................................................................. 18
2.5. Sơ đồ kết nối mạch ............................................................................................... 19
CHƯƠNG 3. THIẾT KẾ PHẦN MỀM ..................................................................... 19
3.1. Lưu đồ chương trình ............................................................................................. 20
3.2. Code chạy chương trình ........................................................................................ 20
CHƯƠNG 4. THI CÔNG MẠCH ............................................................................... 25
4.1. Chuẩn bị linh kiện ................................................................................................. 26
4.2. Kết nối mạch ......................................................................................................... 27
CHƯƠNG 5. KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ...................... 29
5.1. Kết quả thực hiện .................................................................................................. 29
5.2. Hướng phát triển ................................................................................................... 32
PHẦN 3. KẾT LUẬN ....................................................................................................... 33
TÀI LIỆU THAM KHẢO................................................................................................ 34
DANH MỤC CÁC HÌNH VÀ BẢNG

Hình Trang

Hình 1.1 Cảm biến MQ-3 4

Hình 1.2 Sơ đồ mạch điện của cảm biến. 5

Hình 1.3 Sơ đồ kết nối 6

Hình 1.4 Arduino IDE 10

Hình 1.5 Arduino toolbar 10


Hình 1.6 IDE menu 10
Hình 1.7 File menu. 11

Hình 1.8 Edit menu. 11

Hình 1.9 Sketch menu. 12

Hình 1.10 Hình ảnh mặt trước và mặt sau của LCD OLED 12

Hình 2.1 Sơ đồ khối của hệ thống 16

Hình 2.2 Sơ đồ kết nối khối cảm biến 17

Hình 2.3 Sơ đồ khối hiển thị và cảnh báo 17

Hình 2.4 Sơ đồ mạch 19

Hình 3.1 Lưu đồ thuật toán 20

Hình 4.1 Sơ đồ kết nối 28

Hình 5.1 sản phẩm hoàn chỉnh 29

Hình 5.2 Trường hợp bạn tỉnh táo 29

Hình 5.3 Trường hợp bạn đã uống bia 30


Hình 5.4 Trường hợp bạn uống nhiều bia 30

Hình 5.5 Trường hợp bạn uống rượu 31

Hình 5.6 Trường hợp bạn đang say 31

Bảng Trang

Bảng 1 Các thông số kĩ thuật của MQ-3 4

Bảng 2 Sơ đồ và chức năng các chân 13

Bảng 3 Danh sách các linh kiện 26


ĐỒ ÁN 2

PHẦN 1. TỔNG QUAN

1. GIỚI THIỆU ĐỀ TÀI


Hiện nay, ở nước ta các tệ nạn xã hội ngày càng gia tăng mà một trong những nguyên
nhân chủ yếu đó là do uống nhiều rượu bia. Rượu, bia là nguyên nhân chủ yếu làm
giảm năng suất lao động, gây ra các tệ nạn xã hội như bạo lực, gia đình tan vỡ, con cái
hư hỏng và đặc biệt gây ra các vụ tai nạn giao thông nghiêm trọng và đặc biệt nghiêm
trọng. Việt Nam là quốc gia thuộc tốp đầu các nước sử dụng rượu, bia khi tham gia
giao thông. Tình trạng sử dụng rượu, bia tràn lan ở nhiều nơi đã khiến trật tự an toàn
giao thông trở thành vấn đề báo động đây chính là nguyên nhân hàng đầu gây tai nạn
giao thông, khi điều khiển phương tiện bởi người lái xe thường phản ứng chậm, buồn
ngủ, thiếu tập trung, việc nhìn thấy các biển báo, tín hiệu hoặc quan sát trên đường
không còn rõ ràng nên có khi xử lý không đúng và có thể gây ra tai nạn. Người say
cũng "bốc đồng", không còn khả năng kiểm soát tốc độ cho nên thường phóng nhanh,
vượt ẩu, lấn đường rất dễ gây tai nạn.
Chính vì thế, có nhiều công trình nghiên cứu về vấn đề đo nồng độ cồn đối với
những người tham gia giao thông. Với những thực tế trên, nhóm em xin tìm hiểu và
nghiên cứu đề tài “Thiết kế và thi công mạch cảnh báo nồng độ cồn.”. mang tính cộng
đồng và xã hội cao, nhằm mục đích chủ động ngăn ngừa kịp thời và cảnh báo sớm
hiểm họa về tai nạn giao thông xảy ra, tạo nên một thói quen và ý thức tốt cho người
tham gia giao thông.

2. MỤC ĐÍCH NGHIÊN CỨU


 Tạo ra thiết bị cảm biến và cảnh báo nồng độ cồn từ môi trường dùng lập trình
Arduino

 Thiết bị có khả năng đưa ra cảnh báo với từng mức ngưỡng của nồng độ cồn.

Trang 1
ĐỒ ÁN 2

3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU


 Đối tượng nghiên cứu:
 Nghiên cứu nguyên tắc hoạt động của cảm biến nồng độ cồn
 Nguyên tắc kết nối giữa cảm biến và Arduino
 Tìm hiểu về cách lập trình với Arduino, cách đọc dữ liệu từ cảm biến, cách hiển thị
dữ liệu lên LCD oled.
 Phạm vi nghiên cứu:
 Dùng lập trình Arduino kết hợp với cảm biến nồng độ cồn.
 Hiển thị giá trị nồng độ và cảnh báo trên LCD oled
 Không kết nối được với các thiết bị ngoại vi

4. THÔNG SỐ GIỚI HẠN


 Sử dụng nguồn pin 9V để cấp cho Arduino
 Sử dụng nguồn 5V cho oled LCD và cảm biến MQ3
 Mạch sử dụng vi điều khiển
 Không kết nối được với các thiết bị ngoại vi

5. PHƯƠNG PHÁP NGHIÊN CỨU


Phương pháp nghiên cứu lý luận: thông qua việc đọc phân tích tài liệu cần thiết
phục vụ cho đề tài… thu thập những tài liệu liên quan và hệ thống hóa cơ sở lý
luận, đưa ra những quan điểm nghiên cứu cụ thể, rõ ràng, thuyết phục.

Phương pháp tiếp cận môi trường: qua những khảo sát trong thực tiễn, nghiên cứu
ứng dụng nhằm mang lại những lợi ích thiết thực, có tính ứng dụng cao và có khả
năng phát triển mở rộng.

Trang 2
ĐỒ ÁN 2

PHẦN 2. NỘI DUNG

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. Mô tả quá trình hoạt động
Máy phát hiện nồng độ cồn có nhiệm vụ chính là kiểm tra trực tiếp nồng độ cồn
trong hơi thở. Bộ phận cảnh báo có nhiệm vụ chính là phát các tín hiệu cảnh báo khi
nồng độ cồn trong vùng không gian thở trước mặt của người sử dụng quá cao. Chọn
ngưỡng chặn và cảnh báo, căn cứ vào các qui định của luật giao thông, ta chọn ngưỡng
ngăn chặn và cảnh báo cho hệ thống ứng với nồng độ cồn.
 Nếu nồng độ cồn đo được dưới 200µg/1 lít khí thở hiển thị “ Bạn tỉnh táo”
 Nếu nồng độ cồn đo được trên 200µg/1 lít khí thở và dưới 250µg/1lit hiển thị “ Bạn
đã uống bia” và led đỏ sẽ sáng.
 Nếu nồng độ cồn đo được trên 250µg/1 lít khí thở và dưới 320µg/1lit hiển thị “ Bạn
uống khá nhiều bia” led đỏ sáng đồng thời buzzer kêu , oled hiển thị mức phạt 1
triệu – 2 triệu.
 Nếu nồng độ cồn đo được trên 320µg/1 lít khí thở và dưới 400µg/1lit hiển thị “Bạn
uống rượu” led đỏ sáng đồng thời buzzer kêu, oled hiển thị mức phạt 1 triệu-2 triệu.
 Nếu nồng độ cồn đo được trên 400µg/1 lít khí thở hiển thị “Bạn đang say” led đỏ
sáng đồng thời buzzer kêu, oled hiển thị mức phạt 3 triệu-4 triệu.

1.2. Nguyên tắc hoạt động của cảm biến nồng độ cồn MQ3
Cảm biến MQ-3 được sử dụng để đo nồng độ cồn. Được làm từ vật liệu SnO2.
Vật liệu này có tính dẫn điện kém trong môi trường không khí sạch nhưng lại rất
nhạy cảm với hơi cồn. Trong môi trường có nồng độ cồn càng cao, điện trở của cảm
biến càng giảm. Từ bảng số liệu, tỷ lệ điện trở của cảm biến giảm gần 5 lần khi đo
trong môi trường không khí sạch. Tuy nhiên hiệu ứng phát hiện nồng độ cồn của

Trang 3
ĐỒ ÁN 2

cảm biến này còn phụ thuộc điều kiện nhiệt độ. Khi nhiệt độ bề mặt cảm biến được
sấy nóng tới 600C thời gian cần thiết để phát hiện nồng độ cồn kéo dài khoảng 8
giây. Cũng trong môi trường đó, khi nhiệt độ bề mặt cảm biến là 200C thời gian phát
hiện nồng độ cồn kéo dài từ 3 đến 5 phút.

Hình 1.1 Cảm biến MQ-3

Bảng 1 Các thông số kĩ thuật của MQ-3

Tên thông số Giá trị Đơn vị

Kí hiệu MQ-3

Chất phản ứng Cồn (ethanol)

Dải đo 0,04- 0,4 mg/l

Điện áp làm việc < 24 V

Điện áp sấy 5± 0,2 V (AC hoặc DC)

Tải đầu ra Điều chỉnh được Ω

Điện trở sấy 31± 3 Ω

Công suất sấy ≤ 900 mW

Trang 4
ĐỒ ÁN 2

KΩ tại nồng độ cồn 0,4


Điện trở cảm biến 2÷ 20
mg/l

Tỉ lệ điện trở cảm biến khi


Độ nhạy ≥5 nồng độ cồn bằng 0 và
0,4mg/l

Sơ đồ mạch điện của cảm biến

Hình 1.2 Sơ đồ mạch điện của cảm biến.

Trong mạch điện của cảm biến MQ3, có 2 đầu dây áp đầu ra của cảm biến, RL
là điện trở mạch ra được nối nối tiếp với cảm biến, trị số được cấp điện áp: VH là
điện áp cấp cho mạch sấy và Vc điện áp cấp cho cảm biến, VRL là điện của RL có
thể điều chỉnh được. Các điện áp VH và Vc thường được cấp cùng trị số. Trong
mạch đo, các điện áp này được cấp 5 Vol DC. Các tín hiệu ra của cảm biến được gửi
về bộ vi điều khiển để tính toán xử lý. Module cảm biến MQ-3 Cảm biến thích hợp
cho việc phát hiện nồng độ cồn trong hơi thở. Phát hiện khí phát ra từ Etanol,
Alcohol. Đặc điểm của module cảm biến MQ-3: Có bốn chân, điện áp cung cấp là
nguồn 5V, Dout đầu ra là tín hiệu số (0 và 1), Aout đầu vào là tín hiệu tương tự, đèn
LED sáng khi phát hiện có khí, GND cấp điện cực âm, độ nhạy cao và chọn lọc tốt
với ethanol, bền và ổn định đáng tin cậy, độ nhạy cao và thời gian đáp ứng nhanh.

Trang 5
ĐỒ ÁN 2

1.3. Nguyên tắc kết nối giữa cảm biến MQ3 và Arduino

Hình 1.3 Sơ đồ kết nối

Gồm 4 chân:

• VCC : 2,5V - 5V.

• DOUT : Digital output.

• AOUT: Analog output.

• GND : nối đất.

1.4. Cách lập trình với Arduino


a/ Ngôn ngữ lập trình

Ngôn ngữ lập trình sử dụng trong bài là ngôn ngữ C của Arduino.

- Cấu trúc chương trình:

Chương trình Arduino có thể được chia làm 3 phần: cấu trúc (structure), biến
số (variable) và hằng số (constant), hàm và thủ tục (function).

- Các kiểu dữ liệu:

* String

Trang 6
ĐỒ ÁN 2

Trong một chương trình Arduino là sử dụng mảng ký tự để biểu diễn chuỗi.
Cách khai báo:
Char Str1[15]; // khai bảo chuỗi có độ dài là 15 ký tự.
Char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; //khai báo chuỗi có độ dài tối đa là 8 ký tự
và đặt nó giá trị ban đầu là arduino (7 ký tự). Buộc phải khai báo chuỗi nằm giữa hai
dấu nháy đơn.Char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; //khai báo chuỗi có độ dài
tối đa là 8 ký tự và đặt nó giá trị ban đầu là arduino<ký tự null>.
Char Str4[ ] = "arduino"; // Chương trình dịch sẽ tự động điều chỉnh kích thước cho.
chuỗi Str4 này và đặt một chuối trong dấu ngoặc kép.
Char Str5[8] = "arduino"; // Một cách khai báo như Str3.
Char Str6[15] = "arduino"; // Một cách khai báo khác với độ dài tối đa lớn hơn.

* Array

Array là mảng (tập hợp các giá trị có liên quan và được đánh dấu bằng những chỉ số). Array
được dùng trên Arduino chính là Array trong ngôn ngữ lập trình C.

Các cách khởi tạo một mảng:

Int myInts[6]; // tạo mảng myInts chứa tối đa 6 phần tử (được đánh dấu từ 0-5), các
phần tử này đều có kiểu là int => khai báo này chiếm 2*6 = 12 byte bộ nhớ
Int myPins[] = {2, 4, 8, 3, 6}; // tạo mảng myPins chứa 5 phần tử (lần lượt là 2, 4, 8,
3, 6). Mảng này không giới hạn số lượng phần tử vì có khai báo là "[]"
Int mySensVals[6] = {2, 4, -8, 3, 2}; // tạo mảng mySensVals chứa tối đa 6 phần tử,
trong đó 5 phần tử đầu tiên có giá trị lần lượt là 2, 4, -8, 3, 2.
Char message[6] = "hello"; // tạo mảng ký tự (dạng chuỗi) có tối đa 6 ký tự.

* Double

Giống hết như kiểu Float. Nhưng trên mạch Arduino thì kiểu Double lại chiếm đến 8 byte
bộ nhớ (64 bit).

* Float

Trang 7
ĐỒ ÁN 2

Để định nghĩa 1 kiểu số thực, có thể sử dụng kiểu dữ liệu Float. Một biến dùng kiểu dữ liệu
này có thể đặt một giá trị nằm trong khoảng -3.4028235E+38 đến 3.4028235E+38. Nó
chiếm 4 byte bộ nhớ.

* Short

Giống kiểu Int, tuy nhiên có điều trên mọi mạch Arduino nó đều chiếm 4 byte bộ nhớ và
biểu thị giá trị trong khoảng -32,768 đến 32,767 (-215 đến 215-1) (16 bit).

Cú pháp: short var = val;

Var: tên biến.

Val: giá trị.

* Unsigned long

Kiểu Unsigned long là kiểu số nguyên nằm trong khoảng từ 0 đến 4,294,967,295 (0 đến
232 - 1). Mỗi biến mang kiểu dữ liệu này chiếm 4 byte bộ nhớ.

* Word

Giống như kiểu Unsigned int, kiểu dữ liệu này là kiểu số nguyên 16 bit không âm (chứa
các giá trị từ 0 đến 65535), và nó chiếm 2 byte bộ nhớ.

* Unsigned int

Kiểu Unsigned int là kiểu số nguyên nằm trong khoảng từ 0 đến 65535 (0 đến 216 - 1). Mỗi
biến mang kiểu dữ liệu này chiếm 2 byte bộ nhớ. Trên Arduino, Unsigned int có khoảng
giá trị từ 0 đến 4,294,967,295 (232 - 1) (lúc này nó chiếm 4 byte bộ nhớ).

Cú pháp: unsigned int [tên biến] = [giá trị];

* Int

Kiểu Int là kiểu số nguyên chính được dùng trong chương trình Arduino. Kiểu int chiếm 2
byte bộ nhớ. Trên mạch Arduino Uno, nó có đoạn giá trị từ -32,768 đến 32,767 (-215 đến
215-1) (16 bit).

Cú pháp: int var = val;

Trang 8
ĐỒ ÁN 2

var: tên biến.

val: giá trị.

* Byte

Là một kiểu dữ liệu biểu diễn số nguyên nằm trong khoảng từ 0 đến 255. Sẽ mất 1 byte bộ
nhớ cho mỗi biến mang kiểu byte.

* Unsigned char

Giống hệt bài giới thiệu về kiểu Char. Tuy nhiên kiểu Unsigned char lại biểu hiệu một số
nguyên byte không âm (giá trị từ 0 - 255).

* Char

Kiểu dữ liệu này là kiểu dữ liệu biểu diễn cho 1 kí. Kiểu dữ liệu này chiếm 1 byte bộ nhớ.
Kiểu Char được lưu dưới dạng 1 số nguyên byte có số âm (có các giá trị từ -127 - 128).

* Long

Long là một kiểu dữ liệu mở rộng của Int. Những biến có kiểu long có thể mang giá trị 32
bit từ -2,147,483,648 đến -2,147,483,647. Sẽ mất 4 byte bộ nhớ cho một biến kiểu long.

* Boolean

Một biến được khai báo kiểu Boolean sẽ chỉ nhận một trong hai giá trị: true hoặc false. Và
sẽ mất 1 byte bộ nhớ cho điều đó.

* Void

Void là một từ khóa chỉ dùng trong việc khai báo một function. Những function được khai
báo với "void" sẽ không trả về bất kì dữ liệu nào khi được gọi.

b/ Phần mềm phụ trợ

Sử dụng Arduino IDE


Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho arduino.
Khởi tạo 1 dự án:
- Giao diện để sọan thảo code

Trang 9
ĐỒ ÁN 2

Hình 1.4 Arduino IDE.

- Arduino toolbar: có một số button và chức năng như sau:

Hình 1.5 Arduino toolbar.

Verify: kiểm tra code có lỗi hay không

Upload: nạp code đang soạn thảo vào arduino

New, open và save: tạo mới, mở và lưu lại

Serial Monitor: màn hình hiển thị dữ liệu từ arduino gửi lên máy tính

- Arduino IDE Menu

Hình1.6 IDE menu.

File menu:

Trang 10
ĐỒ ÁN 2

Hình 1.7 File menu.

Trong file menu mục Example là nơi chứa code mẫu ví dụ: Như cách sử dụng các chân
digital, analog....

Edit menu:

Hình 1.8 Edit menu.

Sketch menu:

Trang 11
ĐỒ ÁN 2

Hình 1.9 Sketch menu.

Trong Sketch menu:


Verify/ compile: Chức năng kiểm tra lỗi code.
Show Sketch Foder: Hiển thị nơi code được lưu.
Add file: Thêm vào 1 tập code mới.
Import library: Thêm thư viện cho IDE.

1.5. Cách đọc dữ liệu từ cảm biến và hiển thị dữ liệu lên LCD oled
Dữ liệu được đọc từ cảm biến nhờ chương trình do người dùng lập trình trên Arduino
Dữ liệu đọc được sẽ được xử lí và hiển thị trên LCD oled
a/ LCD oled
Màn hình nhỏ, đường chéo chỉ khoảng 1,3" nhưng rất có thể đọc được là do sự tương
phản cao một màn hình OLED. Màn hình này được làm bằng 128x 64 pixel OLED
trắng, đều được bật hoặc tắt bởi chip điều khiển. Các chip điều khiển, SSD1306 có
thể giao tiếp trong hai cách: I2C hoặc SPI. Các OLED cần nguồn cung cấp điện 3.3V
và 3.3V mức logic cho giao tiếp, có thể sử dụng với các thiết bị 5V, Display Ram
128 x 64 bit.

Hình 1.10 Hình ảnh mặt trước và mặt sau của LCD OLED.

Trang 12
ĐỒ ÁN 2

Bảng 2 Sơ đồ và chức năng các chân

Tên chân Chức năng

V3.3 Chân cấp nguồn 3.3V cho LCD

CS Chip Select, chân hoạt động ở mức tích cực thấp, ở mức cao nó
không cho phép MCU đọc ghi dữ liệu

RES Chân reset tín hiệu đầu vào, ở mức thấp thì LCD được khởi tạo lại.
Ở mức cao thì LCD hoạt động bình thường

DC Chân điều khiển Data/ Command. DC = 1 input là data

DC = 0 input là command

SCLK Chân tạo xung Clock

SDIN Chân dữ liệu nối tiếp đầu vào

GND Chân nối đất

1.6. Hiển thị dữ liệu lên LCD oled


init(0x3C);
Khởi động oled với địa chỉ i2c đó, loại mình đang đề cập có địa chỉ đó.
*.display();
Bắt đầu vẽ lên màn hình
*.clearDisplay();
Xóa hết màn hình
*.clearArea(x,y,w,h);
Xóa một vùng nào đó. x,y là tọa độ điểm bắt đầu của vùng đó (đỉnh trên
cùng bên trái), w và h là chiều dài và cao của vùng cần xóa.
*.setCursor(x,y);
Đưa điểm bắt đầu vẽ lên màn hình tới x,y

Trang 13
ĐỒ ÁN 2

*.setBrightness(brightness);
Chỉnh độ sáng của oled, 0->255
*.setTextSize(s);
Chỉnh size chữ, mặc định không dùng lệnh thì s=1.
*.setTextColor(c);
Hoặc
*.setTextColor(c,bg);
c là màu chữ, WHITE(1) hoặc BLACK(0)
bg là màu nền, WHITE(1) hoặc BLACK(0)
Nếu chỉ điền c thì bg tự động chỉnh ngược với c.
*.print();
*.println();
Hai hàm này giống trong serial, lưu ý: Sau hai hàm này phải thêm lệnh
*.display(); để màn hình hiển thị.
*.drawPixel(x,y,c);
Vẽ 1 điểm tại x,y với c là màu của điểm (WHITE hoặc BLACK)
*.drawChar(x,y,char,color,bg,size);
Vẽ một kí tự
 x, y: tọa độ điểm vẽ
 char: kí tự cần vẽ
 color: Màu kí tự (WHITE hoặc BLACK)
 bg: Màu nền CỦA kí tự (WHITE hoặc BLACK)
 size: Kích cỡ kí tự (Kích cỡ kí tự bằng (sizex5pixel) X
(sizex7pixel))

1.7. Tìm hiểu về buzzer


Buzzer là một loại thiết bị phát âm có thể chuyển đổi tín hiệu âm thanh thành tín
hiệu âm thanh. Nó được sử dụng rộng rãi trong đồ chơi điện tử và bảng điều khiển
Trang 14
ĐỒ ÁN 2

trò chơi trong đồ chơi âm thanh, quà tặng âm thanh, đồ gia dụng, báo thức cá nhân,
hệ thống báo động của ngân hàng và công an. Buzzer được sử dụng rộng rãi trong
đồ chơi điện tử và trò chơi. Buzzer được sử dụng chủ yếu để nhắc hoặc báo thức,
theo thiết kế và mục đích khác nhau, có thể phát ra tiếng nhạc, tiếng còi, âm thanh
buzzer, âm thanh báo thức, nhạc chuông điện và nhiều âm thanh khác. Chuông báo
động được sử dụng trong máy giặt làm cho âm thanh buzzer thêm rõ ràng, khiến
người dùng vận hành các quy trình. Các ứng dụng Buzzer trong các thiết bị gia dụng
chủ yếu là báo động âm thanh, còi báo động, người sử dụng đã phát ra một thiết bị
đốt cháy cảnh báo ở nơi khô ráo. Buzzer được sử dụng như một cái chuông để gửi
thêm âm thanh "ding dong" hoặc âm nhạc, gợi ý rằng khách ghé thăm. Thẻ Buzzer
được sử dụng trong thiệp chúc mừng, lời chào đơn giản; bộ phim buzzer được sử
dụng trong còi báo động tự vệ cá nhân để gửi âm thanh báo thức cao; buzzer cài đặt
trong an ninh công cộng, ngân hàng và khu vực bảo vệ nhà được sử dụng cho âm
thanh báo động nhiều; nếu ai đó vào Cảnh báo khu vực, điều khiển cảm biến, tiếng
rú lên sẽ báo động. Ở các nhà máy, trường học sử dụng buzzer, làm cho tiếng chuông
điện nhiều hơn.

Thông số kỹ thuật:

Nguồn : 3.5V - 5.5V

Dòng điện tiêu thụ: <25mA

Tần số cộng hưởng: 2300Hz ± 500Hz

Biên độ âm thanh: >80 dB

Nhiệt độ hoạt động:-20 °C đến +70 °C

Kích thước : Đường kính 12mm, cao 9,7mm

Trang 15
ĐỒ ÁN 2

CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG

2.1. Giới thiệu


Máy đo nồng độ cồn có chức năng đo nồng độ cồn trong hơi thở từ đó cảm biến gửi
tín hiệu về bộ xử lý và hiển thị trên oled LCD. Bộ phận cảnh báo gồm led đỏ và buzzer
để phát âm thanh khi nồng độ cồn vượt quá mức quy định. Oled hiển thị nồng độ cồn và
mức phạt tiền khi vi phạm.

2.2. Thiết kế sơ đồ khối


Từ các yêu cầu của đề tài, sơ đồ khối hệ thống được thiết kế như sau:

Hình 2.1 Sơ đồ khối của hệ thống

2.3. Giải thích chức năng các khối

Khối nguồn: Có chức năng cung cấp năng lượng cho toàn bộ hệ thống.
+ Cấp nguồn ngoài 9V cho board mạch Arduino.
+ Board Arduino cấp nguồn 5V cho led đỏ, oled LCD, cảm biến MQ3 và
Buzzer.

Khối cảm biến: Dùng cảm biến nồng độ cồn MQ3. Cảm biến tín hiệu nồng độ cồn từ
hơi thở, gửi tín hiệu đến khối điều khiển.

Trang 16
ĐỒ ÁN 2

Hình 2.2 Sơ đồ kết nối khối cảm biến

Khối điều khiển: Dùng Arduino uno R3. Thực hiện xử lý tín hiệu và gửi tín hiệu về
khối hiển thị và cảnh báo.

Khối hiển thị và cảnh báo: Dùng oled, led đỏ và buzzer. Hiển thị thông tin về nồng
độ và mức phạt trên oled LCD,
led đỏ sẽ sáng khi nồng độ cồn đo được trên 200µg/1 lít khí thở, buzzer sẽ kêu khi nồng
độ cồn đo được trên 250µg/1 lít khí thở.

Hình 2.3 Sơ đồ khối hiển thị và cảnh báo

Trang 17
ĐỒ ÁN 2

2.4. Tính toán lựa chọn linh kiện


a/ Khối cảm biến

Dùng cảm biến nồng độ cồn MQ3. MQ3 là bộ cảm biến sử dụng SiO2 làm vật liệu
cảm ứng nồng độ cồn trong không khí, bộ cảm biến khí sẽ rất nhạy cảm ở những nơi
có nồng độ cồn trong không khí cao.

Đặc điểm của module: - Nhạy cảm với rượu và ethanol.

- Điện áp đầu ra tăng khi nồng độ khí đo được tăng.

- Nhanh chóng phản ứng và phục hồi.

- Có thể điều chỉnh được độ nhạy cảm của module.

- Có thể hiển thị kết quả trên màn hình LCD.

b/ Khối điều khiển

Dùng Arduino uno. Arduino là một board mạch vi xử lý nhằm xây dựng các ứng
dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Mạch Arduino
Uno là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen, lập trình với
Arduino thì mạch Arduino thường nói tới chính là dòng Arduino UNO. Hiện dòng
mạch này đã phát triển tới thế hệ thứ 3 (Mạch Arduino Uno R3). Arduino Uno R3 là
dòng cơ bản, linh hoạt, thường được sử dụng cho người mới bắt đầu.

c/ Khối hiển thị và cảnh báo

 Oled LCD SSD1306 hiển thị chữ sắc nét rõ ràng có thể giao tiếp trong hai cách: I2C
hoặc SPI.

 Buzzer là một loại thiết bị phát âm có thể chuyển đổi tín hiệu âm thanh thành tín
hiệu âm thanh. Lập trình đơn giản, dễ sử dụng, giá thảnh rẻ.

 LED (viết tắt của Light Emitting Diode, có nghĩa là điốt phát quang) là các điốt có
khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, LED
được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n.led đơn
nhỏ gọn dễ sử dụng.
Trang 18
ĐỒ ÁN 2

d/ Khối nguồn:

Sử dụng pin nguồn 9V để cấp cho board Arduino.

2.5. Sơ đồ kết nối mạch

Hình 2.4 Sơ đồ mạch

CHƯƠNG 3. THIẾT KẾ PHẦN MỀM

Trang 19
ĐỒ ÁN 2

3.1. Lưu đồ chương trình

Hình 3.1 lưu đồ thuật toán

3.2. Code chạy chương trình


#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

const int buzzer = 6 ;


Trang 20
ĐỒ ÁN 2

int led = 5 ;

int analogPin = 0;

int val = 0;

Adafruit_SSD1306 display(OLED_RESET);

void setup() {

Serial.begin(9600);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay();

pinMode(buzzer,OUTPUT);// CHAN BUZZER

pinMode(5, OUTPUT);//CHAN LED

void loop() {

delay(100);

val = readAlcohol();

printTitle();

printAlcohol(val);

printAlcoholLevel(val);

display.display();

Serial.print(val);

Serial.println("ug/l");

delay(200);

void printTitle()

Trang 21
ĐỒ ÁN 2

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(22,0);

display.println("DO NONG DO CON");

display.setCursor(76,8);

display.println("ug/l");

void printAlcohol(int value)

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(48,8);

display.println(val);

void printAlcoholLevel(int value)

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(20,25);

if(value<200)

Trang 22
ĐỒ ÁN 2

display.println("Ban tinh tao");

digitalWrite(5,0);

if (value>=200 && value<250)

display.println("Ban da uong bia");

digitalWrite(5,1);

if (value>=250 && value<320)

display.println("Ban uong nhieu bia.");

digitalWrite(5,1);

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(4,18);

display.println("PHAT 1 TRIEU-2 TRIEU");

digitalWrite(buzzer,1);

tone(buzzer,3200);

delay(800);

digitalWrite(buzzer,0);

noTone(buzzer);

Trang 23
ĐỒ ÁN 2

if (value>=320 && value <400)

display.println("Ban uong ruou");

digitalWrite(5,1);

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(4,18);

display.println("PHAT 1 TRIEU-2 TRIEU");

digitalWrite(buzzer,1);

tone(buzzer,3200);

delay(800);

digitalWrite(buzzer,0);

noTone(buzzer);

if(value>400)

display.println("ban dang say");

digitalWrite(5,1);

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(4,18);

display.println("PHAT 3 TRIEU-4 TRIEU");

digitalWrite(buzzer,1);

Trang 24
ĐỒ ÁN 2

tone(buzzer,3200);

delay(800);

digitalWrite(buzzer,0);

noTone(buzzer);

int readAlcohol()

int val = 0;

int val1;

int val2;

int val3;

display.clearDisplay();

val1 = analogRead(analogPin);

delay(10);

val2 = analogRead(analogPin);

delay(10);

val3 = analogRead(analogPin);

val = (val1+val2+val3)/3;

return val;

CHƯƠNG 4. THI CÔNG MẠCH

Trang 25
ĐỒ ÁN 2

4.1. Chuẩn bị linh kiện


Dựa vào cơ sở lý thuyết, sơ đồ khối và mạch nguyên lý đã thiết kế trước đó để
chuẩn bị các linh kiện cho phần thi công mạch

Bảng 3 Danh sách các linh kiện

STT Tên linh kiện Thông số

1 Arduino uno R3  Nguồn nuôi mạc: 5V từ cổng USB hoặc 7-9v từ


giắc tròn DCIN

 Số chân Digital: 14 chân

 Số chân PW: 6 chân

 Số chân Analog: 6 chân

 Dòng ra trên mỗi chân tối đa: 40mA

 Dòng ra trên chân 3v3 tối đa: 150mA

 Dung lượng bộ nhớ Flash: 32 KB – ATmega328

2 Cảm biến MQ3  Điện áp hoạt động: 5VDC-150mA


 Tín hiệu ra Digital: 0 &1 (0.1V & 3.3V) -
150mA
 Tín hiệu ra Analog: 0.1-0.3V

3 Oled LCD  Độ phân giải: 128*64


 Chip điều khiển: SSD1306
 Điện áp: 3.3-5 v
 Nhiệt độ hoạt động: -40°C đến 70°C
 Loại giao diện: IIC/I2C giao diện

Trang 26
ĐỒ ÁN 2

4 Buzzer  Nguồn: 3.5V - 5.5V


 Dòng điện tiêu thụ: <25mA
 Tần số cộng hưởng: 2300Hz ± 500Hz
 Biên độ âm thanh: >80 dB
 Nhiệt độ hoạt động: -20 °C đến +70 °C
 Kích thước: Đường kính 12mm, cao 9,7mm

5 Led đơn màu đỏ  Màu của Led: Màu đỏ


 Kích thước Led: 10mm
 Nguồn cấp: 5V

4.2. Kết nối mạch

Trang 27
ĐỒ ÁN 2

Hình 4.1 Sơ đồ kết nối

Trang 28
ĐỒ ÁN 2

CHƯƠNG 5. KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT


TRIỂN
5.1. Kết quả thực hiện

Hình 5.1 sản phẩm hoàn chỉnh

Trường hợp nồng độ cồn đo được dưới 200µg/1 lít khí thở hiển thị “Bạn tỉnh táo”

Hình 5.2 Trường hợp bạn tỉnh táo

Trang 29
ĐỒ ÁN 2

Trường hợp nồng độ cồn đo được trên 200µg/1 lít khí thở và dưới 250µg/1lit hiển
thị “Bạn đã uống bia” và led đỏ sẽ sáng

Hình 5.3 Trường hợp bạn đã uống bia

Trường hợp nồng độ cồn đo được trên 250µg/1 lít khí thở và dưới 320µg/1lit hiển thị“Bạn
uống nhiều bia” led đỏ sáng đồng thời buzzer kêu , oled hiển thị mức phạt 1 triệu-2 triệu

Hình 5.4 Trường hợp bạn uống nhiều bia

Trang 30
ĐỒ ÁN 2

Trường hợp nồng độ cồn đo được trên 320µg/1 lít khí thở và dưới 400µg/1lit hiển
thị “Bạn uống rượu” led đỏ sáng đồng thời buzzer kêu, oled hiển thị mức phạt 1
triệu-2 triệu

Hình 5.5 Trường hợp bạn uống rượu


Trường hợp nồng độ cồn đo được trên 400µg/1 lít khí thở “Bạn đang say” led đỏ
sáng đồng thời buzzer kêu, oled hiển thị mức phạt 3 triệu-4 triệu

Hình 5.6 Trường hợp bạn đang say


Trang 31
ĐỒ ÁN 2

5.2. Hướng phát triển


- Xây dựng thêm phần mềm gửi tin nhắn thông báo nồng độ cồn về điện thoại người
thân

- Kết hợp đo nồng độ cồn từ đó điều khiển việc chạy xe máy của người được đo. Nếu
nồng độ cồn cao thì không cho xe khởi động.

Trang 32
ĐỒ ÁN 2

PHẦN 3. KẾT LUẬN


Trong thời gian làm đề tài với sự hạn chế về thời gian, tài liệu, cơ sở vật chất cũng
như hạn chế về kiến thức đòi hỏi bản thân chúng em phải cố gắng tìm tòi và nhiệt tình trong
công việc nghiên cứu đề tài. Đó là kết quả của một thời gian dài nỗ lực nghiên cứu của
chúng em dưới sự hướng dẫn tận tình của giáo viên hướng dẫn.

Với đồ án này, bằng những kiến thức đã học, chúng em đã tìm hiểu và ứng dụng tạo
ra sản phẩm phục vụ cho cuộc sống. Từ đó dẫn dắt chúng em làm quen với việc ứng dụng
kiến thức đã học vào thực tế, tạo khả năng tự lập khi nghiên cứu một vấn đề nào đó. Tuy
nhiên trong quá trình làm việc chúng em không thể tránh khỏi những sai sót. Rất mong quý
thầy cô thông cảm và chỉ bảo.

Trang 33
ĐỒ ÁN 2

TÀI LIỆU THAM KHẢO

[1] Nguyễn Đình Phú, Trương Ngọc Anh, Giáo Trình Vi Điều Khiển, khoa Điện-Điện

Tử, trường ĐHSPKT, Tp.HCM, 2013

[2] Lê Mỹ Hà, Phạm Quang Huy, Lập trình IOT với Arduino, nhà xuất bản thanh niên

[3] 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ử Cơ Bản, khoa Điện-Điện tử,
trường ĐHSPKT, Tp.HCM, 2013.

Trang 34

You might also like