Lời cảm ơn GVHD ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ o0o ĐỒ ÁN MÔN HỌC HỆ THỐNG BÁO CHÁY GVHD Nguyễn Trung Hiếu SVTH Nguyễn Viết Việt MSSV 183504.
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
TP HỒ CHÍ MINH, THÁNG 5 NĂM 2022
Trang 2Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Bách khoa TP.HCM nói chung, các thầy cô trong Bộ môn Điện tử - viễn thông nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp
em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập.
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, đồ
án này không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để tôi có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này.
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 18 tháng 5 năm 2022
Trang 3TÓM TẮT ĐỒ ÁN
Trong đời sống của chúng ta luôn tồn tại những khu vực dễ bị cháy, nên việc lắp đặt các
hệ thống báo cháy có tầm quan trọng hết sức to lớn Nó giúp ta phát hiện nhanh chóng, chữacháy kịp thời Đồ án này trình bày về hệ thống báo cháy đơn giản, có thể lắp đặt trong các hộgia đình,…
Trang 4MỤC LỤC
1 GIỚI THIỆU 1
1.1 Tổng quan 1
1.2 Nhiệm vụ đề tài 1
2 LÝ THUYẾT 1
2.1 Arduino UNO R3 1
2.2 Giới thiệu về Module LM2596 6
2.3 Module LCD 1602 và module I2C LCD 7
2.4 Cảm biến lửa 10
2.5 Cảm biến nhiệt độ và độ ẩm DHT11 11
2.6 Cảm biến khí gas MQ2 13
2.7 Module điều khiển động cơ L298N 15
3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 16
4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 19
5 KẾT QUẢ THỰC HIỆN 20
6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 22
6.1 Kết luận 22
6.2 Hướng phát triển 22
7 PHỤ LỤC 23
Trang 51 GIỚI THIỆU
1.1 Tổng quan
Trong đời sống hiện đại, việc phòng cháy - chữa cháy đang trở thành mối quan tâmhàng đầu vì quanh ta luôn tồn tại những khu vực dễ cháy có thể gây thiệt hại nặng nề vềngười và của Cho nên việc lắp đặt hệ thống báo cháy và chữa cháy có vai trò rất quan trọng,giúp ngăn chặn và xử lý đám cháy khi con người chưa thể xử lý và can thiệp kịp
Xuất phát từ nhu cầu trên, em đã chọn đề tài: “Hệ thống báo cháy” Hệ thống giúpphát hiện lửa, các nguy cơ từ sự cháy rò rỉ gas, nhiệt độ tăng bất thường Từ đó sẽ có cáchướng xử lý như bật chuông và đèn cảnh báo, kích hoạt máy bơm,…
Em đi sâu vào nghiên cứu những vấn đề chính sau đây:
Tìm hiểu về vi điều khiển mà trọng tâm là Arduino Uno R3 bao gồm phần cứng và tập lệnh
Tìm hiểu về cảm biến phát hiện lửa (IR Flame Sensor Module), cảm biến khí gas (Gas Sensor), cảm biến nhiệt độ và độ ẩm DTT11, LCD 2004,…
Viết chương trình cho Arduino Uno R3 và các cảm biến
Tìm hiểu về các phần mềm thiết kế mạch điện tử như Proteus
Phương pháp nghiên cứu: thu thập các thông tin từ đó phân tích, thiết kế và lập trình cho hệ thống Cuối cùng là thử nghiệm và vận hành hệ thống
2 LÝ THUYẾT
2.1 Arduino UNO R3
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết
bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của
Trang 6Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình cóthể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điềulàm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tớiphần mềm Chỉ với khoảng $30, người dùng đã có thể sở hữu một board Arduino có 20 ngõ I/
O có thể tương tác và điều khiển chừng ấy thiết bị
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế
kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là mộtcông cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong nhữngngười phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc dù hầunhư không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờnhững lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếngtới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino
Giới thiệu về board Arduino Uno
Arduino Uno là 1 bo mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển AVRAtmega328 Cấu tạo chính của Arduino Uno bao gồm các phần sau:
Hình 2.1 Board Arduino UNO R3
Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển Đồngthời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính
Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên, nhưng không phảilúc nào cũng có thể cắm với máy tính được Lúc đó ta cần một nguồn từ 9V đến 12V,
Trang 7thông thường hợp lý nhất là cấp nguồn từ pin vuông 9V Nếu cấp nguồn vượt quá giớihạn là 6-12V, Arduino có thể bị hỏng
Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngoài ra có một chân nối đất (GND) vàmột chân điện áp tham chiếu (AREF)
Vi điều khiển AVR: đây là bộ xử lí trung tâm của toàn bo mạch Với mỗi mẫu Arduinokhác nhau thì con chip là khác nhau Ở con Arduino Uno này thì sử dụng ATMega328P
Các thông số của Arduino UNO:
Vi điều khiển ATmega328P họ 8bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/
Các chân năng lượng:
GND: cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các thiết bị sử
dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
3.3V: 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của
nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc
chân RESET được nối với GND qua 1 điện trở 10KΩ
Bộ nhớ:
32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash
của vi điều khiển
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập
trình sẽ lưu ở đây, khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Khi mấtđiện, dữ liệu trên SRAM sẽ bị mất
Trang 8 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Các cổng vào/ra:
Hình 2.2 Các cổng I/O của Arduino Uno
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX), dùng để gửi (transmit – TX) và nhận (receive – RX)
dữ liệu TTL Serial
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân giải
8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói cách khác, có thể điều chỉnh điện áp của chân này từ mức 0V đến 5V thay vì cố định mức 0V và 5V như những chân khác
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI vớicác thiết bị khác
Trang 9 LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset,
bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
Các chân analog: Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải
tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
Lập trình cho Arduino:
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung Và Wiring lại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++ Riêng mình thì gọi nó là “ngôn ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự
án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment) như hình dưới đây
Hình 2.3 Giao diện phần mềm Arduino IDE
Trang 102.2 Gi i thi u v Module LM2596 ới thiệu về Module LM2596 ệu về Module LM2596 ề Module LM2596
Thông số kỹ thuật
Module nguồn không sử dụng cách ly
Nguồn đầu vào từ 4V - 35V.
Nguồn đầu ra: 1V - 30V.
Dòng ra Max: 3A
Kích thước mạch: 53mm x 26mm
Đầu vào: INPUT +,
INPUT- Đầu ra: OUTPUT+,
Cách sử dụng LM2596:
LM2596 rất dễ sử dụng vì nó yêu cầu rất ít linh kiện Điện áp không điều chỉnh được cấpcho chân 1 (Vin) qua tụ lọc để giảm nhiễu đầu vào Chân ON / OFF hoặc chân kích hoạt
Trang 11(chân 5) phải được nối với đất để kích hoạt IC Nếu được đặt ở mức cao, IC sẽ chuyển sangchế độ tắt và ngăn chặn dòng điện rò rỉ Tính năng này sẽ hữu ích để tiết kiệm điện năng đầuvào khi hoạt động qua pin Chân feedback là chân quan trọng thiết lập điện áp đầu ra Nócảm nhận điện áp đầu ra và dựa trên giá trị của điện áp đầu ra này, tần số chuyển mạch củacông tắc bên trong được điều chỉnh để cung cấp điện áp đầu ra mong muốn Cuối cùng điện
áp đầu ra thu được thông qua chân 2 thông qua một bộ lọc LC Sơ đồ mạch đầy đủ ở bêndưới, có thể tìm thấy các mạch này trong module chuyển đổi DC LM2596:
Hình 1.5 Sơ đồ Module LM2596
Tính toán điện áp đầu ra cho LM2596:
Như đã nói trước đó, điện áp đầu ra của LM2596-ADJ có thể được điều khiển bằng cách
sử dụng chân feedback Sơ đồ mạch điện cho thấy chân feedback nhận điện áp phản hồi từmột mạch phân áp được tạo thành với các điện trở R1 và R2 Giá trị của R1 và R2 này quyếtđịnh điện áp đầu ra của IC Công thức tính R1 và R2 được đưa ra dưới đây
Vout = Vref (1.0 + R2 / R1)
Ở đây giá trị của Vref có thể được coi là 1,23V do đó công thức trở thành Vout = 1,23 *(1+ (R2 / R1)), trong đó giá trị của R1 phải nằm trong khoảng từ 1k đến 5k Cũng có thể sửdụng một biến trở thay cho R1 để điều khiển điện áp đầu ra Điều này làm cho IC dễ sử dụnghơn trong các mạch cấp nguồn biến đổi
2.3 Module LCD 1602 và module I2C LCD
Màn hình text LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án
Trang 12 Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
Có đèn led nền, có thể dùng biến trở hoặc PWM để điều chỉnh độ sáng để sử dụng ít điện năng hơn
Có thế được điều khiển với 6 dây tín hiệu
Có bộ ký tự được xây dựng hỗ trợ tiếng Anh và tiếng Nhật
Trang 1311 D4 Đường truyền dữ liệu 4
Trong 16 chân của LCD được chia ra làm 3 dạng tín hiệu như sau:
Các chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là Vdd nối với nguồn +5V Chân thứ 3 dùng để chỉnh contrast thường nối với biến trở
Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi Chân R/W dùng để điều khiển quá trình đọc và ghi Chân E là chân cho phép dạng xung chốt
Các chân dữ liệu D7÷D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD
Thông thường thì chỉ sử dụng D4 – D7 để điều khiển LCD ở chế độ 4 bit
Giao tiếp: I2C
Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)
Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H)
Trọng lượng: 5g
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
Trang 14Hình 2.6 Module I2C LCD
LCD có quá nhiều chân gây khó khăn trong quá trình kết nối và chiếm dụng nhiều châncủa vi điều khiển Module chuyển đổi I2C cho LCD sẽ giải quyết vấn đề này, thay vì sử dụngtối thiểu 6 chân của vi điều khiển để kết nối với LCD (RS, EN, D7, D6, D5 và D4) thì vớimodule chuyển đổi chúng ta chỉ cần sử dụng 2 chân (SCL, SDA) để kết nối Module chuyểnđổi I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 1602, LCD 2004, … ), kết nốivới vi điều khiển thông qua giao tiếp I2C, tương thích với hầu hết các vi điều khiển hiện nay
2.4 C m bi n l a ảm biến lửa ến lửa ửa
Cảm biến phát hiện lửa (flame sensor) thường được sử dụng cho các ứng dụng phát hiện lửa như: xe robot chữa cháy, cảm biến lửa, Tầm phát hiện của cảm biến trong khoảng 80cm, góc quét là 60 độ, có thể phát hiện lửa tốt nhất là loại có bước sóng từ 760nm -
Trang 15 Góc quét : 60 độ
Kích thước : 3.2 x 1.4 cm
Hình 2.7 Cảm biến lửa
Hình 2.8 Sơ đồ nguyên lý cảm biến lửa
2.5 C m bi n nhi t đ và đ m DHT11 ảm biến lửa ến lửa ệu về Module LM2596 ộ và độ ẩm DHT11 ộ và độ ẩm DHT11 ẩm DHT11
DHT11 là một cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ và độ ẩm Cảm biến này
có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino, Raspberry Pi,
để đo độ ẩm và nhiệt độ ngay lập tức
DHT11 là một cảm biến độ ẩm tương đối Để đo không khí xung quanh, cảm biến này sử dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung
Trang 16 Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và một điện trở nhiệt
để cảm nhận nhiệt độ Tụ điện cảm biến độ ẩm có hai điện cực với chất nền giữ ẩm làm chất điện môi giữa chúng Thay đổi giá trị điện dung xảy ra với sự thay đổi của các mức
độ ẩm IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành dạng kỹ thuật số
Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm, làm giảm giá trị điện trở của nó khi nhiệt độ tăng Để có được giá trị điện trở lớn hơn ngay cả đối với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn hoặc polymer
Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C
Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)
Trang 17 Kích thước: 23 * 12 * 5 mm
Tính năng:
Cảm Biến Nhiệt Độ Và Độ Ẩm DHT11 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 chokhoảng đo và độ chính xác kém hơn rất nhiều
Nơi sử dụng DHT11:
DHT11 là một cảm biến nhiệt độ và độ ẩm thường được sử dụng Cảm biến đi kèm vớimột NTC chuyên dụng để đo nhiệt độ và một bộ vi điều khiển 8 bit để xuất ra các giá trịnhiệt độ và độ ẩm dưới dạng dữ liệu nối tiếp Cảm biến cũng được hiệu chuẩn tại nhà máy
và do đó dễ dàng giao tiếp với các bộ vi điều khiển khác Cảm biến có thể đo nhiệt độ từ 0
Cảm biến xuất ra cả hai dạng tín hiệu là Analog và Digital, tín hiệu Digital có thể điều chỉnh mức báo bằng biến trở