1. Trang chủ
  2. » Tất cả

Báo cáo đồ án Ứng dựng giám sát, điều khiển nhiệt độ, độ ẩm và khí gas trong nhà

19 24 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo Đồ án Ứng Dụng Giám Sát, Điều Khiển Nhiệt Độ, Độ Ẩm Và Khí Gas Trong Nhà
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Kỹ thuật Điện Tử, Viễn Thông, Công Nghệ Thông Tin
Thể loại Đề án Tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 2,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo Đồ án docx 1 MỤC LỤC I Đặt vấn đề 1 1 Tình trạng cháy nổ thực tế hiện nay 1 2 Mục tiêu 1 II Thiết kế 1 1 Sơ đồ nguyên lý 1 2 Thiết kế phần cứng 2 a) Tổng quan 2 b) Khối điều khiển 2 c) Khối cả.Ứng dựng giám sát, điều khiển nhiệt độ, độ ẩm và khí gas trong nhàỨng dựng giám sát, điều khiển nhiệt độ, độ ẩm và khí gas trong nhàỨng dựng giám sát, điều khiển nhiệt độ, độ ẩm và khí gas trong nhà

Trang 1

1

Trang 2

MỤC LỤC

Trang 3

I Đặt vấn đề

1 Tình trạng cháy nổ thực tế hiện nay

Hiện nay với sự phát triển của nước ta với những tiện ích công nghệ đã phần nào giúp cho nhu cầu của con người người được đáp ứng tốt hơn thì song song theo

đó thì chúng ta không tránh được những nguy cơ ngoài ý muốn, đặc biệt là vấn đề cháy nổ Có thể do chúng ta chưa có phòng sự phòng tránh kịp thời đúng lúc để có thể làm giảm phần nào về thiệt hại tài sản, điển hình như những sự việc cháy nổ đáng tiếc tại các quán karaoke năm 2022 Từ lý do đó nên nhóm đã chọn đề tài

“Ứng dựng giám sát, điều khiển nhiệt độ, độ ẩm và khí gas trong nhà”

2 Mục tiêu

• Giám sát nhiệt độ, độ ẩm và nồng độ khí có thể gây cháy nổ trong phòng

• Hiển thị các thông số lên trên App điện thoại

• Có thể điều khiển các thiết bị như quạt thông gió, điều hoà hoặc hệ thống chữa cháy từ ứng dụng điện thoại

• Tự động bật chế độ chữa cháy nếu nhiệt độ vượt ngưỡng cho phép

II Thiết kế

1 Sơ đồ nguyên lý

1

Trang 4

2 Thiết kế phần cứng

a) Tổng quan

Hệ thống gồm các cảm biến nhiệt độ, độ ẩm và cảm biến khí gas lắp đặt cho mỗi phòng

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

Với chức năng nhận và xử thông tin thu được từ các cảm biến và chuyển dữ liệu vào cơ sở dữ liệu, cùng với đó là điều khiển các cơ cấu chấp hành thì Raspberry Pi rất phù hợp để có thể làm khối điều khiển

Hình 1 Raspberry Pi 3

Thông số kỹ thuật chi tiết:

● Vi xử lý: Broadcom BCM2837B0, quad-core A53 (ARMv8) 64-bit SoC @1.4GHz

● RAM: 1GB LPDDR2 SDRAM

● Kết nối: 2.4GHz and 5GHz IEEE 802.11 b/g/n/ac wireless LAN, Bluetooth 4.2, BLE, Gigabit Ethernet over USB 2.0 (Tối đa 300Mbps)

● Cổng USB: 4 x 2.0

● Mở rộng: 40-pin GPIO

● Video và âm thanh: 1 cổng full-sized HDMI, Cổng MIPI DSI Display, cổng MIPI CSI Camera, cổng stereo output và composite video 4 chân

● Multimedia: H.264, MPEG-4 decode (1080p30), H.264 encode (1080p30);

OpenGL ES 1.1, 2.0 graphics

● Lưu trữ: MicroSD

● Nguồn điện sử dụng: 5V/2.5A DC cổng microUSB, 5V DC trên chân GPIO, Power over Ethernet (PoE) (yêu cầu thêm PoE HAT)

Trang 5

Sơ đồ các chân GPIO của Raspberry Pi

c) Khối cảm biến

Mục tiêu của cảm biến là xác định nhiệt độ, độ ẩm và nồng độ khí gas trong phòng nhằm gửi về cho khối điều khiển

Trong báo cáo này, ta sử dụng các cảm biến DHT-11 cho việc đo nhiệt độ và độ ẩm trong phòng và cảm biến khí gas MQ-2

Trang 6

Hình 2 Cảm biến nhiệt độ, độ ẩm DHT-11

Cảm biến độ ẩm và nhiệt độ DHT11 Temperature Humidity Sensor là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền dữ liệu duy nhất) Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà không phải qua bất kỳ tính toán nào So với cảm biến đời mới hơn là DHT22 thì DHT11 cho khoảng đo và độ chính xác kém hơn rất nhiều

Thông tin kỹ thuật:

● Nguồn: 3 -> 5 VDC

● Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)

● Khoảng đo độ ẩm: 20%-90% RH (sai số 5%RH)

● Khoảng đo nhiệt độ: 0-50°C (sai số 2°C)

● Tần số lấy mẫu tối đa: 1Hz (1 giây / lần)

● Kích thước 15mm x 12mm x 5.5mm

● Tín hiệu đầu ra kỹ thuật số

● Phạm vi nhiệt độ từ 0ºC đến 50ºC

● Độ chính xác để đo nhiệt độ ở 25ºC, dao động khoảng 2ºC

● Độ phân giải để đo nhiệt độ là 8-bit, 1ºC

● Độ ẩm có thể đo từ 20% RH đến 90% RH

● Độ ẩm chính xác 5% RH cho nhiệt độ từ 0-50ºC

● Độ phân giải là 1% RH, nó không thể nhận các biến thể dưới mức đó

Trang 7

Hình 3 Cảm biến Khí Gas MQ-2

Thông số kĩ thuật :

● Điện áp hoạt động: 3.3V-5V

● Kích thước PCB: 3cm * 1.6cm

● Led đỏ báo nguồn vào, Led xanh báo gas

● IC so sánh : LM393

● VCC: 3.3V-5V

● GND: 0V

● DO: Đầu ra tín hiệu số (0 và 1)

● AO: Đầu ra Analog (Tín hiệu tương tự)

● Cấu tạo từ chất bản dẫn Sno2

● Có 2 dạng tín hiệu: Analog( AO) và Digital (DO)

● Dạng tín hiệu : TTL đầu ra 100mA ( Có thể sử dụng trực tiếp Relay, Còi công suất nhỏ )

● Điều chỉnh độ nhạy bằng biến trở

● Sử dụng LM393 để chuyển AO > DO

d) Cơ cấu chấp hành

Sử dụng quạt và động cơ DC làm đại diện cho cơ cấu chấp hành như: quạt thông gió, hệ thống báo cháy,…

Từ đây ta có thể kiểm tra hoạt động điều khiển của hệ thống

Trang 8

Hình 4 Quạt

Hình 5 Động cơ DC

Động Cơ Giảm Tốc Vàng 3V-9V là mẫu động cơ được sử dung nhiều nhất để thiết kế các loại robot mô hình Phục vụ cho sinh viên học tập và nghiên cứu chế tạo

Với giá thành rẻ, dễ sử dụng và mang tính ưu việt nên chiếc động cơ này được sử dụng rất nhiều với sinh viên các nghành kĩ thuật

Thông số kỹ thuật của động cơ giảm tốc Vàng:

● Điện áp hoạt động:3V~ 9V DC (Hoạt động tốt nhất từ 6 - 8V)

● Mômen xoắn cực đại: 800gf cm min 1:48 (3V)

Trang 9

● Tốc độ không tải: 125 Vòng/ 1 Phút (3V)

● (Với bánh 66mm: 26m/1p)

● 208 Vòng/ 1 Phút (5V)

● (Với bánh 66mm: 44m/1p)

● Dòng không tải động cơ: 70mA (250mA MAX)

3 Thiết kế phần mềm ứng dụng Android

Giao diện chính của App là danh sách các phòng cần lấy các thông số nhiệt độ, độ ẩm

và nồng độ khí gas

Các chức năng chính:

● Hiển thị danh sách phòng

● Thêm phòng mới

● Xoá phòng: Bằng cách giữ vào tên phòng cần xoá, sẽ hiển thị hộp thoại xác nhận xoá hay không

Trang 10

Hình 6 Giao diện chính

Khi muốn vào xem thông tin của từng phòng, kick vào tên phòng trên danh sách, màn hình sẽ chuyển đến giao diện hiển thị thông số của phòng:

Trang 11

Hình 7 Giao diện hiển thị thông tin từng phòng

Trang 12

Để có thể điều khiển các thiết bị trong phòng ứng với từng thông số, từ màn hình thông tin phòng, chọn vào các thông số, màn hình sẽ chuyển đến giao diện để điều khiển:

Hình 8 Giao diện điều khiển theo từng thông số của từng cảm biến

Trang 13

4 Cấu trúc dữ liệu trên Firebase

Hình 9 Cấu trúc database

Thông tin các phòng sẽ được lưu theo số thứ tự phòng tạo ra trên App, mỗi lầ tạo phòng trên App sẽ tạo ra một nhánh các Key và Value trên cơ sở dữ liệu Các phòng

sẽ có các tập hợp Key giống nhau, các Value sẽ tương ứng với mỗi Key của từng phòng sẽ cập nhật data nhận được từ cảm biến App sẽ đọc các thông tin từ cơ sở dữ liệu và hiển thị lên màn hình

Về phần điều khiển, từ App sẽ gửi 2 trạng thái ON hoặc OFF ghi vào cơ sở dữ liệu, Raspberry Pi sẽ đọc trạng thái đó để có thể khởi động hay dừng hoạt động của các cơ cấu chấp hành

III Một số đoạn code quan trọng

1 Lập trình App

● Hàm nhận data từ Firebase

public void ReceiveFirebase(String room, String key, GifTextView gtv) {

mData = FirebaseDatabase.getInstance().getReference();

Trang 14

mData.child(String.valueOf(room)).child(key).addValueEventListener(new ValueEventListener() {

@Override

public void onDataChange(@NonNull DataSnapshot snapshot) {

gtv.setText(String.valueOf(snapshot.getValue()));

}

@Override

public void onCancelled(@NonNull DatabaseError error) {

}

});

}

● Hàm gửi data lên Firebase

public void PushFirebase(String room, String key, String value) {

mData = FirebaseDatabase.getInstance().getReference();

mData.child(room).child(key).setValue(value);

}

public void PushFirebase(String key, Object value) {

mData = FirebaseDatabase.getInstance().getReference();

mData.child(key).setValue(value);

}

● Hàm gửi trạng thái ON-OFF lên Firebase để điều khiển cơ cấu chấp hành

public void setBtnTurnOnFan(String roomNumber) {

btnTurnOnFan.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

pushOrReceiveFirebase.PushFirebase(roomNumber, "fan", "ON"); }

});

}

public void setBtnTurnOffFan(String roomNumber) {

Trang 15

btnTurnOffFan.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

pushOrReceiveFirebase.PushFirebase(roomNumber,"fan", "OFF");

}

});

}

2 Lập trình trên Raspberry Pi

● Hàm set địa chỉ chân của Raspberry Pi

def init (self,Pin_dht,Pin_MQ2,kt,ENA,IN1,IN2,check):

self.PIN_DHT=Pin_dht

self.PIN_MQ2=Pin_MQ2

self.ENA=ENA

self.IN1=IN1

self.IN2=IN2

self.kt=kt

self.check=check

GPIO.setup(self.ENA,GPIO.OUT)

GPIO.setup(self.IN1,GPIO.OUT)

GPIO.setup(self.IN2,GPIO.OUT)

GPIO.output(self.IN1,GPIO.LOW)

GPIO.output(self.IN2,GPIO.LOW)

self.p=GPIO.PWM(self.ENA,1000)

self.p.start(25)

● Hàm đọc tín hiệu từ cảm biến rồi gửi data lên Firebase và điều khiển cơ cáua chấp hành

def READ(self):

GPIO.setup(self.PIN_MQ2,GPIO.IN)

instance = dht11.DHT11(pin=self.PIN_DHT)

Trang 16

dht = instance.read()

if dht.is_valid():

print("Temp: %d C" % dht.temperature +' '+"Humid: %d %%" % dht.humidity) s=str(dht.temperature)+'°C'

s1=str(dht.humidity)+'%'

result = firebase.put(str(self.kt),'temperature',s)

result = firebase.put(str(self.kt),'humidity',s1)

if GPIO.input(self.PIN_MQ2)==0:

result = firebase.put(str(self.kt),'gas','HIGH')

else:

result = firebase.put(str(self.kt),'gas','LOW')

a = firebase.get(str(self.kt),'fan')

a=str(a)

print(a)

if dht.temperature>30:

if a=="OFF" and self.check=="ON" :

GPIO.output(self.IN1,GPIO.LOW)

GPIO.output(self.IN2,GPIO.LOW)

self.check="ON"

else:

GPIO.output(self.IN1,GPIO.HIGH)

GPIO.output(self.IN2,GPIO.LOW)

result = firebase.put(str(self.kt),'fan','ON')

self.check=a

if a=="ON":

GPIO.output(self.IN1,GPIO.HIGH)

GPIO.output(self.IN2,GPIO.LOW)

Trang 17

if a=="OFF":

GPIO.output(self.IN1,GPIO.LOW) GPIO.output(self.IN2,GPIO.LOW)

● Kết nối Pi với database trên Firebase

firebase =

firebase.FirebaseApplication('https://monitor-temperature-gas-default-rtdb.firebaseio.com', None)

Hình 10 Sản phẩm thực

● 2 cặp cảm biến DHT11 – MQ2 đại diện cho 2 phòng

● 2 động cơ đại diện cho quạt tại mỗi phòng có thể điều khiển từ App

● Pin cấp nguồn cho động cơ thông qua module điều khiển

1 Kết quả đạt được

Sau thời gian học tập, tìm hiểu, đồ án học phần đã hoàn thành đúng thời hạn quy định, giải quyết các yêu cầu đặt ra ban đầu Hệ thống hoạt động ổn định, App nhận thông tin từ cảm biến gửi lên nhanh và có thể điều khiển cơ cấu chấp

Trang 18

hành như ý muốn.

2 Hạn chế

● Bị giới hạn số phòng cái đặt do số chân của Raspberry Pi có hạn

● Mô hình rườm rà, đấu nối chưa đẹp

● Đôi lúc bị delay do tốc độ truyền mạng

3 Hướng phát triền

● Tích hợp thêm cảm biến, cơ cấu chấp hành để có thể giám sát nhiều thông tin của phòng hơn

● Thay vì nối trực tiếp cảm biến vào Raspberry Pi, có thể dùng Arduino để nối cảm biến rồi cho Arduino giao tiếp với Raspberry Pi qua các chuẩn truyền thông không dây, từ đó tiết kiện được nhiều chân trên Pi hơn và một Pi có thể làm việc với nhiều phòng hơn

Trang 19

Danh mục hình ảnh

Hình 8 Giao diện điều khiển theo từng thông số của từng cảm biến 8

Tài liệu tham Khảo

[1] https://docs.python.org/3/tutorial/classes.html

[2] https://firebase.google.com/docs/auth/android/start?hl=be

[3] https://developer.android.com/guide/components/services

[4] https://www.mysensors.org/build/humidity

[5] https://www.mysensors.org/build/gas

[6] https://www.mysensors.org/build/raspberry

Ngày đăng: 22/11/2022, 20:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w