Cảm biến đã trở nên phổ biến trong các hệ thống đo lường và điều khiển, nơi mà việc thu thập thông tin và theo dõi các biến trạng thái là rất quan trọng.Hiện nay, một trong những lĩnh vự
TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Giới thiệu về hệ thống nhúng
Hệ thống nhúng (Embedded System) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao. Đặc điểm của hệ thống nhúng: Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng Một số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.
Giới thiệu về linh kiện sử dụng trong đề tài
Cảm biến siêu âm SRF04 là một loại cảm biến siêu âm được sử dụng để đo khoảng cách từ cảm biến đến một vật thể SRF04 là một phiên bản cải tiến của cảm biến siêu âm SRF02 và là một trong những mô-đun phổ biến trong cộng đồng thí nghiệm điện tử và robot học SRF04 là một cảm biến siêu âm tương đối Dùng để cảm biến vật cản trong phạm vi cho phép.
+ Độ đo khoảng cách: 3 cm đến 400 cm (dựa trên thông số kỹ thuật thông thường của SRF04).
+ Dải nhiệt độ hoạt động: : 0°C - 50°C, sai số ± 2°C
+ Khoảng cách truyền tối đa: 20m
+ Chuẩn giao tiếp: TTL, 1-wire
+ Dòng tối đa: 2.5mA + Tần số lấy mẫu tối đa: 1Hz
+ Ứng dụng của cảm biến SFR04: Ứng dụng chính của cảm biến SRF04 là đo khoảng cách từ cảm biến đến vật thể
Màn hình LCD I2C16x2 là một loại màn hình hiển thị thông số LCD kích thước 16 cột x 2 hàng Điểm đặc biệt của màn hình LCD I2C 16x2 là nó được tích hợp bộ chuyển đổi I2C (I2C backpack) trên mặt sau của module, giúp giảm số lượng chân kết nối cần thiết và dễ dàng giao tiếp với vi điều khiển thông qua giao thức I2C Màn hình LCD I2C 16x2 thường đi kèm với đèn nền LED tích hợp Điều này giúp hiển thị dữ liệu rõ ràng và dễ đọc trong các điều kiện ánh sáng yếu Với các thư viện hỗ trợ sẵn cho Arduino và các nền tảng phát triển khác, màn hình LCD I2C 16x2 dễ dàng được sử dụng và lập trình Các thư viện này cung cấp các hàm và phương thức để hiển thị văn bản, số liệu và các biểu đồ đơn giản trên màn hình
+ Điện áp hoạt động: 2.5-6V DC12.
+ Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
+ Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2). + Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
+ Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.
+ Màn hình LCD 16x2 I2C thường được sử dụng trong các hệ thống cần hiển thị trạng thái hoặc các thông số
Servo SG90 thường có thiết kế nhỏ gọn với kích thước tiêu chuẩn Bên trong có bao gồm một motor DC, bộ giảm tốc, mạch điều khiển và một cảm biến phản hồi để theo dõi vị trí của trục servo.
Servo SG90 thường sử dụng chuẩn giao tiếp PWM (Pulse Width Modulation) để điều khiển vị trí của trục servo.
Một xung PWM có độ rộng khác nhau sẽ diễn đạt một vị trí cụ thể cho servo.
Robot Học: Servo SG90 thường được sử dụng trong các dự án robot học như cánh tay robot, đầu robot, hoặc các phần khác có đòi hỏi về góc quay và độ chính xác.
Mô Hình và Đồ Chơi Điều Khiển: Servo SG90 được tích hợp trong các mô hình và đồ chơi điều khiển từ xa.
Mô Hình Mô Phỏng: Sử dụng để mô phỏng các cử động trong các dự án mô hình hóa.
Servo SG90 cũng được thiết kế với độ chính xác cao và độ bền tốt Với hệ thống bánh răng chất lượng và vật liệu cơ khí chính xác, nó cung cấp chuyển động mượt mà và ổn định trong quá trình hoạt động.
+ Kích thước sản phẩm: 22,4 * 12,5 * 23,8 mm
+ Chiều dài dòng sản phẩm: 25CM ± 1CM
+ Mô-men xoắn quầy hàng: 1.3KG.CM-1.8KG.CM
+ Tốc độ không tải: 0,09SEC / 60°
+ Loại bánh răng: Bánh răng Nylon sợi
1.2.4 Cảm biến khí gas MQ2
Cảm biến khí gas MQ-2 là một loại cảm biến khí dễ sử dụng và phổ biến trong các ứng dụng liên quan đến giám sát chất lượng không khí và phát hiện khí gas Nó được sử dụng rộng rãi trong hệ thống bảo mật cháy nổ, hệ thống cảnh báo ô nhiễm không khí, và các ứng dụng nhà thông minh.
Cảm biến MQ-2 có khả năng phát hiện nhiều loại khí, bao gồm khí gas dễ cháy như khí propan, butan, methane và khí tự nhiên, cũng như khí có độc như khí carbon monoxide (CO) và khí LPG Nó hoạt động dựa trên nguyên lý đo sự thay đổi của trở kháng điện tử của hợp chất hóa học bên trong cảm biến khi tiếp xúc với khí gas.
Cảm biến MQ-2 có hai chân kết nối đến nguồn điện và chân đất, và một chân kết nối đến vi điều khiển hoặc mạch đọc tín hiệu Khi khí gas được phát hiện, trở kháng của cảm biến thay đổi, và điện áp đầu ra tương ứng cũng thay đổi Việc đọc giá trị điện áp đầu ra có thể cho biết mức độ có mặt của khí gas trong môi trường.
Tuy nhiên, cần lưu ý rằng cảm biến MQ-2 không cung cấp thông tin chính xác về nồng độ khí gas hoặc loại khí cụ thể Để đạt được kết quả chính xác hơn, thường cần calibrate cảm biến và sử dụng các phương pháp xử lý tín hiệu thích hợp.
Sử dụng thiết kế bảng điều khiển kép chất lượng cao, với đèn báo nguồn và hướng dẫn đầu ra tín hiệu TTL.
+ Đầu ra tín hiệu số D0 (Digital: 0 và 1) và đầu ra tín hiệu tương tự A0
+ Tín hiệu hợp lệ đầu ra TTL là thấp.(Tín hiệu mức thấp khi đèn đầu ra có thể được kết nối trực tiếp với vi điều khiển hoặc mô đun rơle)
+ Điện áp đầu ra tương tự có nồng độ cao hơn của điện áp cao hơn + Điện áp hoạt động: 5 VDC.
+ Sử dụng IC so sánh LM393, có LED báo tráng thái và tích hợp biến trở tăng giảm độ nhạy của Module.
Còi buzzer là một loại thiết bị phát âm thanh được thiết kế để phát ra âm thanh khi có dòng điện chạy qua nó
+ Điện áp hoạt động: 3.3V DC
+ Chân giao tiếp ngoại vi: GNP, I/O, VCC
+ Tần số âm thanh : 2300Hz ± 500Hz
+ Âm thanh đầu ra là >80 dB.
+ Ứng dụng của còi buzzer: Còi buzzer được sử dụng rộng rãi trong các ứng dụng báo động, cảnh báo và cung cấp âm thanh cường độ cao Chúng có thể được sử dụng trong hệ thống báo động cháy, báo động đột nhập, hệ thống báo động xe hơi, hệ thống dẫn đường, thiết bị y tế, vv để cung cấp âm thanh thông báo và cảnh báo cho người dùng.
Relay là một linh kiện điện tử được sử dụng rộng rãi trong các ứng dụng điều khiển và chuyển đổi điện Nó hoạt động như một công tắc điện tử có khả năng cách ly tín hiệu và điện áp, cho phép điều khiển các thiết bị hoạt động với công suất lớn thông qua một tín hiệu điều khiển nhỏ hơn.
Cấu trúc cơ bản của một relay bao gồm cuộn dây và các bộ tiếp điểm Cuộn dây là thành phần chính được điều khiển bởi tín hiệu điều khiển Khi dòng điện chạy qua cuộn dây, nó tạo ra một trường từ trường từ này sẽ thu hút các bộ tiếp điểm và làm chúng chuyển trạng thái Bộ tiếp điểm có thể bao gồm các tiếp điểm NO (Normally Open - Mở thông thường) và NC (Normally Closed - Đóng thông thường), tùy thuộc vào loại relay.
Các tiếp điểm của relay có khả năng chịu được công suất cao hơn so với tín hiệu điều khiển Khi relay được kích hoạt, các tiếp điểm NO sẽ mở ra và các tiếp điểm NC sẽ đóng lại Điều này cho phép dòng điện lớn được chuyển hướng hoặc ngắt tùy thuộc vào trạng thái của relay.
Relay có nhiều ứng dụng trong các hệ thống điều khiển và chuyển đổi, bao gồm: Điều khiển thiết bị điện: Relay được sử dụng để điều khiển các thiết bị như đèn, quạt, máy bơm và máy nén.
Giới thiệu về môi trường lập trình
IDE Môi trường phát triển tích hợp Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java, và được dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án lắp ráp Nó bao gồm một trình soạn thảo mã với các tính năng như làm nổi bật cú pháp, khớp dấu ngoặc khối chương trình, thụt đầu dòng tự động và cũng có khả năng biên dịch và tải lên các chương trình vào board mạch với một nhấp chuột duy nhất Một chương trình hoặc mã viết cho Arduino được gọi là "sketch".
Chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động đầu vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều Người sử dụng chỉ cần định nghĩa hai hàm để thực hiện một chương trình điều hành theo chu kỳ Khi các chúng ta bật điện bảng mạch Arduino, reset hay nạp chương trình mới, hàm setup() sẽ được gọi đến đầu tiên Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy đến hàm loop() và lặp vô hạn hàm này cho đến khi tắt điện board mạch Arduino Dưới đây là giao diện của phần mềm.
Hình 1 6 Giao diện Phần mềm Arduino IDE
Mô tả phần mềm nạp chương trình cho Arduino UNO R3 Arduino IDE :
Công cụ này dung để lập trình phát triển và có thể chạy trên Windows, MAC OS X và Linux.
Hình 1 7 Giao diện chương trình viết Arduino
+ Vùng lệnh: Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help) Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:
Hình 1 8 Vùng lệnh chương trình+ Vùng viết chương trình: Bạn sẽ viết các đoạn mã của mình tại đây.
+ Vùng thông báo ( debug): Những thông báo từ IDE sẽ được hiển thị tại đây Để ý rằng góc dưới cùng bên phải hiển thị loại board và cổng COM được sử dụng Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM, bạn sẽ không thể upload được code của mình.
KẾ HOẠCH THỰC HIỆN, PHÂN TÍCH HỆ THỐNG
Kế Hoạch Thực Hiện
+ Mua sắm trang thiết bị phục vụ cho bài tập lớn
+ Tập chung nghiên cứu thiết kế lắp đặt chạy thử nghiệm
Bảng 2 1 Bảng kế hoạch thực hiện
STT Họ và tên Thời gian Tiến độ Kết quả
1 Ngô Thị Linh 1-10/10 Hoàn thành Đầy đủ
2 Nguyễn Văn Thuyết 10-20/10 Hoàn thành Hoàn chỉnh
3 Nguyễn Huy Hậu 20-25/10 Hoàn thành Hoàn chỉnh
4 Nguyễn Sỹ Nam 25-30/10 Hoàn thành Hoàn chỉnh
Khảo sát và phân tích bài toán
Hiện này biến đổi khí hậu đang làm nhiệt độ và độ ẩm của trái đất trở nên không còn được cần bằng như trước Trong khi đó nhiệt độ và độ ẩm là 2 thứ ảnh hưởng trực tiếp đến cuộc sống của con người Vì vậy những cảm biến đo nhiệt độ độ ẩm là một trong những thứ cần thiết và vô cùng quan trọng Nhận thấy vấn đề như vậy, chúng em muốn tạo ra một hệ thống đơn giản để có thể đo được nhiệt độ và độ ẩm xung quanh ta Ở đây chúng em sử dụng cảm biến DHT11 Có thể trực tiếp theo dõi nhiệt độ và độ ẩm qua màn hình LCD Chúng em kết hợp Arduino, LCD I2C 16x2 và Modul cảm biến khí gas MQ2,Cảm Biến Siêu Âm SRF04 Và để dễ dàng cho sự nhận biết của cửa tự động chúng em đã lắp hiển thị lên LCD và tiếng chuông thông báo Đồng thời đối với cảm biến khí gas là việc có còi báo và tự động mở cửa để quạt hoạt động đẩy khi gas ra ngoài đảm bảo an toàn nhất có thể.
Giải pháp thiết kế
- Đối với cửa tự động:
+ Để cảm biến được vật phía trước, em để cảm biến ở một nơi thoáng đãng, ít vật cản trở Tránh những vị trí làm ảnh hưởng trực tiếp đến vị trí cảm biến, tránh lắp sát các vật cản như cây cối,…
+ Thay vì để cảm biến hiển thị lên mỗi màn hình LCD thì ở đây chúng em cho thêm còi báo giúp cho người sử dụng dễ dàng theo dõi.
- Đối với cảm biến khí gas:
+ Để cảm biến được khí gas , em để cảm biến ở một nơi thoáng đãng, ít vật cản trở Để ngưỡng cảm biến ở mức ăn toàn theo khoảng cách.
+ Thay vì để cảm biến thông báo còi thì ở đây chúng em cho thêm quạt để đẩy khí gas ra ngoài để đảm bảo sao an toàn tránh thiệt hại nhất có thể.
Các yêu cầu
- Hệ thống cửa tự động phải hiển thị chính xác khi phát hiện vật
- Hệ thống cảm biến khí gas phải thông báo chính xác khi mức khí gas vượt ngưỡng cho phép
- Hệ thống hoạt động tự động
- Làm việc với điện áp 3 – 5 VDC an toàn cho người sử dụng và tiết kiệm.
- Có khả năng nâng cấp cải tiến
Giới hạn, hạn định
- Làm việc cả ban ngày lẫn ban đêm.
- Dải nhiệt độ hoạt động: 0°C ~ 50°C,
XÂY DỰNG HỆ THỐNG
Mạch nguyên lý
Hình 3 1 Mạch nguyên lý hệ thống mô phỏng
Sơ đồ kết nối
3.2.1 Sơ đồ kết nối cửa tự động Để tiến hành kết nối cửa tự động ta làm như sau:
+ Chân VCC của SRF04 sẽ nối vào chân 5V của ARDUINO R3 + Chân GND của SRF04 sẽ nối vào chân GND của ARDUINO R3 + Chân VCC của LCD I2C sẽ nối vào chân 5V của ARDUINO R3 + Chân GND của LCD I2C sẽ nối vào chân GND của ARDUINO R3 + Chân SDA của LCD I2C sẽ nối vào chân A5 của ARDUINO R3 + Chân SCL của LCD I2C sẽ nối vào chân A4 của ARDUINO R3 + Chân dương của Servo 90 nối với chân 5V của ARDUINO R3 + Chân âm của Servo 90 nối với chân GND của ARDUINO R3 + Chân còn lại của Servo 90 nối với chân 5 của ARDUINO R3 + Chân dương của còi chip nói với chân 4 của ARDUINO R3 + Chân âm của còi chip nối với chân GND của ARDUINO R3
Hình 3 2 Sơ đồ kết nối cửa tự động
3.2.2 Sơ đồ kết nối cảm biến khí gas
- Để tiến hành kết nối cảm biến khí gas
+ Chân dương còi chip nối với chân 9 của ARDUINO R3
+ Chân âm còi chip nối với chân GND của ARDUINO R3
+ Chân IN của Module Relay nối với chân 12 của ARDUINO R3 + Chân VCC của Module Relay nối với chân 5V của ARDUINO R3 + Chân GND của Module Relay nối với chân GND của ARDUINO R3 + Chân A0 của MQ2 nối với chân A0 của ARDUINO R3
+ Chân VCC của MQ2 nối với chân 5V của ARDUINO R3
+ Chân GND của MQ2 nối với chân GND của ARDUINO R3 + Chân dương của Servo 90 nối với chân 5V của ARDUINO R3 + Chân âm của Servo 90 nối với chân GND của ARDUINO R3 + Chân còn lại của Servo 90 nối với chân 11 của ARDUINO R3 + Dây dương của quạt nối với chân NO của Module Relay
+ Dây âm của quạt nối với chân COM của Module Relay
Hình 3 3 Sơ đồ kết nối cảm biến khí gas
Tiến hành nạp Code cho Arduino UNO R3 bằng phần mềm Arduino IDE
Hình 3 5 Code trong Arduino IDE
Khối code trên Arduino sử dụng cảm biến vật cản để đọc giá trị từ cảm biến và hiển thị lên màn hình LCD thông qua giao diện I2C Trong hàm setup(), giao tiếp serial được khởi động, cảm biến MQ2, SRF04 và màn hình LCD được khởi động
Hình 3 6 Code trong Arduino IDE Đối với cửa tự động:
1 Đọc giá trị khoảng cách từ cảm biến SRF04 và lưu vào biến `distance`.
2 Đọc giá trị khoảng cách từ SRF04
3 Giảm giá trị khoảng cách.
4 Kiểm tra xem cảm biến có trả về giá trị hợp lệ hay không Nếu không, in ra thông báo lỗi và thoát hàm.
5 In giá trị độ ẩm lên cổng Serial và hiển thị lên màn hình LCD.
6 In giá trị nhiệt độ lên cổng Serial và hiển thị lên màn hình LCD.
7 Đặt con trỏ của LCD vào vị trí tương ứng để hiển thị các giá trị.
8 Delay 1 giây trước khi lặp lại quá trình.
Tổng quát, đoạn mã này đọc giá trị khoảng cách từ cảm biến SRF04, sau đó hiển thị chúng lên màn hình LCD, phát ra còi báo và gửi ra cổng Serial. Đối với cảm biến khí gas:
1 Đọc giá trị nhiệt độ từ cảm biến MQ2 và lưu vào biến ` smoke`.
2 Đọc giá trị khí gas từ cảm biến MQ2
3 Tăng giá trị khí gas lên đơn vị tương ướng.
4 Kiểm tra xem cảm biến có trả về giá trị hợp lệ hay không Nếu không, in ra thông báo lỗi và thoát hàm.
5 In giá trị khí gas lên cổng Serial
6 Đặt con trỏ của LCD vào vị trí tương ứng để hiển thị các giá trị.
7 Delay 1 giây trước khi lặp lại quá trình.
Tổng quát, đoạn mã này đọc giá trị khí gas từ cảm biến MQ2, sau đó phát ra còi báo và mửa cửa bật quạt đẩy khí gas ra ngoài.
Hình 3 7 Lời chào được hiển thị lên LCD
Hình 3.9 Cửa mở quạt bật đẩy khí gas ra bên ngoài
Qua thời gian nghiên cứu, thi công đồ án đã cơ bản được hoàn thành Bằng sự nỗ lực cố gắng của bản thân mỗi cá nhân và sự phân chia, phối hợp công việc hợp lí, chặt chẽ, nhịp nhàng giữa mỗi thành viên của nhóm, bên cạnh đó còn là sự hướng dẫn nhiệt tình, tận tâm của thầy Nguyễn Văn Suyên báo caó đồ án này đã được hoàn thành đúng thời gian như đã định và đã đạt được yêu cầu đặt ra theo yêu cầu là cửa tự động và cảm biến khí gas.
Trong quá trình thực hiện đề tài, chúng em đã thu được những kết quả nhất định như sau:
Mạch điện với các module nhỏ trên mạch được thiết kế, thi công hoàn chỉnh và đã được thử nghiệm nhiều lần và đã thoạt động ổn định trong thực tế Hiển thị được khoảng cách và ngưỡng khí gas cho phép
Trong đồ án này, nhóm em đã trình bày khá đầy đủ về chức năng, cấu trúc của từng khối module nhỏ trên board mạch điện tích hợp Như vậy, giúp người đọc có thể nắm bắt, hiểu được chức năng của từng module một cách dễ dàng. Bên cạnh đó, nội dung của đề tài được trình bày khá chi tiết rõ ràng bằng cách sử dụng những từ ngữ thông dụng, các hình ảnh đi kèm giúp người đọc dễ hiểu và có thể thực hiện một cách tương tự, đạt hiệu quả trong một thời gian ngắn Hệ thống đo nhiệt độ, độ ẩm với mục đích thông báo cho người dùng về thông tin độ ẩm và nhiệt độ trong phòng So với mục tiêu ban đầu đặt ra, nhóm đã hoàn thành được 95% Dưới đây là tụ điểm của hệ thống:
- Giải quyết được các vấn đề đặt ra của đề tài.
- Hệ thống tiêu thụ điện năng ít.
- Dễ quan sát, dễ sử dụng.
- Có nguồn dự phỏng cung cấp cho mạch
- Hiển thị, cập nhật liên tục cho người dùng dễ nắm bắt