Xây dựng hệ thống kiểm tra nồng độ khí GAS dùng trong gia đình. Đo và cảnh báo khí gas khi bị rò rỉ, thiết bị này giúp chúng ta nhận biết khí gas bị rò rỉ một cách dễ dàng khi có sự cố rò rỉ khí gas, thiết bị này có kết cấu đơn giản, giá cả hợp lý, có thể dung phổ biến trong các tòa nhà, hộ gia đình.
MỤC LỤC MỤC LỤC HÌNH ẢNH Mạch thực tế hoạt động sau lắp ráp cài đặt trương trình… ………67 LỜI NĨI ĐẦU Ngày nay, với phát triển mạnh mẽ khoa học kỹ thuật tạo nhiều nguồn lượng lượng nguyên tử, lượng hóa thạch, dầu mỏ, khí đốt, khí gas…đi kèm với phát triển dạng lượng nguy hiểm từ dạng lượng gây cho có khí gas nguồn lượng dùng công nghiệp, nông nghiệp…và dạng lượng chủ yếu, phổ biến dùng sinh hoạt ngày, không đảm bảo điều kiện tiêu chuẩn sử dụng khí gas nguy hiểm đến tính mạng cho người sử dụng Khí Gas hay gọi LPG (Liquified Petroleum Gas) khí đốt hố lỏng có nguồn gốc từ dầu mỏ, có thành phần hỗn hợp khí : Propan (C3H8) Butan (C4H10) không màu, không mùi, khơng độc hại (nhưng pha thêm chất Etylmecaptan có mùi đặc trưng để dễ phát có rò xì gas) Nhiệt độ sơi gas thấp (từ -45 0C đến -20C ) nên để gas lỏng tiếp xúc trực tiếp với da bị lạnh điều kiện nhiệt độ môi trường gas bốc mãnh liệt, gas chuyển từ trạng thái lỏng sang thể tích tăng đến 250 lần Áp suất gas phụ thuộc vào nhiệt độ môi trường, nhiệt độ tăng áp suất gas tăng ngược lại Trong điều kiện nhiệt độ khu vực phía nam áp suất gas dao động khoảng từ 4-7 kg/cm, tỷ trọng gas lỏng nhẹ nước Vì đặc tính khí gas bị rò rỉ mơi trường nguy hiểm cho người sử dụng, bình gas phòng kín, gas bị rò rỉ ngồi gas lan truyền, dâng từ lên (vì nặng khơng khí) chiếm chỗ, đẩy dần khơng khí ngồi, gây ngạt làm giảm nồng độ oxy khơng khí dẫn nạn nhân tử vong, khí gas bị rò rỉ môi trường gặp lửa tia lửa điện hay gây cháy nổ nguy hiểm cho người sử dụng Để khắc phục cố khí gas sử dụng, em xây dựng ý tưởng thực đề tài: Xây dựng hệ thống kiểm tra nồng độ khí GAS dùng gia đình Đo cảnh báo khí gas bị rò rỉ, thiết bị giúp nhận biết khí gas bị rò rỉ cách dễ dàng có cố rò rỉ khí gas, thiết bị có kết cấu đơn giản, giá hợp lý, dung phổ biến tòa nhà, hộ gia đình Rất mong nhận ý kiến đóng góp q thầy bạn CHƯƠNG I: TỔNG QUAN Như người biết sống ngày khí gas sử dụng nhiều Ngay nhà máy xí nghiệp hay đơn giản môi chất nén dạng gas Chính điều lên việc đảm bảo an tồn trình sử dụng vận hành thiết bị vơ quan trọng Xuất phát từ nhu cầu thực tế có nhiều giáo sư, tiến sỹ hay sinh viên … tiến hành nghiên cứu đề tài Nhằm nghiên cứu khắc phục tình trạng gây cháy nổ gây ra, tránh ảnh hưởng tới kinh tế việc ảnh hưởng trực tiếp đến tính mạng người Nhận thấy nghiêm trọng cấp thiết vấn đề trên, Em tìm hiểu nghiên cứu vấn đề rò rỉ khí gas, để giảm tối đa mối nguy hiểm khí gas gây ra, ảnh hưởng đến người tài sản chung 1.1 Lý chọn đề tài: Do nhu cầu sử dụng nguồn lượng khí gas ngày tăng, cố xảy sử dụng khí gas ngày nhiều nhu cầu cấp thiết sử dụng khí gas giảm cố khơng đáng có khí gas gây cho người sử dụng Để giải vấn đề nên kết sử dụng đồng thời sử dụng khí gas an tồn để hạn chế cố khí gas khóa van dùng xong, kiểm tra van, bếp ga định kỳ báo có khí gas bị rò rỉ lắp đặt thiết bị cảnh báo có khí gas bị rò rỉ mơi trường Trong việc lắp đặt, sử dụng hệ thống cảnh báo khí gas ưu tiên, đưa lên hàng đầu việc phát khí gas bị rò rỉ sử dụng khí gas, với kết cấu đơn giản, thuận tiện giá hợp lý độ nhạy với khí gas thiết bị cảnh báo khí ga lựa chọn hàng đầu cho người tiêu dùng thiết bị lắp đặt, phát rò rỉ sử dụng khí gas Nhận thấy nghiêm trọng cấp thiết việc lắp đặt thiết bị cảnh báo rò rỉ khí gas tòa nhà, khách sạn hộ gia đình, em chọn đề tài nhằm tìm hiểu nghiên cứu sâu thiết bị cảnh báo khí gas để thiết kế sản phẩm làm giảm tối đa cố sử dụng khí gas gây tồn nhà, khách sạn, hộ gia đình 1.2 Mục đích nghiên cứu: Đưa giải pháp an toàn sử dụng khí gas tòa nhà, khách sạn, hộ gia đình bị rò rỉ sử dụng thiết bị cảnh báo khí gas đơn giản,dễ dùng, hợp lý tạo khơng gian an tồn cho người sử dụng phân tích hệ thống, nguyên lý hoạt động hệ thống cảnh báo khí gas 1.3 Đối tượng nghiên cứu Hệ thống cảnh báo rò rỉ khí gas hộ gia đình, mở rộng áp dụng cho khu trung cư nhà bếp nhà hàng Hình 1.0 Một số hình ảnh khu bếp có sử dụng bếp GAS 1.4 Phạm vi nghiên cứu Được dùng để phục vụ an toàn cho hộ gia đình, qn ăn, tồn nhà, khách sạn, thường xun sử dụng khí GAS có khả phát sinh cố khí gas rò rỉ gây nguy cháy nổ nguy hiểm tính mạng cho người sử dụng 1.5 Nội dung nghiên cứu Nghiên cứu nguyên lý, cách hoạt động, cách lắp đặt hệ thống cảnh báo khí gas khí gas bị rò rỉ Thiết kế mơ hình, mạch hoạt động có khả cảnh báo khí gas phương pháp sử dụng mạch tương tự số 1.6 Phương pháp nghiên cứu Đề tài nghiên cứu phương pháp lý thuyết thực nghiệm với mục đích tạo sản phẩm có tính ứng dụng cao, chi phí thấp áp dụng đại trà vào đời sống thực tế nhằm giúp phát cố rò rỉ khí gas cách nhanh chóng, thuận tiện giúp người sử dụng an toàn CHƯƠNG II: CÁC LINH KIỆN SỬ DỤNG TRONG XÂY DỰNG MẠCH CẢNH BÁO RỊ RỈ KHÍ GAS 2.1.Vi điều khiển Arduino UNO R3 Hình 2.1 Hình ảnh trực quan Arduino Uno R3 Bảng 2.1 Thông số chi tiết vi xử lý Arduino UNO R3 - Vi điều khiển Arduino UNO sử dụng vi điều khiển họ 8bit AVR ATmega8, ATmega168, ATmega328 Bộ não xử lý tác vụ đơn giản điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, làm trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD hay ứng dụng khác lập trình khả đáp ứng vi xử lý - Thiết kế tiêu chuẩn Arduino UNO sử dụng vi điều khiển Atmega 328 Atmega328 chíp vi điều khiển sản xuất bời hãng Atmel thuộc họ MegaAVR có sức mạnh hẳn Atmega8, vi điều khiển bít dựa kiến trúc RISC nhớ chương trình 32KB ISP flash ghi xóa hàng nghìn lần, 1KB EEPROM, nhớ RAM vô lớn giới vi xử lý bít (2KB SRAM) +Với 23 chân sử dụng cho kết nối vào I/O, 32 ghi, timer/counter lập trình, có gắt nội ngoại (2 lệnh vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C + Ngồi sử dụng biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới kênh, khả lập trình watchdog timer, hoạt động với chế độ nguồn, sử dụng tới kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader -Năng lượng Arduino UNO cấp nguồn 5V thơng qua cổng USB cấp nguồn ngồi với điện áp khuyên dùng 7-12V DC giới hạn 6-20V Thường cấp nguồn pin vng 9V hợp lí khơng có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn trên, làm hỏng Arduino UNO + GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với + 5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA + 3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA + Vin (Voltage Input): để cấp nguồn cho Arduino UNO, nối cực dương nguồn với chân cực âm nguồn với chân GND CHƯƠNG III : XÂY DỰNG HỆ THỐNG 3.1 Xây dựng sơ đồ khối chung Khối nguồn ( cung cấp nguồn cho toàn hệ thống ) Khối cảm biến khí GAS Khối xử lý Khối hiển thị Khối báo động Hình 3.1 Sơ đồ khối chung hệ thống cảm biến khí GAS - Khối nguồn + Có tác dụng phân chia, cung cấp đồng cho tất khối lại để đảm bảo khối cung cấp đầy đủ ngồn nuôi có khả hoạt đơng ổn định khơng bị tượng sụt áp hay tải dẫn đến cháy hỏng khối khác + Trong trường hợp em sử dụng nguồn Adapter 9V1A DC5.5x2.1MM sử dụng cho mạch điện tử, cấp nguồn cho thiết bị Hình 3.2 Adapter 9V1A DC5.5x2.1MM Với thông số sau : Bảng 3.1 Thông số nguồn Adapter Điện áp vào: AC100-240V Tần số : 50/60Hz Đầu ra: 9V DC Dòng Out Max : 1A Đầu Jack : 5.5x2.1 Tương thích với loại Jack DC: 5.5x2.1 or 5.5x2.5 - Khối xử lý Bao gồm vi xử lý Arduino có tác dụng, nhận thơng tin từ khối tín hiệu tính tốn theo trương trình biên soạn, đưa liệu hiển thị ngồi hình LCD, điều khiển, suất tín hiệu điều khiển khối lại hoạt động theo trương trình lập trình định sẵn - Khối hiển thị Giao tiếp với khối xử lý để lấy tín hiệu hiển thị cách trưc quan lên hình giá trị nồng độ khí GAS đo được, nội dung cảnh báo nồng độ vợt giới hạn - Khổi cảm biến Sử dụng cảm biến khí GAS MQ2, cảm nhận nồng độ khí GAS thực tế mơi trường xung quang, xuất tín hiệu dạng ananog gửi cho xử lý nhằm mục đích tính tốn, xử lý theo trương trình yêu cầu - Khối báo động : Khối sử dụng còi buzz, led RED, BLUE nhận tín hiệu điều khiển từ khối xử lý đưa thể trạng thái hình ảnh màu sắc les âm loa buzz để tác động cảnh báo cho người xử dụng 3.2 Sơ đồ mô mạch nguyên lý - Dựa kiến thức học, kỹ thực tế sử dụng phần mềm vẽ mô mạch công cụ Proteus, tiến hành thực vẽ mô phần mềm proteus Chúng ta thực vẽ kết nối modul phần lý thuyết đưa Hình 3.3 Sơ đồ nguyên lý mô giả lập phần mềm Proteus - Xây dựng sơ đồ thuật toán: Bắt đầu Thiết lập hệ thống Nhận liệu từ cảm biến Đưa hiển thị % nồng độ GAS khơng khí LCD 100 ms 100 ms Nếu nồng độ khí GAS >= 10% Đúng Bật LED Arlam Bật Loa Buzz Sai Bật LED Safe, tắt loa Buzzz Hình 3.4 Sơ đồ thuật tốn trương trình - Hoạt động thuật toán : + Bước 1: Khởi tạo phiên làm việc, thiết bị, kết nối +Bước 2: Khởi tạo chuỗi, biến đếm, thiết lập cổng với giá trị mặc định sẵn +Bước 3: Nhận đọc liệu từ cảm biến khí GAS MQ2 +Bước 4: Nếu hàm lượng khí GAS khơng khí lớn 10% phát thơng báo cảnh báo cho người dùng biết qua việc bật dèn led màu đỏ (LED arlam ) bật chuông Buzz điều kiện khơng thơi +Bước 5: Nếu hàm lượng khí GAS khơng khí nhỏ hơ 10% phát thơng báo an tồn cho người dùng biến qua việc bật dèn led màu xanh (LED safe ) không bật thông báo loa Buzz +Bước : Lặp lại liên tục 3.3 Lắp ráp mạch điện - Chuẩn bị đầy đủ linh kiên dây kết nối bao gồm : board Arduino Uno, Cảm biến khí GAS MQ2 , Màn hình LCD 16*2 tích hợp mạch chuyển đổi I2C, Nguồn DC 9V, dây kết nối socket - Tiến hành lắp ráp kết nối LCD với vi xử lý, Vì LCD xử dụng tích hợp sẵn giao tiếp I2C kết nối chân theo thứ tự sau sẵn giao tiếp I2C kết nối chân theo thứ tự sau Bảng 3.2 Thứ tự kết nôi chân hình LCD với vi xử lý Arduino Module hình LCD (16x2) Arduino GND GND Vcc 5V SDA A4 SCL A5 Quá trình kết nối nên xử dụng dây kết nối nhiều màu để phân biệt cách thuận lợi nhanh tróng cho đầu kết nối, không phát sinh nhầm lẫn kết nối sai chân tín hiệu Trong trường hợp tơi xử dụng dây màu đỏ để cấp nguồn + 5V từ chân 5V boar Arduino vào chân VCC hình LCD Tiếp theo xử dụng dây màu trắng để cấp nguồn GND từ chân GND boar Arduino vào chân GND LCD Còn chân SCL Và SDA sử dụng dây màu xanh mầu vàng để kết nối với chân A4, A5 vi xử lý Arduino - Kết nối cảm biến khí GAS, Đối với cảm biến khí GAS, tương tự cấp nguồn cho LCD phía trên, Vì sử dụng tín hiệu Analog cho lên ta lấy tín hiệu từ chân AOUT cảm biến đưa vào chân A0 boar Arduino Bảng 3.3 Thứ tự kết nôi chân cảm biến MQ2 với vi xử lý Arduino Cảm biến MQ2 Arduino GND GND Vcc 5V Dout - Aout A0 Sau hoàn thành tất kết nối bên trên, ý kiểm tra lại toàn chân cắm theo thứ tự màu sắc để chắn tiến hành kết nối sơ đồ nguyên lý nêu 3.4 Lập trình cho Arduino Phần mềm sử dụng: Arduino 1.8.8 - Arduino môi trường phát triển tích hợp đa tảng, làm việc với điều khiển Arduino để viết, biên dịch tải code lên bo mạch Phần mềm cung cấp hỗ trợ cho loạt bo mạch Arduino Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro hay Pro Mini LilyPad Arduino - Ngôn ngữ phổ quát cho Arduino C C++, phần mềm phù hợp cho lập trình viên quen thuộc với ngơn ngữ Các tính làm bật cú pháp, thụt đầu dòng tự động, làm cho trở thành thay đại cho IDE khác Hình 3.5 Giao diện phần mềm lập trình Arduino IDE 3.5 Kết thực nghiệm - Mạch hoạt động theo nội dung lập trình, senser cảm biến khí GAS phát lượng khí GAS khơng khí tăng lên, senser liên tục gửi tín hiệu điện áp tăng dần boar arduino, hình hiển thị thay đổi phần trăm lượng khí GAS khơng khí Khi nồng độ vượt mức, đèn cảnh báo màu đỏ sáng loa buzz liên tục phát âm cảnh báo Kết luận : Đã hồn thành thiết kế mạch cảm biến rò rỉ khí GAS hộ gia đình Hình 3.6 Mạch thực tế hoạt động sau lắp ráp cài đặt trương trình KẾT LUẬN Qua nỗ lực thực đề tài thực tập tốt nghiệp em hồn thành Bản thiết kế qua mơ mạch thử nghiệm cho kết đắn: - Chạy chức đặt ban đầu - Hệ thống ổn định - Mạch nhỏ gọn, thuận lợi cho trình lắp đặt - Hiển thị rõ ràng - Có giá thành tương đối thấp, dễ dàng trang bị cho hỗ gia đình Từ đưa hướng phát triển đề tài: - Phát triển thơng minh hơn, cao cấp an tồn với hệ thống nâng cấp cảnh báo việc gọi điện gửi tin nhắn theo số điện thoại thiết lập để cảnh báo tình trạng gia chủ vắng nhà - Tích hợp điều khiển chủ động mở thiết bị thơng gió để đào thải khí GAS môi trường - Thiết kế SmartHome nhà thông minh với thiết bị điều khiển qua điện thoại… Với tìm hiểu thực được, Em cảm thấy phấn chấn đề tài lần mở đường cho nghiên cứu áp dụng thực tiễn ngành điện điện tử em Xin chân thành cảm ơn đồng hành hỗ trợ tâm huyết thân thiện giảng viên hướng dẫn trực tiếp toàn thể thầy khoa Tự động hóa Trong báo cáo có sai sót, em mong đước thầy bạn đọc góp ý chỉnh sửa để báo cáo hoàn thiện Em xin chân thành cảm ơn TÀI LIỆU THAM KHẢO [1].Phạm Quang Huy, Nguyễn Trọng Hiếu, Vi điều khiển ứng dụng Arduino - NXB BÁCH KHOA HÀ NỘI, 2016 [2].Đỗ Xuân Thụ, Kỹ thuật điện tử, NXB giáo dục, 1999 [3].Phan Quốc Phơ, Nguyễn Đức Chiến, Giáo trình cảm biến, NXB Khoa học kỹ thuật, 2000 [4].Kiều Xuân Thực, Vũ Thị Hương, Vũ Trung Kiên, Vi điều khiển câu trúc lập trình ứng dụng, NXB Giáo dục, 2008 [5].Phạm Quang Huy, Vi điều khiển ứng dụng - Arduino dành cho người tự học, NXB Thanh niên [6].http://arduino.com [7].http://alldatasheet.com [8].http://electronicsprojectshub.com/ PHỤ LỤC Mã nguồn chương trình: #include #include LiquidCrystal_I2C lcd(0x27,16,2); int pin = A0; int buzzerPin = 11; int ledsafe = 9; int ledarlam = 10; int lpg,co; MQ2 mq2(pin); void setup() { Serial.begin(9600); mq2.begin(); lcd.begin(16,2); lcd.init(); lcd.backlight(); lcd.clear(); pinMode(buzzerPin,OUTPUT); pinMode(ledsafe,OUTPUT); pinMode(ledarlam,OUTPUT); lcd.setCursor(0, 0); lcd.print("Calibrating"); for(int i = 0; i 350) { digitalWrite(buzzerPin,HIGH); digitalWrite(ledarlam,HIGH); digitalWrite(ledsafe,LOW); lcd.setCursor(0, 0); lcd.print("LPG: CO:"); lcd.setCursor(4, 0); lcd.print(lpg); lcd.setCursor(12, 0); lcd.print(co); lcd.setCursor(0, 1); lcd.print("Phat hien ro GAS"); delay(300); lcd.clear(); } else if (lpg < 350) { digitalWrite(buzzerPin,LOW); digitalWrite(ledarlam,LOW); digitalWrite(ledsafe,HIGH); lcd.setCursor(0, 0); lcd.print("LPG: CO:"); lcd.setCursor(4, 0); lcd.print(lpg); lcd.setCursor(12, 0); lcd.print(co); lcd.setCursor(0, 1); lcd.print("An toan GAS"); delay(300); } } Thư viện MQ2.h #define #define #define MQ_PIN (0) //define which analog input channel you are going to use RL_VALUE (5) //define the load resistance on the board, in kilo ohms RO_CLEAN_AIR_FACTOR (9.83) //RO_CLEAR_AIR_FACTOR=(Sensor resistance in clean air)/RO, //which is derived from the chart in datasheet /***********************Software Related Macros************************************/ #define CALIBARAION_SAMPLE_TIMES (50) //define how many samples you are going to take in the calibration phase #define CALIBRATION_SAMPLE_INTERVAL (500) //define the time interal(in milisecond) between each samples in the //cablibration phase #define READ_SAMPLE_INTERVAL (50) //define how many samples you are going to take in normal operation #define READ_SAMPLE_TIMES (5) //define the time interal(in milisecond) between each samples in //normal operation /**********************Application Related Macros**********************************/ #define GAS_LPG (0) #define GAS_CO (1) #define GAS_SMOKE (2) /*****************************Globals***********************************************/ float LPGCurve[3] = {2.3,0.21,-0.47}; //two points are taken from the curve //with these two points, a line is formed which is "approximately equivalent" //to the original curve //data format:{ x, y, slope}; point1: (lg200, 0.21), point2: (lg10000, -0.59) float COCurve[3] = {2.3,0.72,-0.34}; //two points are taken from the curve //with these two points, a line is formed which is "approximately equivalent" //to the original curve //data format:{ x, y, slope}; point1: (lg200, 0.72), point2: (lg10000, 0.15) float SmokeCurve[3] ={2.3,0.53,-0.44}; //two points are taken from the curve //with these two points, a line is formed which is "approximately equivalent" //to the original curve //data format:{ x, y, slope}; point1: (lg200, 0.53), point2: (lg10000, 0.22) float Ro = 10; //Ro is initialized to 10 kilo ohms void setup() { Serial.begin(9600); //UART setup, baudrate = 9600bps Serial.print("Calibrating \n"); Ro = MQCalibration(MQ_PIN); //Calibrating the sensor Please make sure the sensor is in clean air //when you perform the calibration Serial.print("Calibration is done \n"); Serial.print("Ro="); Serial.print(Ro); Serial.print("kohm"); Serial.print("\n"); } void loop() { Serial.print("LPG:"); Serial.print(MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_LPG) ); Serial.print( "ppm" ); Serial.print(" "); Serial.print("CO:"); Serial.print(MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_CO) ); Serial.print( "ppm" ); Serial.print(" "); Serial.print("SMOKE:"); Serial.print(MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_SMOKE) ); Serial.print( "ppm" ); Serial.print("\n"); delay(200); } /****************** MQResistanceCalculation **************************************** Input: raw_adc - raw value read from adc, which represents the voltage Output: the calculated sensor resistance Remarks: The sensor and the load resistor forms a voltage divider Given the voltage across the load resistor and its resistance, the resistance of the sensor could be derived ************************************************************************************/ float MQResistanceCalculation(int raw_adc) { return ( ((float)RL_VALUE*(1023-raw_adc)/raw_adc)); } /***************************** MQCalibration **************************************** Input: mq_pin - analog channel Output: Ro of the sensor Remarks: This function assumes that the sensor is in clean air It use MQResistanceCalculation to calculates the sensor resistance in clean air and then divides it with RO_CLEAN_AIR_FACTOR RO_CLEAN_AIR_FACTOR is about 10, which differs slightly between different sensors ************************************************************************************/ float MQCalibration(int mq_pin) { int i; float val=0; for (i=0;i