Hệ thống báo cháy tự động sử dụng VDK arduino để điều khiển hệ thống, kèm theo đó là cảm biến nhiệt độ (DS18B20) và cảm biên khí gas để phát hiện các mối nguy cơ dẫn đến cháy. Khi hệ thống phát hiện cháy sẽ gửi thông báo về điện thoại và báo loa.
Trang 1MÔ HÌNH HỆ THỐNG BÁO CHÁY TỰ ĐỘNG
TP HỒ CHÍ MINH, tháng 12 năm 2020
Trang 2 HỆ THỐNG BÁO CHÁY TỰ ĐỘNG
Trang 4TP HCM, ngày….tháng 12 năm 2020
NHẬN XÉT ĐỒ ÁN HỌC PHẦN CỦA GIẢNG VIÊN HƯỚNG DẪN
Tên đồ án:
Mô hình hệ thống báo cháy tự động
Đánh giá đồ án
1 Về cuốn báo cáo:
Một số nhận xét về hình thức cuốn báo cáo:
2 Về nội dung đồ án:
3 Về tính ứng dụng:
Trang 5
Đánh giá chung: Điểm từng sinh viên: (Họ tên sinh viên):……… /10
Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 6Trong quá trình thực hiện đồ án, được sự giúp đỡ của thầy em đã rút ra cho mìnhnhiều bài học quý giá, giúp em rất nhiều trong quá trình học tập và làm việc của em trongtương lai.
Trong quá trình thực hiện đồ án , do kinh nghiệm em còn nhiều hạn chế nên khôngtránh khỏi những sai sót Mong nhận được sự góp ý của thầy để hoàn thiện hơn
TP Hồ Chí Minh, ngày 10 tháng 12 năm 2020
Tác giả
Trang 7
MỤC LỤC
DANH MỤC KÝ HIỆU, CỤM TỪ VIẾT TẮT ii
DANH MỤC HÌNH ẢNH iii
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu đề tài 1
1.3 Phương pháp nghiên cứu 1
1.4 Các khối của hệ thống 2
1.4.1 Khối điều khiển: 2
1.4.2 Khối cảm biến: 2
1.4.3 Khối hiển thị: 2
1.4.4 Module sim 800A: 2
1.4.5 Nguồn cung cấp: 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
2.1 Arduino 3
2.1.1 Tổng quan về arduino 3
2.1.2 Một vài thông số cơ bản của arduino 3
2.2 Màn Hình LCD (16x2) 8
2.2.1 Giới thiệu 8
2.2.2 Thông số kỹ thuật 8
2.2.3 Sơ đồ chân LCD 9
2.2.4 Địa chỉ ba vùng nhớ 9
2.2.5 Các lệnh điều khiển của LCD 10
2.3 Cảm biến nhiệt độ DS18b20 13
2.3.1 Giới thiệu 13
2.3.2 Sơ đồ chân 14
Trang 82.3.3 Các lệnh cơ bản 17
2.4 I2C 20
2.5 Model sim800a 21
2.6 Cảm biến MQ-135 23
2.6.1 Cách sử dụng Cảm biến MQ-135 để phát hiện khí 23
2.6.2 Cách sử dụng cảm biến MQ-135 để đo PPM 24
CHƯƠNG 3: CƠ SỞ THỰC HIỆN 27
3.1 Lưu đồ giải thuật 27
3.2 Sơ đồ kết nối của mô hình 28
3.3 Sơ đồ khối 29
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 30
4.1 Ảnh chụp hiển thị nhiệt độ vượt 40�C 30
4.2 Ảnh chụp mô hình khi phát hiện có khí gas 31
CHƯƠNG 5: KẾT LUẬN VÀ ĐỊNH HƯỚNG ĐỀ TÀI 32
5.1 Kết quả đạt được 32
5.2 Hạn chế 32
5.3 Hướng phát triển của đề tài 32
PHỤ LỤC 34
Code chương trình 34
TÀI LIỆU THAM KHẢO 39
Trang 9DANH MỤC KÝ HIỆU, CỤM TỪ VIẾT TẮT
IDE Integrated Development Environment
Trang 10DANH MỤC HÌNH ẢNH
HÌNH 2.1 ATMEGA8 -4
HÌNH 2.2 CÁC CỔNG RA\VÀO CỦA ARDUINO -7
HÌNH 2.3 LCD - 8
HÌNH 2.4 CẢM BIẾN DS18B20 -13
HÌNH 2.5 SƠ ĐỒ CHÂN CỦA DS18B20 -14
HÌNH 2.6 KIỂU KẾT NỐI DS18B20 -19
HÌNH 2.7 MODULE I2C LCD 16X2 -20
HÌNH 2.8 MODULE SIM800A -21
HÌNH 2.9 CẢM BIẾN MQ-135 -23
HÌNH 2.10 ĐẶC TÍNH CỦA MQ-135 -24
HÌNH 2.11 MÔ HÌNH 2D CỦA CẢM BIẾN KHÍ MQ-135 -26
HÌNH 3.1 SƠ ĐỒ NỐI DÂY CỦA MÔ HÌNH -28
HÌNH 3.2 SƠ ĐỒ KHỐI CỦA MÔ HÌNH -29
HÌNH 4.1 ẢNH CHỤP KHI HỆ THỐNG TRÊN 40 ĐỘ C -30
HÌNH 4.2 ẢNH CHỤP MÔ HÌNH KHI PHÁT HIỆN GAS -31
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Từ xưa tới nay việc ngăn ngừa đề phòng hỏa hoạn hay công tác phòng cháychữa cháy luôn được coi là vấn đề quan trọng hàng đầu trong mỗi quốc gia ỞViệt Nam hiện nay tốc độ xây dựng cơ sở hạ tầng đang diễn ra một cách mạnh
mẽ Các tòa nhà cao tầng, trung tâm thương mại, trụ sở văn phòng xuất hiệnngày một nhiều, đặc biệt ở các thành phố lớn Các tòa nhà với tính chất kiến trúcrộng và đa dạng, lại là nơi thường xuyên tập trung lượng lớn con người học tập,làm việc và được trang bị nhiều tài sản quý giá luôn tiềm ẩn những nguy cơ khácnhau dẫn tới hỏa hoạn Do đó việc trang bị hệ thống báo cháy tự động nhằm pháthiện sớm các nguy cơ để ngăn chặn hiệu quả là một yêu cầu cấp thiết của cáccông trình Từ những lý do trên nên em chọn đề tài “Thiết kế hệ thống báo cháy
tự động” với mục đích nghiên cứu về hệ thống quan trọng này làm đề tài cho đồ
Để từ đó xây dựng được hệ thống báo cháy tự động
1.3 Phương pháp nghiên cứu
Tham khảo tài liệu: tài liệu tham khảo được thu thập chủ yếu qua Internet
Tự nghiên cứu: từ nguồn tài liệu thu thập được, quá trình thực hiện đồ án bắtbuộc phải trải qua việc nghiên cứu nguồn tài liệu, chắt lọc những thông tin có giátrị, đồng thời tự suy nghĩ tìm ra cách giải quyết vấn đề
Thực tế làm việc: Từng bước thực hiện giải quyết vấn đề đã đặt ra.Trong quátrình thực hiện nảy sinh những vấn đề khó khăn mà người nghiên cứu phải trực tiếpgiải quyết mới có thể tìm ra cách giải quyết đúng đắn
Trang 121.4 Các khối của hệ thống
1.4.1 Khối điều khiển:
Nhận dữ liệu vào từ cảm biến, phân tích và xử lý dữ liệu, hiển thị nhiệt độ vàcảnh báo lên LCD, ra lệnh cho module sim gửi tin nhắn và gọi điện cho người sửdụng khi có sự cố xảy ra
1.4.4 Module sim 800A:
Gửi tin nhắn và gọi điện đến người dùng khi có sự cố
1.4.5 Nguồn cung cấp:
Cung cấp nguồn cho hệ thống hoạt động gồm có:
- Nguồn vi điều khiển
- Nguồn cảm biến nhiệt độ
- Nguồn cảm biến khí gas
- Nguồn module sim
- Nguồn cho còi
- Nguồn cho LCD
Trang 13CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Arduino
2.1.1 Tổng quan về arduino
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 Phần cứng bao gồm một boardmạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARMAtmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộngkhác nhau
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mangđến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên
và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môitrường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến chonhững người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ
và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp(IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viếtcác chương trình cho Aduino bằng ngôn ngữ C hoặc C++
2.1.2 Một vài thông số cơ bản của arduino
a) Một vài thông số của Arduino UNO R3
Trang 14b) Vi điều khiển
Hình 2.1 ATmega8
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điềukhiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đonhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
c) Năng lượng
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồnngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấpnguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB.Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO
d) Các chân năng lượng
GND (Ground): 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àyphả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: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
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
Trang 15 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 đượclấ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Ω
Lưu ý:
sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp choArduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nóthành một miếng nhựa chặn giấy mình khuyên bạn nên dùng nguồn từ cổngUSB nếu có thể
các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai
vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyếnkhích
6V có thể làm hỏng board
khiển ATmega328
UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
sẽ làm hỏng vi điều khiển
UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng đểtruyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng
e) Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
Trang 16 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong
bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong sốnày sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn
khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càngcần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớRAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên
SRAM sẽ bị mất 1KB cho.
EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu củamì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ênSRAM
f) Các cổng vào/ra
Hình 2.2 Các cổng ra\vào của arduino
Trang 17Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2mứ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 Arduino Uno có thể giao tiếp với thiết bịkhác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính
là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên
sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn 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àmanalogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra
ở chân này từ mức 0V đến 5V thay vì chỉ 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ằnggiao thức SPI với các thiết bị khác
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
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit
board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức
là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đođiện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác
Trang 182.2 Màn Hình LCD (16x2)
2.2.1 Giới thiệu
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.
dụng ít điện năng hơn
Trang 19 Có thể được điều khiển với 6 dây tín hiệu
HD44780 datasheet để biết thêm chi tiết
Trong 16 chân của LCD được chia ra làm 3 dạng tín hiệu như sau:
với nguồn+5V Chân thứ 3 dùng để chỉnh contrast thường nối với biến trở
thanh ghi ChânR/W dùng để điều khiển quá trình đọc và ghi Chân E là chân chophép dạng xung chốt
đổi dữ liệu giữa thiết bị điều khiển và LCD
Trang 202.2.4 Địa chỉ ba vùng nhớ
Bộ điều khiển LCD có ba vùng nhớ nội, mỗi vùng có chức năng riêng Bộ điều khiển phải khởi động trước khi truy cập bất kỳ vùng nhớ nào
Bộ nhớ chứa dữ liệu để hiển thị (Display Data RAM: DDRAM) lưu trữ những
mã ký tự để hiển thị lên màn hình Mã ký tự lưu trữ trong vùng DDRAM sẽ tham chiếu với từng bitmap kí tự được lưu trữ trong CGROM đã được định nghĩa trước hoặc đặt trong vùng do người sử dụng định nghĩa
Bộ phát kí tự ROM (Character Generator ROM: CGROM) chứa các kiểu bitmap cho mỗi kí tự được định nghĩa trước mà LCD có thể hiển thị, như được trình bày bảng mã ASCII Mã kí tự lưu trong DDRAM cho mỗi vùng kí tự sẽ được tham chiếu đến một vị trí trong CGROM
Ví dụ: mã kí tự số hex 0x53 lưu trong DDRAM được chuyển sang dạng nhị phân 4
bit cao là DB[7:4] = “0101” và 4 bit thấp là DB[3:0] = “0011” chính là kí tự chữ ‘S’
sẽ hiển thị trên màn hình LCD
Bộ phát kí tự RAM (Character Generator RAM: CG RAM) cung cấp vùng nhớ
để tạo ra 8 kí tự tùy ý Mỗi kí tự gồm 5 cột và 8 hàng
2.2.5 Các lệnh điều khiển của LCD
1.52ms
Sets addresscounter tozero,returnsshifted display tooriginal position
DDRAMcontens remainunchanged
39µs
Trang 21(D), cursoron/off (C) orcursorblinking(B)
39µs
Sets interfacedata width (DL),number ofdisplay lines(N,M) andvoltage generato
10.Buzy flag &
Reads buzy flag
& addresscounter
0
Reads data fromCCGRAM orDDRAM
43µs
Write data toCCGRAM orDDRAM
43µs
Lệnh thiết lập chức năng giao tiếp “Function set”:
- Bit DL (data length) = 1 thì cho phép giao tiếp 8 đường data D7 ÷ D0, nếu bằng
0 thì cho phép giao tiếp 4 đường D7 ÷ D4
- Bit N (number of line) = 1 thì cho phép hiển thị 2 hàng, nếu bằng 0 thì cho phéphiển thị 1 hàng
- Bit F (font) = 1 thì cho phép hiển thị với ma trận 5×8, nếu bằng 0 thì cho phéphiển thị với ma trận 5×11
Trang 22- Các bit cao còn lại là hằng số không đổi.
xoá và bộ đếm địa chỉ được xoá về 0
này thì bộ đếm địa chỉ được xoá về 0, phần hiển thị trở về vị trí gốc đã bịdịch trước đó Nội dung bộ nhớ RAM hiển thị DDRAM không bị thay đổi
cho các kí tự hiển thị,
- Bit I/D = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộhiển thị, khi I/D = 0 thì con trỏ sẽ tự động giảm đi 1 mỗi khi có 1 byte dữ liệu ghivào bộ hiển thị
- Bit S = 1 thì cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị
Lệnh điều khiển con trỏ hiển thị “Display Control”:
- Bit D: cho phép LCD hiển thị thì D = 1, không cho hiển thị thì bit D = 0
- Bit C: cho phép con trỏ hiển thị thì C= 1, không cho hiển thị con trỏ thì bit C =0
- Bit B: cho phép con trỏ nhấp nháy thì B= 1, không cho con trỏ nhấp nháy thì bit
B = 0
- Với các bit như trên thì để hiển thị phải cho D = 1, 2 bit còn lại thì tùy chọn,trong thư viện thì cho 2 bit đều bằng 0, không cho phép mở con trỏ và nhấp nháy,nếu bạn không thích thì hiệu chỉnh lại
khiển di chuyển con trỏ hiển thị dịch chuyển
- Bit SC: SC = 1 cho phép dịch chuyển, SC = 0 thì không cho phép
- Bit RL xác định hướng dịch chuyển: RL = 1 thì dịch phải, RL = 0 thì dịch trái
Trang 23- Vậy khi cho phép dịch thì có 2 tùy chọn: dịch trái và dịch phải.
lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM phát kí tự
này dùng để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị
2.3 Cảm biến nhiệt độ DS18b20
2.3.1 Giới thiệu
DS18B20 là IC cảm biến nhiệt độ bán dẫn, gồm 3 chân, đóng vỏ nhỏ gọn Giao tiếp thông qua truyền thông 1 dây Độ phân giải nhiệt độ lên tới 12 bít, dòng tiêu thụrất thấp, giải điện áp sử dụng rộng 3 - 5.5V, kết nối được nhiều cảm biến chung trên
1 đường truyền Ứng dụng trong đo đạc nhiệt độ chính xác và thu thập nhiệt độ nhiều điểm
Hình 2.4 Cảm biến ds18b20
Cảm biến nhiệt độ DS18B20 có những tính năng như sau:
- Theo chuẩn giao tiếp 1-wire, Kết nối nhiều cảm biến DS18B20 trên 1 đường truyền
- Dãi nhiệt độ đo lường: -55°C to +125°C (-67°F to +257°F)
- Độ chính xác: ±0.5°C trong khoảng đo -10°C to +85°C