1 Mục tiêu chính Thiết bị cảnh báo rò rỉ khí Gas thường được đặt trong các căn bếp để phòng chống cháy nổ và đảm bảo an toàn cho con người Máy đo nồng độ Cồn thường được Cảnh Sát Giao Thông sử dụng để[.]
1 Mục tiêu chính: Thiết bị cảnh báo rị rỉ khí Gas thường đặt bếp để phịng chống cháy nổ đảm bảo an tồn cho người Máy đo nồng độ Cồn thường Cảnh Sát Giao Thơng sử dụng để phát tình trạng người sử dụng phương tiện nhằm đảm bảo an tồn giao thơng hạn chế tai nạn Mơ tả công dụng Đọc giá trị nồng độ cảm biến khí Gas Cồn, hiển thị giá trị lên hình LCD Cảnh báo nồng độ Gas Cồn vượt mức quy định với cấp độ đèn Led Cịi báo Tương tác với phần mềm Mblock, mơ cảnh báo giao diện phần mềm Hướng dẫn thực hiện: 2.1 Danh sách vật dụng Vật dụng Hình ảnh Chức / Chuẩn giao tiếp Mạch Vietduino Uno (Arduino Uno Compatible) (x1) Mạch điều khiển trung tâm, tương thích Arduino Uno, giao tiếp máy tính qua cổng USB Mạch MakerEDU Shield (x1) Mạch Shield giúp kết nối Vietduino Uno với phần cứng Robotics MakerEdu.vn qua chuẩn kết nối XH2.54 Mạch hiển thị MKE-M07 LCD1602 I2C module (x1) Màn hình hiển thị thơng tin, chuẩn giao tiếp I2C Cảm biến khí gas MKE-S08 MQ-2 (LPG/CO/CH4) sensor (x1) Cảm biến nồng độ khí Gas khơng khí, chuẩn giao tiếp Analog Cảm biến nồng độ cồn MKE-S07 MQ-3 alcohol sensor (x1) Cảm biến nồng độ Cồn khơng khí, chuẩn giao tiếp Analog Mạch còi báo MKE-M03 buzzer module (x1) Mạch còi báo phát âm thanh, chuẩn giao tiếp Digital Mạch led đơn MKE-M01 10mm single LED module Xanh x1 Vàng x1 Đỏ x1 Cáp Kết Nối MakerEDU XH2.54-XH2.54 3Wires (x6) Cáp Kết Nối MakerEDU XH2.54-XH2.54 4Wires (x1) 2.2 Quy trình thực Mạch đèn tín hiệu, chuẩn giao tiếp Digital Cáp kết nối phần cứng MakerEdu.vn chuẩn XH2.54 dây Cáp kết nối phần cứng MakerEdu.vn chuẩn XH2.54 dây 2.3 Hướng dẫn kết nối Lưu ý quan trọng: cần xố chương trình cũ mạch vietduino trước thực kết nối với phần cứng để tránh xung đột làm hư hỏng mạch!!! Bước 1: Xố chương trình cũ có sẵn mạch Vietduino trước thực kết nối phần cứng Bước 2: Lắp Shield lên mạch Vietduino Uno Bước 3: Kết nối phần cứng theo sơ đồ sau: Hướng dẫn lập trình Mblock for Arduino Lưu ý quan trọng: trước thực cần cài đặt phần mềm mblock, cấu hình phần mềm với mạch vietduino uno cài đặt extension Khai Báo Biến ***Lưu ý: Khi khai báo biến có “int_” phía trước tên biến kiểu số nguyên (Integer), mặc định khơng có kiểu số thực (Float) Hình thành phận code Code hồn chỉnh Code cho Sprites ***Link dự án Mblock: HỆ THỐNG CẢNH BÁO KHÍ GAS VÀ CỒN – Mblock Community Giải thích code Phân loại Khối lệnh Events Chức Bắt đầu chương trình Lặp lại mãi Control Pin Operators Thực đoạn mã tập lệnh khối điều kiện định đáp ứng Chờ khoảng thời gian giây Bật / tắt thiết bị chuẩn digital Cả hai mệnh đề điều kiện Ít hai mệnh đề điều kiện Ghép hai chuỗi lại với Làm tròn số đến số nguyên gần Phép so sánh bé Phép so sánh lớn Variables MKEM07,08 Upload Mode Broadcast 2.4 Hướng dẫn lập trình Arduino Gán giá trị cho biến In dòng chữ hiển thị hình LCD Gửi nội dung với giá trị // Include library // Cai dat thu vien #include "LiquidCrystal_I2C.h" // Define connected pin // Dat ten chan cong ket noi #define GAS_PIN A1 #define ALCOHOL_PIN A2 #define BUZZER_PIN A3 #define LED_RED_PIN #define LED_YELLOW_PIN 10 #define LED_GREEN_PIN 11 // Set gas and alcohol limt // Dat cac gia tri nguong #define ALCOL_LIMIT1 100 #define GAS_LIMIT1 400 #define ALCOL_LIMIT2 50 #define GAS_LIMIT2 120 // Set the LCD address to 0x27 for a 16 chars and line display // Thiet lap dia chi LCD 0x27 de hien thi ky tu LCD 16 ky tu dong LiquidCrystal_I2C LCD(0x27, 16, 2); void setup() { // We initialize serial connection so that we could print values from sensor // Khoi tao cong ket noi noi tiep Serial.begin(9600); // Initialize LCD 1602 to display // Khoi tao LCD 1602 de hien thi LCD.init(); // Turn on LCD backlight // Bat den nen LCD 1602 LCD.backlight(); // Thiet lap LED va BUZZER o trang thai OUTPUT pinMode(LED_RED_PIN, OUTPUT); pinMode(LED_YELLOW_PIN, OUTPUT); pinMode(LED_GREEN_PIN, OUTPUT); pinMode(BUZZER_PIN, OUTPUT); //PreHeating Sensor on 60s //Khoi dong lam nong cam bien 60s for (int i = 60; i >= 0; i ) { LCD.setCursor(0, 0); LCD.print("PreHeatingSensor"); LCD.setCursor(7, 1); LCD.print(i); LCD.print("s "); delay(1000); LCD.clear(); } } void loop() { // Read gas and alcohol value // Doc gia tri cam bien gas va nong int gasValue = analogRead(GAS_PIN); int alcoValue = analogRead(ALCOHOL_PIN); // Print gas and alcohol value on LCD at column and row // Hien thi gia tri gas va nong LCD.setCursor(0, 0); LCD.print("Gas "); LCD.setCursor(0, 1); LCD.print(gasValue); LCD.print(" "); LCD.setCursor(9, 0); LCD.print("Alcohol "); LCD.setCursor(9, 1); LCD.print(alcoValue); LCD.print(" "); delay(100); // Compare current gas and alcohol value to their limitt // So sanh cac gia tri nguong if ((alcoValue < ALCOL_LIMIT2) && (gasValue < GAS_LIMIT2)) { // Safe // An toan digitalWrite(LED_GREEN_PIN, HIGH); digitalWrite(LED_YELLOW_PIN, LOW); digitalWrite(LED_RED_PIN, LOW); digitalWrite(BUZZER_PIN, LOW); } if (((alcoValue ALCOL_LIMIT2)) || ((gasValue GAS_LIMIT2))) { // Turn on warning Led Level and Alarm // Bat canh bao Led muc va coi bao dong digitalWrite(LED_GREEN_PIN, HIGH); digitalWrite(LED_YELLOW_PIN, HIGH); digitalWrite(LED_RED_PIN, LOW); digitalWrite(BUZZER_PIN, HIGH); delay(300); digitalWrite(LED_GREEN_PIN, LOW); digitalWrite(LED_YELLOW_PIN, LOW); digitalWrite(BUZZER_PIN, LOW); } if ((alcoValue > ALCOL_LIMIT1) || (gasValue > GAS_LIMIT1)) { // Turn on warning Led level and Alarm // Bat canh bao led muc va coi hoat dong lien tuc digitalWrite(LED_GREEN_PIN, HIGH); digitalWrite(LED_YELLOW_PIN, HIGH); digitalWrite(LED_RED_PIN, HIGH); digitalWrite(BUZZER_PIN, HIGH); delay(100); //Tat cac canh bao digitalWrite(LED_GREEN_PIN, LOW); digitalWrite(LED_YELLOW_PIN, LOW); digitalWrite(LED_RED_PIN, LOW); } } ***Link tải code Github: makereduvn/MakerEdu_Development_Kit (github.com)