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
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN – ĐIỆN TỬ
Trang 2MỤ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
Trang 35.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
Trang 4
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
Trang 5Hì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
Trang 6PHẦ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
Trang 73 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu:
dữ liệu lên LCD oled
Phạm vi nghiên cứu:
4 THÔNG SỐ GIỚI HẠN
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 8PHẦ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
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 9cả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
Trang 10Điện trở cảm biến 2÷ 20 KΩ tại nồng độ cồn 0,4
mg/l
Tỉ lệ điện trở cảm biến khi 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 111.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
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 12Trong 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
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 13Để đị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ớ
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 14var: tên biến
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 đó
Trang 15Hì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 17Hì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 18Bảng 2 Sơ đồ và chức năng các chân
không cho phép MCU đọc ghi dữ liệu
Ở mức cao thì LCD hoạt động bình thường
DC = 0 input là command
Trang 19c 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
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 20trò 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
Trang 212.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 22Hì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 232.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
hoặc SPI
hiệu âm thanh Lập trình đơn giản, dễ sử dụng, giá thảnh rẻ
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