Hướng dẫn sử dụng cảm biến ngọn lửa Arduino: Phát hiện cháy và kích hoạt báo động

Hướng dẫn sử dụng cảm biến ngọn lửa Arduino: Phát hiện cháy và kích hoạt báo động

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Arduino và cảm biến ngọn lửa để phát hiện cháy và kích hoạt hệ thống báo động.

Hãy tưởng tượng bạn có một hệ thống có thể phát hiện cháy ngay từ giai đoạn đầu, có khả năng cứu sống và bảo vệ tài sản. Đây chính xác là những gì bạn có thể làm với Arduino và cảm biến ngọn lửa. Hướng dẫn này sẽ cung cấp hướng dẫn chi tiết về cách sử dụng cảm biến ngọn lửa với Arduino, bao gồm các giải thích thực tế, hướng dẫn từng bước và mã Arduino dễ hiểu.

Cảm biến ngọn lửa HW-072 có giá thành rẻ, phổ biến và có thể được gắn trên bảng thử nghiệm.

Cảm biến ngọn lửa là gì và tại sao bạn nên sử dụng cảm biến này?

Cảm biến ngọn lửa là thiết bị phát hiện ánh sáng hồng ngoại do lửa tạo ra. Chúng thường được sử dụng trong các hệ thống an ninh để phát hiện ngọn lửa hoặc hỏa hoạn. Những cảm biến này có giá thành phải chăng và hiệu quả đáng kinh ngạc, lý tưởng cho các dự án như:

  • Hệ thống phát hiện cháy nhà
  • Robot có khả năng chữa cháy
  • Hệ thống an toàn công nghiệp

Với bo mạch Arduino và cảm biến ngọn lửa, bạn có thể tạo các dự án phát hiện ngọn lửa và đưa ra cảnh báo, chẳng hạn như phát ra âm thanh báo động, gửi thông báo hoặc điều khiển các thiết bị khác như vòi phun nước hoặc quạt.

Vật liệu cần thiết cho dự án này

Trước khi đi vào từng bước thực hiện, hãy thu thập các thành phần sau:

  • Arduino Uno (hoặc bo mạch tương thích)
  • Mô-đun cảm biến ngọn lửa
  • Còi báo động (Tôi đã sử dụng còi báo động piezo cho dự án này)
  • chỉ huy
  • Điện trở (220 ohm cho đèn LED)
  • Bảng thử nghiệm và dây nối
  • Cài đặt cáp USB và Arduino IDE.

Tìm hiểu sâu hơn về mô-đun cảm biến ngọn lửa HW-072

Một trong những cảm biến ngọn lửa phổ biến nhất trong các dự án Arduino là Mô-đun Cảm biến Ngọn lửa HW-072. Đây là một cảm biến nhỏ gọn và giá cả phải chăng, hoàn hảo cho các hệ thống phát hiện cháy tự chế, thí nghiệm giáo dục và ứng dụng robot. Nếu bạn mua cảm biến ngọn lửa trực tuyến hoặc mua kèm bộ khởi động, rất có thể đó là HW-072.

Bạn có thể thấy rõ các bộ phận chính của cảm biến ngọn lửa HW-072: chip so sánh LM393, chiết áp ngưỡng và điốt quang IR.

Các tính năng chính của cảm biến ngọn lửa HW-072

Sau đây là những tính năng chính khiến HW-072 trở thành lựa chọn hàng đầu của các nhà sản xuất:

  • Thiết bị này sử dụng bộ thu hồng ngoại (thường là điốt quang) được điều chỉnh để phát hiện ánh sáng hồng ngoại trong phạm vi từ 760 nm đến 1.100 nm, đây là các bước sóng phổ biến do ánh sáng phát ra.
  • Chip so sánh LM393 tích hợp chuyển đổi tín hiệu IR tương tự thành tín hiệu số ổn định.
  • Nó cung cấp cả chân đầu ra kỹ thuật số (DO) và tương tự (AO) :
    • DO : Đầu ra CAO hoặc THẤP tùy thuộc vào khả năng phát hiện ngọn lửa (ngưỡng được thiết lập bởi biến trở trên bo mạch).
    • AO : Điện áp đầu ra thay đổi theo cường độ IR cho phép phát hiện khoảng cách và cường độ ngọn lửa.
  • Trên bo mạch có một biến trở có thể điều chỉnh  để điều chỉnh ngưỡng phát hiện cho đầu ra kỹ thuật số.
  • Đèn LED chỉ báo trạng thái : Một đèn báo trạng thái nguồn (thường là màu xanh lá cây) và đèn còn lại báo phát hiện ngọn lửa (thường là màu đỏ).
  • Nó hoạt động với cả bo mạch Arduino 3,3V và 5V , mang lại sự linh hoạt cho các nền tảng vi điều khiển khác nhau.

Chân cắm cảm biến ngọn lửa HW-072

Sau đây là tài liệu tham khảo nhanh về cách kết nối HW-072 với Arduino của bạn:

Các chân cảm biến ngọn lửa HW-072 có thể dễ dàng kết nối với bảng Arduino bằng dây nối đực-cái hoặc chỉ cần cắm trực tiếp vào bảng mạch.

Hiểu về chip LM393 trong cảm biến ngọn lửa

Hầu hết các cảm biến ngọn lửa được sử dụng trong các dự án Arduino đều được chế tạo bằng chip so sánh LM393. Mạch tích hợp này đóng vai trò quan trọng trong việc diễn giải tín hiệu từ photodiode của cảm biến ngọn lửa (thường là bộ thu hồng ngoại) và cung cấp đầu ra kỹ thuật số ổn định cho Arduino của bạn.

LM393 có thể làm được những gì?

LM393 là bộ so sánh điện áp , nó liên tục so sánh điện áp từ một điốt quang hồng ngoại (thay đổi khi có ngọn lửa) với điện áp tham chiếu được cài đặt trước bởi một biến trở trên mô-đun cảm biến.

  • Nếu mức IR của ngọn lửa được phát hiện vượt quá ngưỡng tham chiếu, LM393 sẽ gửi tín hiệu THẤP đến Arduino để cho biết ngọn lửa đã được phát hiện.
  • Nếu tín hiệu thấp hơn ngưỡng, hệ thống sẽ gửi tín hiệu CAO , nghĩa là không phát hiện thấy ngọn lửa .

Cơ chế chuyển mạch ngưỡng đáng tin cậy này khiến cảm biến ngọn lửa dựa trên LM393 trở nên lý tưởng cho các hệ thống phát hiện cháy DIY dựa trên Arduino, đặc biệt là khi sử dụng chân đầu ra kỹ thuật số (DO) .

Hướng dẫn từng bước để kết nối cảm biến ngọn lửa với Arduino.

1. Hiểu về chân cảm biến ngọn lửa

Một mô-đun cảm biến ngọn lửa thông thường có ba chân:

  • VCC : Kết nối với nguồn điện 5V.
  • GND : Kết nối đất
  • DO : Đầu ra kỹ thuật số, dùng để phát hiện sự hiện diện của ngọn lửa.

2. Hệ thống dây điện

Thực hiện theo sơ đồ đấu dây bên dưới:

  • Kết nối chân VCC của cảm biến ngọn lửa với chân 5V trên Arduino.
  • Kết nối chân GND của cảm biến với chân GND trên Arduino.
  • Kết nối chân DO của cảm biến với chân kỹ thuật số 8 trên Arduino.
  • Kết nối đèn LED với chân kỹ thuật số 13 bằng điện trở 220 ohm nối tiếp.
  • Kết nối còi báo động với chân kỹ thuật số số 9.

3. Kiểm tra kết nối của bạn

Kiểm tra lại tất cả các kết nối trước khi tiến hành mã hóa.

Đây là một ví dụ về mạch cảm biến ngọn lửa. Xin lưu ý rằng mạch này sử dụng một cảm biến ngọn lửa khác. Vui lòng đảm bảo đấu nối mọi thứ chính xác.

Tôi đã lắp cảm biến ngọn lửa HW-072 trực tiếp vào bảng mạch. Luôn kiểm tra: VCC-5V, chân DO-digital và GND-GND.

Để hiểu rõ hơn về Piezo Buzzer, hãy đọc bài viết này: Khám phá tích hợp Piezo Buzzer với Arduino: Hướng dẫn đầy đủ.

Mã Arduino cho cảm biến ngọn lửa

Dưới đây là một ví dụ về mã phát hiện ngọn lửa và gửi báo động bằng đèn LED và còi báo động.

const int flamePin = 8; // Pin connected to flame sensor's DO pin
const int ledPin = 13;  // LED pin
const int buzzerPin = 9; // Buzzer pin

void setup() {
  pinMode(flamePin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600); // Initialize serial communication
}

void loop() {
  int flameDetected = digitalRead(flamePin); // Read flame sensor output

  if (flameDetected == LOW) { // LOW indicates flame detected
    Serial.println("Flame detected!");
    digitalWrite(ledPin, HIGH); // Turn on LED
    digitalWrite(buzzerPin, HIGH); // Activate buzzer
  } else {
    Serial.println("No flame detected.");
    digitalWrite(ledPin, LOW); // Turn off LED
    digitalWrite(buzzerPin, LOW); // Deactivate buzzer
  }

  delay(100); // Delay for stability
}

Mô tả mã

1. Thiết lập kết nối chân.

  • Ở đầu đoạn mã, các hằng số được xác định cho chân cảm biến ngọn lửa, đèn LED và còi báo động.

2. Chức năng cài đặt

  • pinMode() Đặt chế độ chân cho đèn LED cảm biến và âm thanh còi báo.
  • Serial.begin(9600) Bắt đầu giao tiếp nối tiếp để gỡ lỗi

3. Hàm lặp

  • Đọc đầu ra của cảm biến ngọn lửa digitalRead()bằng cách sử dụng
  • Nếu phát hiện ngọn lửa ( ), LOWđèn LED và chuông báo động sẽ được kích hoạt.
  • Nếu không phát hiện ngọn lửa ( HIGH), cả hai sẽ bị vô hiệu hóa.

4. Đầu ra nối tiếp

  • Màn hình nối tiếp hiển thị các thông báo theo thời gian thực, giúp bạn hiểu được các chỉ số từ cảm biến.

Kiểm tra và gỡ lỗi

1. Mở màn hình nối tiếp.

Tải mã lên và mở Serial Monitor trong Arduino IDE. Kiểm tra phản hồi của cảm biến bằng cách đặt nó vào ngọn lửa (chẳng hạn như bật lửa hoặc nến).

2. Hiệu chỉnh cảm biến.

Một số cảm biến ngọn lửa có kèm theo biến trở để điều chỉnh độ nhạy. Hãy thử nghiệm với các cài đặt khác nhau để có kết quả tốt nhất.

3. An toàn là trên hết.

Cần cẩn thận khi xử lý nguồn gây cháy trong quá trình thử nghiệm. Cần đặt bình chữa cháy gần đó.

Mô phỏng còi báo cháy

Hãy điều chỉnh dự án này bằng cách mô phỏng tiếng còi báo động xe cứu hỏa. Thay vì chỉ dùng tiếng bíp đơn giản, chúng ta sẽ tạo ra một còi báo động hai âm  (luân phiên giữa hai âm khác nhau theo nhịp điệu đều đặn) mô phỏng tiếng còi báo động khẩn cấp thực sự, khiến nó trở nên thú vị hơn.

Sau đây là một số mã đã sửa đổi sử dụng hàm tone() để mô phỏng tiếng còi báo cháy, tương tự như tiếng xe cứu hỏa:

const int flamePin = 8; // Pin connected to flame sensor's DO pin
const int ledPin = 13;  // LED pin
const int buzzerPin = 9; // Buzzer pin

void setup() {
  pinMode(flamePin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600); // Initialize serial communication
}

void loop() {
  int flameDetected = digitalRead(flamePin); // Read flame sensor output

  if (flameDetected == LOW) { // LOW indicates flame detected
    Serial.println("Flame detected!");
    digitalWrite(ledPin, HIGH); // Turn on LED
    fireAlarm(); // Simulate fire alarm siren
  } else {
    Serial.println("No flame detected.");
    digitalWrite(ledPin, LOW); // Turn off LED
    noTone(buzzerPin); // Stop buzzer sound
  }

  delay(100); // Delay for stability
}

// Function to simulate fire alarm siren
void fireAlarm() {
  int highTone = 1000; // High pitch frequency (Hz)
  int lowTone = 600;   // Low pitch frequency (Hz)
  int duration = 400;  // Duration of each tone (milliseconds)

  // Play alternating high and low tones
  for (int i = 0; i < 5; i++) { // Repeat the siren pattern 5 times
    tone(buzzerPin, highTone);
    delay(duration);
    tone(buzzerPin, lowTone);
    delay(duration);
  }

  noTone(buzzerPin); // Stop the buzzer after the loop
}

Mô tả sự thay đổi

1. Thêm hàm fireAlarm().

  • Chức năng này tạo ra hiệu ứng còi báo động bằng cách liên tục tăng và giảm tần số âm thanh.
  • Hàm tone() này được sử dụng để tạo ra âm thanh ở tần số được chỉ định.

2. Bên trong hàm loop()

  • Khi phát hiện ngọn lửa (THẤP), hàm fireAlarm() sẽ được gọi và đèn LED sẽ bật sáng.
  • Nếu không phát hiện ngọn lửa (cao), hàm noTone() sẽ dừng còi báo động.

3. Hiệu ứng còi báo động có thể tùy chỉnh

  • Có thể điều chỉnh dải tần số còi báo động (500 Hz đến 1.000 Hz) và độ trễ (10 ms) để điều chỉnh tốc độ và âm lượng còi báo động.

Sử dụng các chân analog của cảm biến ngọn lửa

Đây là một phiên bản khác của mã sử dụng chân analog để đọc đầu ra của cảm biến ngọn lửa. Việc sử dụng chân analog cho phép chúng ta đo cường độ ngọn lửa được phát hiện bằng cách đọc các mức điện áp khác nhau.

Mã Arduino được cập nhật (sử dụng chân analog)

const int flamePin = A0; // Analog pin connected to flame sensor's AO pin
const int ledPin = 13;   // LED pin
const int buzzerPin = 9; // Buzzer pin

// Flame detection threshold (adjust based on your sensor and environment)
const int threshold = 300;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600); // Initialize serial communication
}

void loop() {
  int flameIntensity = analogRead(flamePin); // Read analog value from flame sensor
  Serial.print("Flame Sensor Value: ");
  Serial.println(flameIntensity);

  if (flameIntensity < threshold) { // Flame detected
    Serial.println("Flame detected!");
    digitalWrite(ledPin, HIGH); // Turn on LED
    fireAlarm(); // Simulate fire alarm siren
  } else {
    Serial.println("No flame detected.");
    digitalWrite(ledPin, LOW); // Turn off LED
    noTone(buzzerPin); // Stop buzzer sound
  }

  delay(100); // Delay for stability
}

// Function to simulate fire alarm siren
void fireAlarm() {
  for (int freq = 500; freq <= 1000; freq += 10) { // Ascending frequency
    tone(buzzerPin, freq);
    delay(10);
  }
  for (int freq = 1000; freq >= 500; freq -= 10) { // Descending frequency
    tone(buzzerPin, freq);
    delay(10);
  }
}

Mô tả các thay đổi

1. Bằng cách sử dụng analogRead()

  • Chân AO (đầu ra tương tự) của cảm biến ngọn lửa được kết nối với chân A0 của Arduino.
  • Hàm này analogRead() sẽ đọc giá trị từ 0 đến 1023 , biểu thị cường độ ngọn lửa.

2. Tiêu chí phát hiện ngọn lửa

  • Đặt giá trị ngưỡng (300 trong ví dụ này) để xác định xem có ngọn lửa hay không.
  • Nếu giá trị đọc thấp hơn ngưỡng tiêu chuẩn, ngọn lửa sẽ được phát hiện. Hãy điều chỉnh giá trị này tùy theo môi trường và độ nhạy của cảm biến.

3. Kiểm tra cường độ ngọn lửa

  • Giá trị cảm biến ngọn lửa được in ra Serial Monitor, cho phép bạn quan sát dữ liệu theo thời gian thực và điều chỉnh ngưỡng nếu cần.

4. Tín hiệu cảnh báo LED và hành vi

  • Khi phát hiện ngọn lửa, đèn LED sẽ bật sáng và âm thanh báo động sẽ vang lên giống như xe cứu hỏa đang sử dụng fireAlarm() chức năng này.
  • Khi không phát hiện ngọn lửa, đèn LED sẽ tắt và còi sẽ dừng noTone().

Ưu điểm của việc sử dụng chân analog

  • Độ nhạy tăng lên : Cho phép bạn đo cường độ ngọn lửa, không chỉ phát hiện sự hiện diện của ngọn lửa.
  • Tiêu chí có thể tùy chỉnh : Cung cấp tính linh hoạt cho các môi trường và thay đổi cảm biến khác nhau.

Phiên bản mã này đã cải thiện chức năng bằng cách tận dụng đầu ra tương tự của cảm biến ngọn lửa, khiến nó trở nên lý tưởng cho các dự án yêu cầu phát hiện ngọn lửa chính xác hơn.

Phạm vi phát hiện và hướng của cảm biến ngọn lửa

Khi thiết kế dự án, điều quan trọng là phải hiểu những hạn chế vật lý của cảm biến ngọn lửa về khoảng cách và góc.

Phạm vi phát hiện

  • Hầu hết các cảm biến ngọn lửa có thể phát hiện ngọn lửa ở khoảng cách từ 30 cm đến 80 cm (khoảng 12 đến 32 inch ) trong điều kiện ánh sáng trong nhà bình thường.
  • Phạm vi phụ thuộc vào:
  • Kích thước ngọn lửa (ngọn lửa lớn hơn phát ra nhiều ánh sáng hồng ngoại hơn )
  • Ánh sáng xung quanh (ánh sáng mặt trời chói chang hoặc bề mặt phản chiếu có thể gây nhiễu)
  • Chất lượng cảm biến và độ nhạy của bộ lọc IR

Hướng phát hiện (góc nhìn)

  • Hầu hết các cảm biến ngọn lửa có góc phát hiện khoảng 60 đến 120 độ.
  • Điều này có nghĩa là nó hoạt động tốt nhất khi ngọn lửa ở ngay trước cảm biến .
  • Nếu bạn sử dụng cảm biến trong phòng lớn hơn hoặc cần phạm vi bao phủ 360°, hãy cân nhắc lắp đặt nhiều cảm biến theo các hướng khác nhau để theo dõi ngọn lửa tốt hơn.

Cách LM393 và các thông số kỹ thuật phát hiện của nó giúp bạn xây dựng các dự án thông minh hơn

Hiểu được cách chip LM393 xử lý tín hiệu hồng ngoại, cũng như phạm vi phát hiện và hướng phát hiện hiệu quả của nó, sẽ giúp bạn thiết kế hệ thống phát hiện cháy đáng tin cậy hơn. Ví dụ:

  • Bạn có thể đặt cảm biến ngọn lửa ở khoảng cách phù hợp để bao phủ bếp gas hoặc nến.
  • Bạn có thể lập trình Arduino để chỉ phản hồi khi ngọn lửa ở đủ gần để gây ra mối đe dọa.
  • Bạn có thể hiệu chỉnh độ nhạy để dự án của bạn không tạo ra báo động giả do nhiệt từ bóng đèn hoặc ánh sáng mặt trời.

Mẹo về hiệu suất cho người dùng HW-072

Sau đây là một số mẹo giúp bạn tận dụng tối đa mô-đun cảm biến ngọn lửa HW-072:

  • Giữ cảm biến sạch sẽ : Bụi và khói có thể làm giảm độ chính xác.
  • Tránh ánh nắng trực tiếp : Nguồn sáng hồng ngoại mạnh như mặt trời có thể gây ra báo động giả.
  • Sử dụng nắp đậy hoặc tấm chắn : Nếu cảm biến được đặt ở khu vực có gió hoặc sáng, hãy sử dụng nắp đậy hoặc tấm chắn để cải thiện hiệu suất.
  • Điều chỉnh chính xác biến trở : Sử dụng các vít trên bảng để điều chỉnh độ nhạy — theo chiều kim đồng hồ thường làm tăng độ nhạy, ngược chiều kim đồng hồ sẽ làm giảm độ nhạy.

Phần kết luận

Mô-đun cảm biến ngọn lửa HW-072 là một cảm biến mạnh mẽ nhưng dễ sử dụng dành cho người mới bắt đầu. Nó cho phép phát hiện ngọn lửa dễ dàng bằng Arduino. Với bộ so sánh LM393 tích hợp , hai đầu ra analog và kỹ thuật số , cùng độ nhạy có thể điều chỉnh , nó mang lại sự đơn giản và linh hoạt cho mọi loại dự án phát hiện cháy hoặc tự động hóa an toàn.

Làm theo hướng dẫn này sẽ giúp bạn học cách sử dụng cảm biến ngọn lửa với Arduino, kết nối thiết bị, tải mã và kiểm tra hệ thống hiệu quả. Dự án này là điểm khởi đầu tuyệt vời cho người mới bắt đầu sử dụng Arduino và cung cấp các kỹ năng quý giá để xây dựng các ứng dụng tập trung vào an toàn.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Win a Raspberry Pi!

Answer 5 questions for your chance to win!
Question 1

What color is the sky?

Tìm kiếm bằng danh mục

Chọn danh mục