Ngày nay, kinh tế thương mại của nước ta phát triển mạnh, đời sống nhân dân được cải thiện, đi cùng với điều đó là nhu cầu cần được bảo vệ bản thân, bảo vệ gia đình được đa số người dân chú trọng. Bên cạnh đó, phong trào phòng chống cháy nổ được nhà nước ta hết sức quan tâm và là vấn đề đươc đặt lên hàng đầu. Vì vậy, hệ thống báo cháy có vai trò quan trọng và được ứng dụng rộng rãi trong toàn xã hội. Sử dụng vi điều khiển để hiển thị nhiệt độ trên master từ các slaver. Viết sơ đồ giải thuật, viết code, sử dụng vi điều kiển PIC16F877A, thi công, thiết kế mô hình, phần cứng. Xây dựng code đọc nhiệt độ từ LM35 trên slaver. Sử dụng module truyền UART RF để gọi các slaver và đọc giá trị nhiệt độ từ các slaver. Sau đó hiển thị nhiệt độ lên LCD 16x02.
Trang 1HỆ THỐNG BÁO CHÁY
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY 1
1.1 GIỚI THIỆU 1
1.1.1 Yêu cầu của đề tài 1
1.1.2 Hướng giải quyết 1
2.3.1 Mô tả sơ lược 4
2.3.2 Thông số và sơ đồ chân 5
2.3.3 Nguyên lý hoạt động 5
2.3.4 Ưu điểm và nhược điểm 6
2.4 MODULE TRUYỀN NHẬN CC1101 6
2.4.1 Mô tả sơ lược 6
2.4.2 Thông số và sơ đồ chân 7
2.5 MỘT SỐ LINH KIỆN KHÁC 7
2.5.1 IC LM7805 8
2.5.2 Module LCD 8
CHƯƠNG 3 GIẢI THUẬT, THỰC THI PHẦN CỨNG9
3.1 LƯU ĐỒ GIẢI THUẬT 9
3.2 SƠ ĐỒ MẠCH 11
3.3 THIẾT KẾ PHẦN CỨNG13
Trang 3PHỤ LỤC A 16
Trang 4HÌNH 2-2: HÌNH ẢNH THỰC TẾ PIC16F877A [6] 3
HÌNH 2-3: PHẦN MỀM PIC C COMPLIER 4
HÌNH 2-4: IC LM35 [7] 4
HÌNH 2-5: SƠ ĐỒ CHÂN IC LM35 [6] 5
HÌNH 2-6: HÌNH ẢNH MODULE RF UART CC1101 [7]… 6
HÌNH 2-7: IC LM7805 [6]… 8
HÌNH 2-8: MODULE LCD 16x02 [3] 8
HÌNH 3-1: LƯU ĐỒ GIẢI THUẬT MCU SLAVER 9
HÌNH 3-2: LƯU ĐỒ GIẢI THUẬT MCU MASTER 10
HÌNH 3-3: PCB MẠCH NGUỒN 11
HÌNH 3-4: PCB MẠCH MCU MASTER 11
HÌNH 3-5: PCB MẠCH CẢNH BÁO 12
HÌNH 3-6: PCB MẠCH MCU SLAVER 12
Trang 5VDC Volt Direct Current
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY
1.1 Giới thiệu
Ngày nay, kinh tế thương mại của nước ta phát triển mạnh, đời sống nhândân được cải thiện, đi cùng với điều đó là nhu cầu cần được bảo vệ bản thân,bảo vệ gia đình được đa số người dân chú trọng Bên cạnh đó, phong tràophòng chống cháy nổ được nhà nước ta hết sức quan tâm và là vấn đề đươcđặt lên hàng đầu Vì vậy, hệ thống báo cháy có vai trò quan trọng và đượcứng dụng rộng rãi trong toàn xã hội
1.1.1 Yêu cầu của đề tài
- Sử dụng vi điều khiển để hiển thị nhiệt độ trên master từ các slaver
- Thi công phần cứng.
1.1.2 Hướng giải quyết
Viết sơ đồ giải thuật, viết code, sử dụng vi điều kiển PIC16F877A, thi công,thiết kế mô hình, phần cứng
1.2 Nguyên lý chung
Xây dựng code đọc nhiệt độ từ LM35 trên slaver Sử dụng module truyềnUART RF để gọi các slaver và đọc giá trị nhiệt độ từ các slaver Sau đó hiểnthị nhiệt độ lên LCD 16x02
Trang 7CHƯƠNG 2 NỘI DUNG CỦA ĐỀ TÀI
- Khối vi điều khiển:
Vi điều khiển PIC16F877A đảm nhận việc xử lý tín hiệu đọc giá trịnhiệt độ từ IC LM35 ở các slaver
- Khối truyền nhận dữ liệu:
Sử dụng module RF UART CC1101 để chuyển đổi giao tiếp từ UARTsang RF để truyền dữ liệu từ slaver về master
- Khối hiển thị LCD:
Sử dụng LCD 16x02 để hiển thị thị độ và các thông tin cảnh báo
Khối nguồn
Khối vi điều khiển
Khối Truyền Nhận dữ liệu Khối hiển thị LCD
Trang 82.2 PIC16F877A
- Vi điều khiển PIC16F877A có kích thước nhỏ và có 40 chân Số ngõ vào ra
số (Digital I/O) là 35 chân Bộ điều chế xung PWM với số kênh ngõ ra là 1,
Bộ nhớ flash: lưu mã lập trình (8192 words)
SRAM: lưu các biến được khai báo trong chương trình (368 Bytes)
EEPROM: lưu dữ liệu quan trọng vì khi mất điện thì dữ liệu này vẫncòn (256 Bytes)
- Dùng phần mềm PIC C Compiler để biên dịch chương trình
Trang 9Hình 2-3: Phần mềm PIC C complier 2.3 IC LM35
2.3.1 Mô tả sơ lược
- Ngày nay, công nghệ bán dẫn phát triển mạnh đã cho ra đời nhiều loại cảmbiến nhiệt độ với các ưu điểm khác nhau như: độ chính xác cao, hoạt động ổnđịnh,giá thành thấp, chống nhiễu tốt,
- Cảm biến nhiệt bán dẫn là loại cảm biến làm từ các chất bán dẫn Các loạicảm biến thường được tìm thấy dưới dạng diode như LM35, LM335, LM45
Hình 2-4: IC LM35 [5]
Trang 102.3.2 Thông số và sơ đồ chân
Trang 11- Khi nhiệt độ thay đổi sẽ cho ra điện áp thay đổi ở chân Vout Điện áp nàyđược phân áp từ điện áp chuẩn có trong mạch.
2.3.4 Ưu điểm và nhược điểm
- Ưu điểm: giá thành thấp, độ nhạy cao, cấu tạo đơn giản
- Khuyết điểm: kém bền, không chịu được nhiệt độ cao, nếu vượt ngưỡngnhiệt độ sẽ làm hỏng IC và chỉ tuyến tính trong một khoảng nào đó
2.4 Module truyền nhận CC1101
2.4.1 Mô tả sơ lược
Module hoạt động trên dãi tần 433 MHz Trong điều kiện không có vật cản,khoảng cách hoạt động tối đa là 200 m Module sử dụng chip thu phát sóng
RF CC1101 Trên module còn có 1 chip STM8 đảm nhận việc chuyển từgiao tiếp SPI trên CC1101 sang UART
Hình 2-6: Hình ảnh module RF UART CC1101 [7]
Trang 122.4.2 Thông số và sơ đồ chân
- Điện áp hoạt động trong khoảng từ: 3.3 – 5 VDC
- Tần số hoạt động: 433 MHz
- Phương thức giao tiếp: serial UART
- Khi sử dụng cài đặt module cần lưu ý:
Các module giao tiếp được với nhau khi có củng địa chỉ, kênhsóng (phải khác 0)
Để cài đặt kênh sóng dùng lệnh: AT+Cxxx (xxx trong khoảng 001đến 127)
Để cài đặt địa chỉ dùng lệnh: AT+Axxx (xxx trong khoảng 001đến 255)
- Sơ đồ chân:
Chân 1 VCC
Chân 2 GND
Chân 3 RXD: nối với TXD của MCU
Chân 4 TXD: nối với RXD của MCU
Chân 5 Set: khi vào chế độ AT cần nối GND
2.5 Một số linh kiện khác
- IC LM7805
- Module LCD 16x02
Trang 14CHƯƠNG 3 GIẢI THUẬT, THỰC THI PHẦN CỨNG
3.1 Lưu đồ giải thuật
Lưu đồ giải thuật điều khiển hệ thống báo cháy
Hình 3-6: Lưu đồ giải thuật MCU Slaver
Trang 15Hình 3-2: Lưu đồ giải thuật MCU Mater
Trang 163.2 Sơ đồ mạch
Hình 3-3: PCB mạch nguồn
Trang 17Hình 3-4: PCB mạch MCU Master
Trang 18Hình 3-5: PCB mạch cảnh báo
Trang 193.3 Thiết kế phần cứng
Trang 20CHƯƠNG 4 ĐÁNH GIÁ VÀ KẾT LUẬN
- Kết hợp module DFPlayer Mini để cảnh báo bằng giọng nói phát ra loa
- Kết hợp nhiều module như module khí gas, khói, lửa, … để mở rộng cảnhbáo từ các slaver đến master
- Sử dụng module Bluetooth để có thể xem nhiệt độ tại các slaver quaSmartphone
- Kết hợp với module ESP8266 để truyền dữ liệu lên Web Server
Trang 21TÀI LIỆU THAM KHẢO
Trang 22PHỤ LỤC A
A CHƯƠNG TRÌNH CHO MASTER
///////////////
//////////////
////////////// -UART-LCD-LM35 -////////////// ////////////// Sua lai chan lcd ///// // B0 => B3 //! #define LCD_ENABLE_PIN PIN_B0 ////
//! #define LCD_RS_PIN PIN_B1 ////
//! #define LCD_RW_PIN PIN_B2 ////
//! #define LCD_DATA4 PIN_B4 ////
//! #define LCD_DATA5 PIN_B5 ////
//! #define LCD_DATA6 PIN_B6 ////
//! #define LCD_DATA7 PIN_B7 ////////////// Sua lai port B3 master1 => D2 master1
#include <16f877A.h> #device ADC=10 #define LCD_ENABLE_PIN PIN_B3 ////
#define LCD_RS_PIN PIN_B1 ////
#define LCD_RW_PIN PIN_B2 ////
#define LCD_DATA4 PIN_B4 ////
#define LCD_DATA5 PIN_B5 ////
#define LCD_DATA6 PIN_B6 ////
#define LCD_DATA7 PIN_B7
#fuses HS, NOWDT, NOPUT
Trang 23#use rs232(uart,baud=9600,parity=n,BITS=8,STOP=1,timeout=10,stream=rf)
#use
rs232(xmit=pin_d0,rcv=pin_d1,baud=9600,parity=n,BITS=8,STOP=1,timeout=10,stream=pc)
#include <stdlib.h>
#include <lcd.c>
unsigned int16 nhietdo,tong,giatriadc;
float tmp;
unsigned int8 id[6], data[6], inf[6];
unsigned int8 t=0,dem=0;
unsigned int16 idx=0 , datax=0 , infx=0;
Trang 25disable_interrupts(INT_TIMER0); // tat canh bao
output_high(PIN_D3); // bat chan pin d3 sang led canh bao vao che dohuy canh bao
output_high(PIN_C0);
output_low(PIN_C1);
output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
output_low(PIN_C4); // allert temperature - connect to c4 of master2
output_low(PIN_C5); // connect to c1 of master2 in room 002
output_low(PIN_D2); // connect to c0 of master2 in room 001
Trang 27output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
output_low(PIN_C4); // allert temperature - connect to c4 of master2
output_low(PIN_C5); // connect to c1 of master2 in room 002
output_low(PIN_D2); // connect to c0 of master2 in room 001
Trang 28printf(lcd_putc," TON DUC THANG ");
Trang 31output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
}
Trang 32
output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
Trang 33output_low(PIN_C2); // allert fire - connect to c2 of master2
output_low(PIN_C3); // allert smoke - connect to c3 of master2
output_low(PIN_C4); // allert temperature - connect to c4 of master2 output_low(PIN_C5); // connect to c1 of master2 in room 002
output_low(PIN_D2); // connect to c0 of master2 in room 001
Trang 34#include <stdlib.h>
unsigned int16 nhietdo=0,giatriadc;
float tmp;
int1 done=0;
unsigned int8 id[6],data[6] ;// data[6];
unsigned int16 idx,datax;
unsigned int16 tong=0;
Trang 38// -kiem tra gia tri gaz -// // vi tri moi
j=input(PIN_A1); // doc chan digital cam bien gaz
if(j==1) gaz=0; // gaz=123