บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนนี้จะแสดงวิธีใช้ Arduino และเซ็นเซอร์เปลวไฟเพื่อตรวจจับไฟไหม้และเปิดใช้งานระบบแจ้งเตือน

บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

ลองนึกภาพว่ามีระบบที่สามารถตรวจจับเพลิงไหม้ได้ตั้งแต่ระยะเริ่มต้น ซึ่งอาจช่วยชีวิตและทรัพย์สินได้ นี่คือสิ่งที่คุณสามารถทำได้ด้วย Arduino และเซ็นเซอร์ตรวจจับเปลวไฟ คู่มือนี้จะให้คำแนะนำโดยละเอียดเกี่ยวกับการใช้งานเซ็นเซอร์ตรวจจับเปลวไฟร่วมกับ Arduino พร้อมคำอธิบายการใช้งานจริง คำแนะนำทีละขั้นตอน และโค้ด Arduino ที่เข้าใจง่าย

เซ็นเซอร์เปลวไฟ HW-072 ราคาไม่แพงและเป็นที่นิยมสามารถติดตั้งบนแผงทดลองได้

เซ็นเซอร์เปลวไฟคืออะไร และเหตุใดคุณจึงควรใช้มัน?

เซ็นเซอร์เปลวไฟคืออุปกรณ์ที่ตรวจจับแสงอินฟราเรดที่เกิดจากไฟ มักใช้ในระบบความปลอดภัยเพื่อตรวจจับเปลวไฟหรือเพลิงไหม้ เซ็นเซอร์เหล่านี้มีราคาไม่แพงและมีประสิทธิภาพอย่างเหลือเชื่อ จึงเหมาะอย่างยิ่งสำหรับโครงการต่างๆ เช่น:

  • ระบบตรวจจับไฟไหม้ในบ้าน
  • หุ่นยนต์ที่มีความสามารถในการดับเพลิง
  • ระบบความปลอดภัยในอุตสาหกรรม

ด้วยบอร์ด Arduino และเซ็นเซอร์เปลวไฟ คุณสามารถสร้างโปรเจ็กต์ที่ตรวจจับเปลวไฟและแจ้งเตือน เช่น การเปิดเสียงเตือน การส่งการแจ้งเตือน หรือการควบคุมอุปกรณ์อื่นๆ เช่น เครื่องพ่นน้ำหรือพัดลม

วัสดุที่จำเป็นสำหรับโครงการนี้

ก่อนจะเข้าสู่กระบวนการทีละขั้นตอน ให้รวบรวมส่วนประกอบต่อไปนี้:

  • Arduino Uno (หรือบอร์ดที่เข้ากันได้)
  • โมดูลเซ็นเซอร์เปลวไฟ
  • บัซเซอร์ (ฉันใช้บัซเซอร์เพียโซสำหรับโครงการนี้)
  • นำ
  • ตัวต้านทาน (220 โอห์มสำหรับ LED)
  • แผงทดลองและสายจัมเปอร์
  • ติดตั้งสาย USB และ Arduino IDE แล้ว

เจาะลึกโมดูลเซ็นเซอร์เปลวไฟ HW-072

หนึ่งในเซ็นเซอร์เปลวไฟที่ได้รับความนิยมมากที่สุดในโครงการ Arduino คือ โมดูลเซ็นเซอร์เปลวไฟ HW-072เป็นเซ็นเซอร์ขนาดกะทัดรัดและราคาไม่แพง เหมาะสำหรับระบบตรวจจับไฟไหม้แบบ DIY การทดลองทางการศึกษา และการประยุกต์ใช้กับหุ่นยนต์ หากคุณซื้อเซ็นเซอร์เปลวไฟทางออนไลน์หรือเป็นส่วนหนึ่งของชุดเริ่มต้น มีโอกาสสูงที่จะเป็นรุ่น HW-072

คุณสามารถมองเห็นส่วนหลักของเซ็นเซอร์เปลวไฟ HW-072 ได้อย่างชัดเจน: ชิปเปรียบเทียบ LM393, โพเทนชิออมิเตอร์เกณฑ์ และโฟโตไดโอด IR

คุณสมบัติหลักของเซ็นเซอร์เปลวไฟ HW-072

ต่อไปนี้คือคุณสมบัติหลักที่ทำให้ HW-072 เป็นตัวเลือกอันดับต้นๆ ของผู้ผลิต:

  • ใช้ตัวรับ IR (โดยทั่วไปคือโฟโตไดโอด) ที่ปรับแต่งมาเพื่อตรวจจับ แสงอินฟราเรดในช่วง 760 นาโนเมตรถึง 1,100 นาโนเมตรซึ่งเป็นความยาวคลื่นทั่วไปที่ปล่อยออกมาจากไฟ
  • ชิปเปรียบเทียบ LM393ในตัว  ที่แปลงการอ่านค่า IR แบบอะนาล็อกให้เป็นสัญญาณดิจิทัลที่เสถียร
  • นำเสนอ พินเอาต์พุตทั้งแบบดิจิทัล (DO) และแบบอนาล็อก (AO) :
    • DO : เอาต์พุต HIGH หรือ LOW ขึ้นอยู่กับการตรวจจับเปลวไฟ (ตั้งค่าเกณฑ์โดยโพเทนชิออมิเตอร์บนบอร์ด)
    • AO : เอาต์พุตแรงดันไฟฟ้าที่แปรผันตามความเข้มของ IR ช่วยให้ตรวจจับระยะห่างและความเข้มข้นของเปลวไฟได้
  • มี โพเทนชิออมิเตอร์แบบปรับได้บนบอร์ด เพื่อปรับแต่งเกณฑ์การตรวจจับสำหรับเอาต์พุตดิจิทัล
  • ไฟแสดงสถานะ LED : ดวงหนึ่งแสดงสถานะพลังงาน (ปกติเป็นสีเขียว) และอีกดวงแสดงการตรวจจับเปลวไฟ (ปกติเป็นสีแดง)
  • ใช้งานได้กับ บอร์ด Arduino 3.3V และ 5V จึงมีความยืดหยุ่นสำหรับแพลตฟอร์มไมโครคอนโทรลเลอร์ต่างๆ

พินเอาต์เซ็นเซอร์เปลวไฟ HW-072

นี่คือข้อมูลอ้างอิงด่วนสำหรับการเชื่อมต่อ HW-072 เข้ากับ Arduino ของคุณ:

สามารถเชื่อมต่อพินของเซ็นเซอร์เปลวไฟ HW-072 เข้ากับบอร์ด Arduino ได้อย่างง่ายดายโดยใช้สายจัมเปอร์ตัวเมีย-ตัวผู้ หรือเพียงแค่เสียบเข้ากับแผงทดลองโดยตรง

ทำความเข้าใจชิป LM393 ในเซ็นเซอร์เปลวไฟ

เซ็นเซอร์เปลวไฟส่วนใหญ่ที่ใช้ในโครงการ Arduino สร้างขึ้นโดยใช้ ชิปเปรียบเทียบ LM393วงจรรวมนี้มีบทบาทสำคัญในการตีความสัญญาณจากโฟโตไดโอดของเซ็นเซอร์เปลวไฟ (โดยปกติคือตัวรับสัญญาณ IR) และให้เอาต์พุตดิจิทัลที่เสถียรไปยัง Arduino ของคุณ

LM393 ทำอะไรได้บ้าง?

LM393 คือ เครื่องเปรียบเทียบแรงดันไฟฟ้าโดยจะเปรียบเทียบแรงดันไฟฟ้าที่มาจากโฟโตไดโอดอินฟราเรด (ซึ่งจะเปลี่ยนแปลงเมื่อมีเปลวไฟ) กับแรงดันไฟฟ้าอ้างอิงที่ตั้งไว้ล่วงหน้าโดยโพเทนชิออมิเตอร์บนโมดูลเซ็นเซอร์อย่างต่อเนื่อง

  • หากระดับ IR ของเปลวไฟที่ตรวจพบเกินเกณฑ์อ้างอิง LM393 จะส่ง สัญญาณ LOW ไปยัง Arduino เพื่อระบุว่า ตรวจพบเปลวไฟ
  • หากสัญญาณต่ำกว่าเกณฑ์ ระบบจะส่ง สัญญาณ HIGH ซึ่งหมายความว่า ไม่ตรวจพบเปลวไฟ

กลไกการสลับตามเกณฑ์ที่เชื่อถือได้นี้ทำให้เซนเซอร์เปลวไฟที่ใช้ LM393 เหมาะอย่างยิ่งสำหรับระบบตรวจจับไฟไหม้แบบ DIY ที่ใช้ Arduino โดยเฉพาะอย่างยิ่งเมื่อใช้  พินเอาต์พุตดิจิทัล (DO)

คู่มือทีละขั้นตอนในการเชื่อมต่อเซ็นเซอร์เปลวไฟกับ Arduino

1. ทำความเข้าใจเกี่ยวกับพินเซ็นเซอร์เปลวไฟ
โมดูลเซ็นเซอร์เปลวไฟโดยทั่วไปจะมีสามพิน:

  • VCC : เชื่อมต่อกับแหล่งจ่ายไฟ 5V
  • GND : การเชื่อมต่อกราวด์
  • DO : เอาท์พุตแบบดิจิตอล ใช้เพื่อตรวจจับการมีอยู่ของเปลวไฟ

2. การเดินสายวงจร
ปฏิบัติตามแผนผังสายไฟด้านล่าง:

  • เชื่อมต่อ พิน VCC ของเซ็นเซอร์เปลวไฟเข้ากับ พิน 5V บน Arduino
  • เชื่อมต่อ พิน GND ของเซ็นเซอร์เข้ากับ พิน GND บน Arduino
  • เชื่อมต่อ พิน DO ของเซ็นเซอร์กับ พินดิจิทัล 8 บน Arduino
  • เชื่อมต่อ LED เข้ากับ พินดิจิทัล 13โดยมีตัวต้านทาน 220 โอห์มแบบอนุกรม
  • เชื่อมต่อบัซเซอร์เข้ากับ พินดิจิทัล 9

3. ตรวจสอบการเชื่อมต่อของคุณ
ตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้งก่อนดำเนินการเข้ารหัส

นี่คือตัวอย่างวงจรแผงทดลองที่ใช้เซ็นเซอร์เปลวไฟ โปรดทราบว่าวงจรนี้ใช้เซ็นเซอร์เปลวไฟรุ่นอื่น โปรดตรวจสอบให้แน่ใจว่าได้ต่อสายทุกอย่างอย่างถูกต้อง

ผมติดตั้งเซ็นเซอร์เปลวไฟ HW-072 เข้ากับแผงทดลองโดยตรง ควรตรวจสอบ: VCC-5V, DO-pin ดิจิทัล และ GND-GND เสมอ

หากต้องการความเข้าใจเกี่ยวกับ Piezo Buzzer ที่ดีขึ้น โปรดอ่านบทความนี้: การสำรวจการรวม Piezo Buzzer เข้ากับ Arduino: คู่มือฉบับสมบูรณ์

รหัส Arduino สำหรับเซ็นเซอร์เปลวไฟ

ด้านล่างนี้เป็นตัวอย่างโค้ดที่ใช้ตรวจจับเปลวไฟและส่งสัญญาณเตือนโดยใช้ LED และเสียงบัซเซอร์

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
}

คำอธิบายโค้ด

1. กำหนดการเชื่อมต่อพิน

  • ในตอนต้นของโค้ด จะมีการกำหนดค่าคงที่สำหรับพินเซ็นเซอร์เปลวไฟ LED และบัซเซอร์

2. ฟังก์ชั่นการตั้งค่า

  • pinMode() ตั้งค่าโหมดพินสำหรับเซ็นเซอร์ LED และเสียงบัซเซอร์
  • Serial.begin(9600) เริ่มต้นการสื่อสารแบบอนุกรมเพื่อแก้ไขข้อบกพร่อง

3. ฟังก์ชันลูป

  • อ่านเอาท์พุตของเซ็นเซอร์เปลวไฟโดย digitalRead()ใช้
  • หากตรวจพบเปลวไฟ ( LOW) ไฟ LED และเสียงสัญญาณเตือนจะทำงาน
  • หากไม่ตรวจพบเปลวไฟ ( HIGH) ทั้งสองจะถูกปิดการใช้งาน

4. เอาท์พุตแบบอนุกรม

  • จอภาพแบบอนุกรมจะแสดงข้อความแบบเรียลไทม์ ช่วยให้คุณเข้าใจค่าที่อ่านได้จากเซ็นเซอร์

การทดสอบและการดีบัก

1. เปิดตัวตรวจสอบแบบอนุกรม
อัปโหลดโค้ดและเปิด Serial Monitor ใน Arduino IDE ตรวจสอบการตอบสนองของเซ็นเซอร์โดยนำไปวางในเปลวไฟ (เช่น ไฟแช็กหรือเทียน)

2. ปรับเทียบเซ็นเซอร์
เซ็นเซอร์เปลวไฟบางรุ่นมาพร้อมกับโพเทนชิออมิเตอร์สำหรับปรับความไว ทดลองตั้งค่าต่างๆ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

3. ความปลอดภัยต้องมาก่อน
ควรใช้ความระมัดระวังในการจัดการแหล่งกำเนิดไฟระหว่างการทดสอบ ควรมีถังดับเพลิงไว้ใกล้ตัว

จำลองไซเรนแจ้งเตือนเหตุเพลิงไหม้

ลองปรับเปลี่ยนโครงการนี้โดยจำลอง สัญญาณเตือนแบบรถดับเพลิงแทนที่จะใช้เสียงบี๊บธรรมดา เราจะสร้าง เสียงไซเรนสองโทน (สลับระหว่างสองโทนที่ต่างกันซ้ำๆ กันเป็นจังหวะคงที่) ซึ่งเลียนแบบสัญญาณเตือนฉุกเฉินจริง ทำให้น่าสนใจยิ่งขึ้น

นี่คือโค้ดที่แก้ไขโดยใช tone() ฟังก์ชันเพื่อจำลองเสียงไซเรนแจ้งเตือนเหตุเพลิงไหม้ คล้ายกับรถดับเพลิง:

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
}

คำอธิบายการเปลี่ยนแปลง

1. เพิ่ม fireAlarm()ฟังก์ชั่น

  • ฟังก์ชั่นนี้จะสร้างเอฟเฟกต์ไซเรนโดยการเพิ่มและลดความถี่ของเสียงอย่างต่อเนื่อง
  • ฟังก์ชั่น นี้ tone() ใช้สร้างเสียงตามความถี่ที่กำหนด

2. ภายใน loop() ฟังก์ชั่น

  • เมื่อตรวจพบเปลวไฟ ( LOW)fireAlarm() ฟังก์ชันจะถูกเรียกใช้และไฟ LED จะเปิดขึ้น
  • หากไม่ตรวจพบเปลวไฟ (สูง) ฟังก์ชัน noTone() จะหยุดเสียงกริ่ง

3. เอฟเฟกต์ไซเรนที่ปรับแต่งได้

  • สามารถปรับช่วงความถี่ไซเรน (500 เฮิรตซ์ ถึง 1,000 เฮิรตซ์) และความล่าช้า (10 มิลลิวินาที) เพื่อปรับความเร็วและระดับเสียงของไซเรนได้

การใช้พินอะนาล็อกของเซ็นเซอร์เปลวไฟ

นี่คือโค้ดอีกเวอร์ชันหนึ่งที่ใช้ พินอะนาล็อก เพื่ออ่านเอาต์พุตของเซ็นเซอร์เปลวไฟ การใช้พินอะนาล็อกช่วยให้เราสามารถวัดความเข้มของเปลวไฟที่ตรวจจับได้โดยการอ่านระดับแรงดันไฟฟ้าที่แตกต่างกัน

อัปเดตโค้ด Arduino (ใช้พินอนาล็อก)

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);
  }
}

คำอธิบายการเปลี่ยนแปลง

1. โดยใช้ analogRead()

  • พิน AO (เอาต์พุตแบบแอนะล็อก) ของเซ็นเซอร์เปลวไฟ  เชื่อมต่อกับ พิน A0 ของ Arduino
  • ฟังก์ชัน นี้ analogRead() จะอ่านค่าระหว่าง 0 ถึง 1023ซึ่งแสดงถึงความเข้มข้นของเปลวไฟ

2. เกณฑ์สำหรับการตรวจจับเปลวไฟ

  • กำหนดค่าเกณฑ์ (300 ในตัวอย่างนี้) เพื่อกำหนดว่ามีเปลวไฟอยู่หรือไม่
  • หากค่าที่อ่านได้ต่ำกว่าเกณฑ์มาตรฐาน แสดงว่าตรวจพบเปลวไฟ ปรับค่านี้ตามสภาพแวดล้อมและความไวของเซ็นเซอร์

3. การตรวจสอบความเข้มของเปลวไฟ

  • ค่าเซ็นเซอร์เปลวไฟจะถูกพิมพ์ลงใน Serial Monitor ช่วยให้คุณสามารถสังเกตข้อมูลแบบเรียลไทม์และปรับเกณฑ์หากจำเป็น

4. สัญญาณเตือนและพฤติกรรม LED

  • เมื่อตรวจพบเปลวไฟ LED จะเปิดขึ้น และเสียงสัญญาณเตือนจะดังขึ้นเหมือนรถดับเพลิงโดยใช้ fireAlarm() ฟังก์ชันนี้
  • เมื่อไม่ตรวจพบเปลวไฟ LED จะดับลง และเสียงบัซเซอร์จะหยุดลง noTone()ด้วย

ข้อดีของการใช้พินอะนาล็อก

  • ความไวที่เพิ่มขึ้น : ช่วยให้คุณวัดความเข้มข้นของเปลวไฟ ไม่ใช่แค่ตรวจจับการมีอยู่ของเปลวไฟเท่านั้น
  • เกณฑ์ที่ปรับแต่งได้ : ให้ความยืดหยุ่นสำหรับสภาพแวดล้อมที่แตกต่างกันและการเปลี่ยนแปลงของเซ็นเซอร์

เวอร์ชันของโค้ดนี้มีฟังก์ชันการทำงานที่ได้รับการปรับปรุงโดยใช้ประโยชน์จากเอาต์พุตแอนะล็อกของเซ็นเซอร์เปลวไฟ ทำให้เหมาะอย่างยิ่งสำหรับโครงการที่ต้องการการตรวจจับเปลวไฟที่แม่นยำยิ่งขึ้น

ระยะการตรวจจับและทิศทางของเซ็นเซอร์เปลวไฟ

เมื่อออกแบบโครงการของคุณ สิ่งสำคัญคือต้องเข้าใจ ข้อจำกัดทางกายภาพ ของเซ็นเซอร์เปลวไฟในแง่ของ ระยะทาง และ มุม

ระยะการตรวจจับ

  • เซนเซอร์เปลวไฟส่วนใหญ่สามารถตรวจจับเปลวไฟได้ในระยะประมาณ 30 ซม. ถึง 80 ซม. (ประมาณ 12 ถึง 32 นิ้ว ) ภายใต้สภาวะแสงภายในอาคารปกติ
  • ช่วงขึ้นอยู่กับ:
    • ขนาด  ของเปลวไฟ (เปลวไฟที่ใหญ่ขึ้นจะปล่อยแสงอินฟราเรดออกมามากขึ้น)
    • แสงโดยรอบ (แสงแดดที่สดใสหรือพื้นผิวสะท้อนแสงอาจรบกวน)
    • คุณภาพเซ็นเซอร์ และ ความไวของฟิล เตอร์IR

ทิศทางการตรวจจับ (มุมมอง)

  • เซ็นเซอร์เปลวไฟส่วนใหญ่มี มุมตรวจจับประมาณ 60 ถึง 120องศา
  • ซึ่งหมายความว่าจะ ทำงานได้ดีที่สุดเมื่อเปลวไฟอยู่ตรงหน้าเซ็นเซอร์โดยตรง
  • หากคุณใช้เซ็นเซอร์ในห้องที่กว้างขึ้นหรือต้องการครอบคลุม 360° ควรพิจารณา ติดตั้งเซ็นเซอร์หลายตัว ในทิศทางที่ต่างกันเพื่อให้ติดตามเปลวไฟได้ดีขึ้น

LM393 และข้อมูลจำเพาะการตรวจจับช่วยให้คุณสร้างโครงการที่ชาญฉลาดขึ้นได้อย่างไร

การทำความเข้าใจว่า ชิป LM393 ประมวลผลสัญญาณอินฟราเรดอย่างไร และการรู้ ระยะและทิศทางการตรวจจับที่มีประสิทธิภาพจะช่วยให้คุณออกแบบ ระบบตรวจจับไฟไหม้ที่เชื่อถือได้มากขึ้นตัวอย่างเช่น:

  • คุณสามารถ วางเซ็นเซอร์เปลวไฟไว้ ในระยะที่ถูกต้องเพื่อครอบคลุมเตาแก๊สหรือเทียนได้
  • คุณสามารถตั้งโปรแกรม Arduino ให้ตอบสนอง เฉพาะเมื่อมีเปลวไฟอยู่ใกล้พอ ที่จะก่อให้เกิดภัยคุกคามได้
  • คุณสามารถปรับเทียบความไวเพื่อให้โครงการของคุณไม่ก่อให้เกิดสัญญาณเตือนเท็จเนื่องจากความร้อนจากหลอดไฟหรือแสงแดด

เคล็ดลับประสิทธิภาพสำหรับผู้ใช้ HW-072

ต่อไปนี้เป็นเคล็ดลับบางประการที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากโมดูลเซ็นเซอร์เปลวไฟ HW-072:

  • รักษาเซ็นเซอร์ให้สะอาด : ฝุ่นละอองและควันตกค้างสามารถลดความแม่นยำได้
  • หลีกเลี่ยงแสงแดดโดยตรง : แหล่งกำเนิดแสง IR ที่สว่าง เช่น ดวงอาทิตย์ อาจทำให้เกิดสัญญาณเตือนภัยผิดพลาดได้
  • ใช้แผ่นปิดหรือแผงปิด : หากวางเซ็นเซอร์ไว้ในบริเวณที่มีลมแรงหรือแสงสว่าง ให้ใช้แผ่นปิดหรือแผงปิดเพื่อปรับปรุงประสิทธิภาพ
  • ปรับแต่งโพเทนชิออมิเตอร์ให้ละเอียด : ใช้สกรูบนบอร์ดเพื่อปรับความไว — ตามเข็มนาฬิกาโดยปกติจะเพิ่มความไว ทวนเข็มนาฬิกาจะลดลง

บทสรุป

โมดูล เซ็นเซอร์เปลวไฟ HW-072 เป็นเซ็นเซอร์ที่ทรงพลังแต่ใช้งานง่ายสำหรับผู้เริ่มต้น ช่วยให้ตรวจจับเปลวไฟได้อย่างง่ายดายด้วย Arduino ด้วยตัว เปรียบเทียบ LM393ใน ตัว เอาต์พุตอะนาล็อกและดิจิทัลคู่และ ความไวที่ปรับได้จึงมอบทั้งความเรียบง่ายและความยืดหยุ่นสำหรับโครงการตรวจจับเพลิงไหม้หรือระบบอัตโนมัติด้านความปลอดภัยทุกประเภท

การทำตามคำแนะนำนี้จะช่วยให้คุณเรียนรู้วิธีใช้เซ็นเซอร์เปลวไฟกับ Arduino การเชื่อมต่ออุปกรณ์ อัปโหลดโค้ด และทดสอบระบบอย่างมีประสิทธิภาพ โปรเจกต์นี้เป็นจุดเริ่มต้นที่ดีสำหรับผู้เริ่มต้นใช้งาน Arduino และมอบทักษะอันทรงคุณค่าสำหรับการสร้างแอปพลิเคชันที่เน้นความปลอดภัย

บทความที่เกี่ยวข้อง

บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนนี้จะแสดงวิธีใช้ Arduino และเซ็นเซอร์เปลวไฟเพื่อตรวจจับไฟไหม้และเปิดใช้งานระบบแจ้งเตือน

นักเขียนบทความ
by 
นักเขียนบทความ
บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนนี้จะแสดงวิธีใช้ Arduino และเซ็นเซอร์เปลวไฟเพื่อตรวจจับไฟไหม้และเปิดใช้งานระบบแจ้งเตือน

ลองนึกภาพว่ามีระบบที่สามารถตรวจจับเพลิงไหม้ได้ตั้งแต่ระยะเริ่มต้น ซึ่งอาจช่วยชีวิตและทรัพย์สินได้ นี่คือสิ่งที่คุณสามารถทำได้ด้วย Arduino และเซ็นเซอร์ตรวจจับเปลวไฟ คู่มือนี้จะให้คำแนะนำโดยละเอียดเกี่ยวกับการใช้งานเซ็นเซอร์ตรวจจับเปลวไฟร่วมกับ Arduino พร้อมคำอธิบายการใช้งานจริง คำแนะนำทีละขั้นตอน และโค้ด Arduino ที่เข้าใจง่าย

เซ็นเซอร์เปลวไฟ HW-072 ราคาไม่แพงและเป็นที่นิยมสามารถติดตั้งบนแผงทดลองได้

เซ็นเซอร์เปลวไฟคืออะไร และเหตุใดคุณจึงควรใช้มัน?

เซ็นเซอร์เปลวไฟคืออุปกรณ์ที่ตรวจจับแสงอินฟราเรดที่เกิดจากไฟ มักใช้ในระบบความปลอดภัยเพื่อตรวจจับเปลวไฟหรือเพลิงไหม้ เซ็นเซอร์เหล่านี้มีราคาไม่แพงและมีประสิทธิภาพอย่างเหลือเชื่อ จึงเหมาะอย่างยิ่งสำหรับโครงการต่างๆ เช่น:

  • ระบบตรวจจับไฟไหม้ในบ้าน
  • หุ่นยนต์ที่มีความสามารถในการดับเพลิง
  • ระบบความปลอดภัยในอุตสาหกรรม

ด้วยบอร์ด Arduino และเซ็นเซอร์เปลวไฟ คุณสามารถสร้างโปรเจ็กต์ที่ตรวจจับเปลวไฟและแจ้งเตือน เช่น การเปิดเสียงเตือน การส่งการแจ้งเตือน หรือการควบคุมอุปกรณ์อื่นๆ เช่น เครื่องพ่นน้ำหรือพัดลม

วัสดุที่จำเป็นสำหรับโครงการนี้

ก่อนจะเข้าสู่กระบวนการทีละขั้นตอน ให้รวบรวมส่วนประกอบต่อไปนี้:

  • Arduino Uno (หรือบอร์ดที่เข้ากันได้)
  • โมดูลเซ็นเซอร์เปลวไฟ
  • บัซเซอร์ (ฉันใช้บัซเซอร์เพียโซสำหรับโครงการนี้)
  • นำ
  • ตัวต้านทาน (220 โอห์มสำหรับ LED)
  • แผงทดลองและสายจัมเปอร์
  • ติดตั้งสาย USB และ Arduino IDE แล้ว

เจาะลึกโมดูลเซ็นเซอร์เปลวไฟ HW-072

หนึ่งในเซ็นเซอร์เปลวไฟที่ได้รับความนิยมมากที่สุดในโครงการ Arduino คือ โมดูลเซ็นเซอร์เปลวไฟ HW-072เป็นเซ็นเซอร์ขนาดกะทัดรัดและราคาไม่แพง เหมาะสำหรับระบบตรวจจับไฟไหม้แบบ DIY การทดลองทางการศึกษา และการประยุกต์ใช้กับหุ่นยนต์ หากคุณซื้อเซ็นเซอร์เปลวไฟทางออนไลน์หรือเป็นส่วนหนึ่งของชุดเริ่มต้น มีโอกาสสูงที่จะเป็นรุ่น HW-072

คุณสามารถมองเห็นส่วนหลักของเซ็นเซอร์เปลวไฟ HW-072 ได้อย่างชัดเจน: ชิปเปรียบเทียบ LM393, โพเทนชิออมิเตอร์เกณฑ์ และโฟโตไดโอด IR

คุณสมบัติหลักของเซ็นเซอร์เปลวไฟ HW-072

ต่อไปนี้คือคุณสมบัติหลักที่ทำให้ HW-072 เป็นตัวเลือกอันดับต้นๆ ของผู้ผลิต:

  • ใช้ตัวรับ IR (โดยทั่วไปคือโฟโตไดโอด) ที่ปรับแต่งมาเพื่อตรวจจับ แสงอินฟราเรดในช่วง 760 นาโนเมตรถึง 1,100 นาโนเมตรซึ่งเป็นความยาวคลื่นทั่วไปที่ปล่อยออกมาจากไฟ
  • ชิปเปรียบเทียบ LM393ในตัว  ที่แปลงการอ่านค่า IR แบบอะนาล็อกให้เป็นสัญญาณดิจิทัลที่เสถียร
  • นำเสนอ พินเอาต์พุตทั้งแบบดิจิทัล (DO) และแบบอนาล็อก (AO) :
    • DO : เอาต์พุต HIGH หรือ LOW ขึ้นอยู่กับการตรวจจับเปลวไฟ (ตั้งค่าเกณฑ์โดยโพเทนชิออมิเตอร์บนบอร์ด)
    • AO : เอาต์พุตแรงดันไฟฟ้าที่แปรผันตามความเข้มของ IR ช่วยให้ตรวจจับระยะห่างและความเข้มข้นของเปลวไฟได้
  • มี โพเทนชิออมิเตอร์แบบปรับได้บนบอร์ด เพื่อปรับแต่งเกณฑ์การตรวจจับสำหรับเอาต์พุตดิจิทัล
  • ไฟแสดงสถานะ LED : ดวงหนึ่งแสดงสถานะพลังงาน (ปกติเป็นสีเขียว) และอีกดวงแสดงการตรวจจับเปลวไฟ (ปกติเป็นสีแดง)
  • ใช้งานได้กับ บอร์ด Arduino 3.3V และ 5V จึงมีความยืดหยุ่นสำหรับแพลตฟอร์มไมโครคอนโทรลเลอร์ต่างๆ

พินเอาต์เซ็นเซอร์เปลวไฟ HW-072

นี่คือข้อมูลอ้างอิงด่วนสำหรับการเชื่อมต่อ HW-072 เข้ากับ Arduino ของคุณ:

สามารถเชื่อมต่อพินของเซ็นเซอร์เปลวไฟ HW-072 เข้ากับบอร์ด Arduino ได้อย่างง่ายดายโดยใช้สายจัมเปอร์ตัวเมีย-ตัวผู้ หรือเพียงแค่เสียบเข้ากับแผงทดลองโดยตรง

ทำความเข้าใจชิป LM393 ในเซ็นเซอร์เปลวไฟ

เซ็นเซอร์เปลวไฟส่วนใหญ่ที่ใช้ในโครงการ Arduino สร้างขึ้นโดยใช้ ชิปเปรียบเทียบ LM393วงจรรวมนี้มีบทบาทสำคัญในการตีความสัญญาณจากโฟโตไดโอดของเซ็นเซอร์เปลวไฟ (โดยปกติคือตัวรับสัญญาณ IR) และให้เอาต์พุตดิจิทัลที่เสถียรไปยัง Arduino ของคุณ

LM393 ทำอะไรได้บ้าง?

LM393 คือ เครื่องเปรียบเทียบแรงดันไฟฟ้าโดยจะเปรียบเทียบแรงดันไฟฟ้าที่มาจากโฟโตไดโอดอินฟราเรด (ซึ่งจะเปลี่ยนแปลงเมื่อมีเปลวไฟ) กับแรงดันไฟฟ้าอ้างอิงที่ตั้งไว้ล่วงหน้าโดยโพเทนชิออมิเตอร์บนโมดูลเซ็นเซอร์อย่างต่อเนื่อง

  • หากระดับ IR ของเปลวไฟที่ตรวจพบเกินเกณฑ์อ้างอิง LM393 จะส่ง สัญญาณ LOW ไปยัง Arduino เพื่อระบุว่า ตรวจพบเปลวไฟ
  • หากสัญญาณต่ำกว่าเกณฑ์ ระบบจะส่ง สัญญาณ HIGH ซึ่งหมายความว่า ไม่ตรวจพบเปลวไฟ

กลไกการสลับตามเกณฑ์ที่เชื่อถือได้นี้ทำให้เซนเซอร์เปลวไฟที่ใช้ LM393 เหมาะอย่างยิ่งสำหรับระบบตรวจจับไฟไหม้แบบ DIY ที่ใช้ Arduino โดยเฉพาะอย่างยิ่งเมื่อใช้  พินเอาต์พุตดิจิทัล (DO)

คู่มือทีละขั้นตอนในการเชื่อมต่อเซ็นเซอร์เปลวไฟกับ Arduino

1. ทำความเข้าใจเกี่ยวกับพินเซ็นเซอร์เปลวไฟ
โมดูลเซ็นเซอร์เปลวไฟโดยทั่วไปจะมีสามพิน:

  • VCC : เชื่อมต่อกับแหล่งจ่ายไฟ 5V
  • GND : การเชื่อมต่อกราวด์
  • DO : เอาท์พุตแบบดิจิตอล ใช้เพื่อตรวจจับการมีอยู่ของเปลวไฟ

2. การเดินสายวงจร
ปฏิบัติตามแผนผังสายไฟด้านล่าง:

  • เชื่อมต่อ พิน VCC ของเซ็นเซอร์เปลวไฟเข้ากับ พิน 5V บน Arduino
  • เชื่อมต่อ พิน GND ของเซ็นเซอร์เข้ากับ พิน GND บน Arduino
  • เชื่อมต่อ พิน DO ของเซ็นเซอร์กับ พินดิจิทัล 8 บน Arduino
  • เชื่อมต่อ LED เข้ากับ พินดิจิทัล 13โดยมีตัวต้านทาน 220 โอห์มแบบอนุกรม
  • เชื่อมต่อบัซเซอร์เข้ากับ พินดิจิทัล 9

3. ตรวจสอบการเชื่อมต่อของคุณ
ตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้งก่อนดำเนินการเข้ารหัส

นี่คือตัวอย่างวงจรแผงทดลองที่ใช้เซ็นเซอร์เปลวไฟ โปรดทราบว่าวงจรนี้ใช้เซ็นเซอร์เปลวไฟรุ่นอื่น โปรดตรวจสอบให้แน่ใจว่าได้ต่อสายทุกอย่างอย่างถูกต้อง

ผมติดตั้งเซ็นเซอร์เปลวไฟ HW-072 เข้ากับแผงทดลองโดยตรง ควรตรวจสอบ: VCC-5V, DO-pin ดิจิทัล และ GND-GND เสมอ

หากต้องการความเข้าใจเกี่ยวกับ Piezo Buzzer ที่ดีขึ้น โปรดอ่านบทความนี้: การสำรวจการรวม Piezo Buzzer เข้ากับ Arduino: คู่มือฉบับสมบูรณ์

รหัส Arduino สำหรับเซ็นเซอร์เปลวไฟ

ด้านล่างนี้เป็นตัวอย่างโค้ดที่ใช้ตรวจจับเปลวไฟและส่งสัญญาณเตือนโดยใช้ LED และเสียงบัซเซอร์

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
}

คำอธิบายโค้ด

1. กำหนดการเชื่อมต่อพิน

  • ในตอนต้นของโค้ด จะมีการกำหนดค่าคงที่สำหรับพินเซ็นเซอร์เปลวไฟ LED และบัซเซอร์

2. ฟังก์ชั่นการตั้งค่า

  • pinMode() ตั้งค่าโหมดพินสำหรับเซ็นเซอร์ LED และเสียงบัซเซอร์
  • Serial.begin(9600) เริ่มต้นการสื่อสารแบบอนุกรมเพื่อแก้ไขข้อบกพร่อง

3. ฟังก์ชันลูป

  • อ่านเอาท์พุตของเซ็นเซอร์เปลวไฟโดย digitalRead()ใช้
  • หากตรวจพบเปลวไฟ ( LOW) ไฟ LED และเสียงสัญญาณเตือนจะทำงาน
  • หากไม่ตรวจพบเปลวไฟ ( HIGH) ทั้งสองจะถูกปิดการใช้งาน

4. เอาท์พุตแบบอนุกรม

  • จอภาพแบบอนุกรมจะแสดงข้อความแบบเรียลไทม์ ช่วยให้คุณเข้าใจค่าที่อ่านได้จากเซ็นเซอร์

การทดสอบและการดีบัก

1. เปิดตัวตรวจสอบแบบอนุกรม
อัปโหลดโค้ดและเปิด Serial Monitor ใน Arduino IDE ตรวจสอบการตอบสนองของเซ็นเซอร์โดยนำไปวางในเปลวไฟ (เช่น ไฟแช็กหรือเทียน)

2. ปรับเทียบเซ็นเซอร์
เซ็นเซอร์เปลวไฟบางรุ่นมาพร้อมกับโพเทนชิออมิเตอร์สำหรับปรับความไว ทดลองตั้งค่าต่างๆ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

3. ความปลอดภัยต้องมาก่อน
ควรใช้ความระมัดระวังในการจัดการแหล่งกำเนิดไฟระหว่างการทดสอบ ควรมีถังดับเพลิงไว้ใกล้ตัว

จำลองไซเรนแจ้งเตือนเหตุเพลิงไหม้

ลองปรับเปลี่ยนโครงการนี้โดยจำลอง สัญญาณเตือนแบบรถดับเพลิงแทนที่จะใช้เสียงบี๊บธรรมดา เราจะสร้าง เสียงไซเรนสองโทน (สลับระหว่างสองโทนที่ต่างกันซ้ำๆ กันเป็นจังหวะคงที่) ซึ่งเลียนแบบสัญญาณเตือนฉุกเฉินจริง ทำให้น่าสนใจยิ่งขึ้น

นี่คือโค้ดที่แก้ไขโดยใช tone() ฟังก์ชันเพื่อจำลองเสียงไซเรนแจ้งเตือนเหตุเพลิงไหม้ คล้ายกับรถดับเพลิง:

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
}

คำอธิบายการเปลี่ยนแปลง

1. เพิ่ม fireAlarm()ฟังก์ชั่น

  • ฟังก์ชั่นนี้จะสร้างเอฟเฟกต์ไซเรนโดยการเพิ่มและลดความถี่ของเสียงอย่างต่อเนื่อง
  • ฟังก์ชั่น นี้ tone() ใช้สร้างเสียงตามความถี่ที่กำหนด

2. ภายใน loop() ฟังก์ชั่น

  • เมื่อตรวจพบเปลวไฟ ( LOW)fireAlarm() ฟังก์ชันจะถูกเรียกใช้และไฟ LED จะเปิดขึ้น
  • หากไม่ตรวจพบเปลวไฟ (สูง) ฟังก์ชัน noTone() จะหยุดเสียงกริ่ง

3. เอฟเฟกต์ไซเรนที่ปรับแต่งได้

  • สามารถปรับช่วงความถี่ไซเรน (500 เฮิรตซ์ ถึง 1,000 เฮิรตซ์) และความล่าช้า (10 มิลลิวินาที) เพื่อปรับความเร็วและระดับเสียงของไซเรนได้

การใช้พินอะนาล็อกของเซ็นเซอร์เปลวไฟ

นี่คือโค้ดอีกเวอร์ชันหนึ่งที่ใช้ พินอะนาล็อก เพื่ออ่านเอาต์พุตของเซ็นเซอร์เปลวไฟ การใช้พินอะนาล็อกช่วยให้เราสามารถวัดความเข้มของเปลวไฟที่ตรวจจับได้โดยการอ่านระดับแรงดันไฟฟ้าที่แตกต่างกัน

อัปเดตโค้ด Arduino (ใช้พินอนาล็อก)

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);
  }
}

คำอธิบายการเปลี่ยนแปลง

1. โดยใช้ analogRead()

  • พิน AO (เอาต์พุตแบบแอนะล็อก) ของเซ็นเซอร์เปลวไฟ  เชื่อมต่อกับ พิน A0 ของ Arduino
  • ฟังก์ชัน นี้ analogRead() จะอ่านค่าระหว่าง 0 ถึง 1023ซึ่งแสดงถึงความเข้มข้นของเปลวไฟ

2. เกณฑ์สำหรับการตรวจจับเปลวไฟ

  • กำหนดค่าเกณฑ์ (300 ในตัวอย่างนี้) เพื่อกำหนดว่ามีเปลวไฟอยู่หรือไม่
  • หากค่าที่อ่านได้ต่ำกว่าเกณฑ์มาตรฐาน แสดงว่าตรวจพบเปลวไฟ ปรับค่านี้ตามสภาพแวดล้อมและความไวของเซ็นเซอร์

3. การตรวจสอบความเข้มของเปลวไฟ

  • ค่าเซ็นเซอร์เปลวไฟจะถูกพิมพ์ลงใน Serial Monitor ช่วยให้คุณสามารถสังเกตข้อมูลแบบเรียลไทม์และปรับเกณฑ์หากจำเป็น

4. สัญญาณเตือนและพฤติกรรม LED

  • เมื่อตรวจพบเปลวไฟ LED จะเปิดขึ้น และเสียงสัญญาณเตือนจะดังขึ้นเหมือนรถดับเพลิงโดยใช้ fireAlarm() ฟังก์ชันนี้
  • เมื่อไม่ตรวจพบเปลวไฟ LED จะดับลง และเสียงบัซเซอร์จะหยุดลง noTone()ด้วย

ข้อดีของการใช้พินอะนาล็อก

  • ความไวที่เพิ่มขึ้น : ช่วยให้คุณวัดความเข้มข้นของเปลวไฟ ไม่ใช่แค่ตรวจจับการมีอยู่ของเปลวไฟเท่านั้น
  • เกณฑ์ที่ปรับแต่งได้ : ให้ความยืดหยุ่นสำหรับสภาพแวดล้อมที่แตกต่างกันและการเปลี่ยนแปลงของเซ็นเซอร์

เวอร์ชันของโค้ดนี้มีฟังก์ชันการทำงานที่ได้รับการปรับปรุงโดยใช้ประโยชน์จากเอาต์พุตแอนะล็อกของเซ็นเซอร์เปลวไฟ ทำให้เหมาะอย่างยิ่งสำหรับโครงการที่ต้องการการตรวจจับเปลวไฟที่แม่นยำยิ่งขึ้น

ระยะการตรวจจับและทิศทางของเซ็นเซอร์เปลวไฟ

เมื่อออกแบบโครงการของคุณ สิ่งสำคัญคือต้องเข้าใจ ข้อจำกัดทางกายภาพ ของเซ็นเซอร์เปลวไฟในแง่ของ ระยะทาง และ มุม

ระยะการตรวจจับ

  • เซนเซอร์เปลวไฟส่วนใหญ่สามารถตรวจจับเปลวไฟได้ในระยะประมาณ 30 ซม. ถึง 80 ซม. (ประมาณ 12 ถึง 32 นิ้ว ) ภายใต้สภาวะแสงภายในอาคารปกติ
  • ช่วงขึ้นอยู่กับ:
    • ขนาด  ของเปลวไฟ (เปลวไฟที่ใหญ่ขึ้นจะปล่อยแสงอินฟราเรดออกมามากขึ้น)
    • แสงโดยรอบ (แสงแดดที่สดใสหรือพื้นผิวสะท้อนแสงอาจรบกวน)
    • คุณภาพเซ็นเซอร์ และ ความไวของฟิล เตอร์IR

ทิศทางการตรวจจับ (มุมมอง)

  • เซ็นเซอร์เปลวไฟส่วนใหญ่มี มุมตรวจจับประมาณ 60 ถึง 120องศา
  • ซึ่งหมายความว่าจะ ทำงานได้ดีที่สุดเมื่อเปลวไฟอยู่ตรงหน้าเซ็นเซอร์โดยตรง
  • หากคุณใช้เซ็นเซอร์ในห้องที่กว้างขึ้นหรือต้องการครอบคลุม 360° ควรพิจารณา ติดตั้งเซ็นเซอร์หลายตัว ในทิศทางที่ต่างกันเพื่อให้ติดตามเปลวไฟได้ดีขึ้น

LM393 และข้อมูลจำเพาะการตรวจจับช่วยให้คุณสร้างโครงการที่ชาญฉลาดขึ้นได้อย่างไร

การทำความเข้าใจว่า ชิป LM393 ประมวลผลสัญญาณอินฟราเรดอย่างไร และการรู้ ระยะและทิศทางการตรวจจับที่มีประสิทธิภาพจะช่วยให้คุณออกแบบ ระบบตรวจจับไฟไหม้ที่เชื่อถือได้มากขึ้นตัวอย่างเช่น:

  • คุณสามารถ วางเซ็นเซอร์เปลวไฟไว้ ในระยะที่ถูกต้องเพื่อครอบคลุมเตาแก๊สหรือเทียนได้
  • คุณสามารถตั้งโปรแกรม Arduino ให้ตอบสนอง เฉพาะเมื่อมีเปลวไฟอยู่ใกล้พอ ที่จะก่อให้เกิดภัยคุกคามได้
  • คุณสามารถปรับเทียบความไวเพื่อให้โครงการของคุณไม่ก่อให้เกิดสัญญาณเตือนเท็จเนื่องจากความร้อนจากหลอดไฟหรือแสงแดด

เคล็ดลับประสิทธิภาพสำหรับผู้ใช้ HW-072

ต่อไปนี้เป็นเคล็ดลับบางประการที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากโมดูลเซ็นเซอร์เปลวไฟ HW-072:

  • รักษาเซ็นเซอร์ให้สะอาด : ฝุ่นละอองและควันตกค้างสามารถลดความแม่นยำได้
  • หลีกเลี่ยงแสงแดดโดยตรง : แหล่งกำเนิดแสง IR ที่สว่าง เช่น ดวงอาทิตย์ อาจทำให้เกิดสัญญาณเตือนภัยผิดพลาดได้
  • ใช้แผ่นปิดหรือแผงปิด : หากวางเซ็นเซอร์ไว้ในบริเวณที่มีลมแรงหรือแสงสว่าง ให้ใช้แผ่นปิดหรือแผงปิดเพื่อปรับปรุงประสิทธิภาพ
  • ปรับแต่งโพเทนชิออมิเตอร์ให้ละเอียด : ใช้สกรูบนบอร์ดเพื่อปรับความไว — ตามเข็มนาฬิกาโดยปกติจะเพิ่มความไว ทวนเข็มนาฬิกาจะลดลง

บทสรุป

โมดูล เซ็นเซอร์เปลวไฟ HW-072 เป็นเซ็นเซอร์ที่ทรงพลังแต่ใช้งานง่ายสำหรับผู้เริ่มต้น ช่วยให้ตรวจจับเปลวไฟได้อย่างง่ายดายด้วย Arduino ด้วยตัว เปรียบเทียบ LM393ใน ตัว เอาต์พุตอะนาล็อกและดิจิทัลคู่และ ความไวที่ปรับได้จึงมอบทั้งความเรียบง่ายและความยืดหยุ่นสำหรับโครงการตรวจจับเพลิงไหม้หรือระบบอัตโนมัติด้านความปลอดภัยทุกประเภท

การทำตามคำแนะนำนี้จะช่วยให้คุณเรียนรู้วิธีใช้เซ็นเซอร์เปลวไฟกับ Arduino การเชื่อมต่ออุปกรณ์ อัปโหลดโค้ด และทดสอบระบบอย่างมีประสิทธิภาพ โปรเจกต์นี้เป็นจุดเริ่มต้นที่ดีสำหรับผู้เริ่มต้นใช้งาน Arduino และมอบทักษะอันทรงคุณค่าสำหรับการสร้างแอปพลิเคชันที่เน้นความปลอดภัย

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.

บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนเกี่ยวกับเซ็นเซอร์เปลวไฟ Arduino: ตรวจจับไฟไหม้และสั่งการสัญญาณเตือน

บทช่วยสอนนี้จะแสดงวิธีใช้ Arduino และเซ็นเซอร์เปลวไฟเพื่อตรวจจับไฟไหม้และเปิดใช้งานระบบแจ้งเตือน

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

ลองนึกภาพว่ามีระบบที่สามารถตรวจจับเพลิงไหม้ได้ตั้งแต่ระยะเริ่มต้น ซึ่งอาจช่วยชีวิตและทรัพย์สินได้ นี่คือสิ่งที่คุณสามารถทำได้ด้วย Arduino และเซ็นเซอร์ตรวจจับเปลวไฟ คู่มือนี้จะให้คำแนะนำโดยละเอียดเกี่ยวกับการใช้งานเซ็นเซอร์ตรวจจับเปลวไฟร่วมกับ Arduino พร้อมคำอธิบายการใช้งานจริง คำแนะนำทีละขั้นตอน และโค้ด Arduino ที่เข้าใจง่าย

เซ็นเซอร์เปลวไฟ HW-072 ราคาไม่แพงและเป็นที่นิยมสามารถติดตั้งบนแผงทดลองได้

เซ็นเซอร์เปลวไฟคืออะไร และเหตุใดคุณจึงควรใช้มัน?

เซ็นเซอร์เปลวไฟคืออุปกรณ์ที่ตรวจจับแสงอินฟราเรดที่เกิดจากไฟ มักใช้ในระบบความปลอดภัยเพื่อตรวจจับเปลวไฟหรือเพลิงไหม้ เซ็นเซอร์เหล่านี้มีราคาไม่แพงและมีประสิทธิภาพอย่างเหลือเชื่อ จึงเหมาะอย่างยิ่งสำหรับโครงการต่างๆ เช่น:

  • ระบบตรวจจับไฟไหม้ในบ้าน
  • หุ่นยนต์ที่มีความสามารถในการดับเพลิง
  • ระบบความปลอดภัยในอุตสาหกรรม

ด้วยบอร์ด Arduino และเซ็นเซอร์เปลวไฟ คุณสามารถสร้างโปรเจ็กต์ที่ตรวจจับเปลวไฟและแจ้งเตือน เช่น การเปิดเสียงเตือน การส่งการแจ้งเตือน หรือการควบคุมอุปกรณ์อื่นๆ เช่น เครื่องพ่นน้ำหรือพัดลม

วัสดุที่จำเป็นสำหรับโครงการนี้

ก่อนจะเข้าสู่กระบวนการทีละขั้นตอน ให้รวบรวมส่วนประกอบต่อไปนี้:

  • Arduino Uno (หรือบอร์ดที่เข้ากันได้)
  • โมดูลเซ็นเซอร์เปลวไฟ
  • บัซเซอร์ (ฉันใช้บัซเซอร์เพียโซสำหรับโครงการนี้)
  • นำ
  • ตัวต้านทาน (220 โอห์มสำหรับ LED)
  • แผงทดลองและสายจัมเปอร์
  • ติดตั้งสาย USB และ Arduino IDE แล้ว

เจาะลึกโมดูลเซ็นเซอร์เปลวไฟ HW-072

หนึ่งในเซ็นเซอร์เปลวไฟที่ได้รับความนิยมมากที่สุดในโครงการ Arduino คือ โมดูลเซ็นเซอร์เปลวไฟ HW-072เป็นเซ็นเซอร์ขนาดกะทัดรัดและราคาไม่แพง เหมาะสำหรับระบบตรวจจับไฟไหม้แบบ DIY การทดลองทางการศึกษา และการประยุกต์ใช้กับหุ่นยนต์ หากคุณซื้อเซ็นเซอร์เปลวไฟทางออนไลน์หรือเป็นส่วนหนึ่งของชุดเริ่มต้น มีโอกาสสูงที่จะเป็นรุ่น HW-072

คุณสามารถมองเห็นส่วนหลักของเซ็นเซอร์เปลวไฟ HW-072 ได้อย่างชัดเจน: ชิปเปรียบเทียบ LM393, โพเทนชิออมิเตอร์เกณฑ์ และโฟโตไดโอด IR

คุณสมบัติหลักของเซ็นเซอร์เปลวไฟ HW-072

ต่อไปนี้คือคุณสมบัติหลักที่ทำให้ HW-072 เป็นตัวเลือกอันดับต้นๆ ของผู้ผลิต:

  • ใช้ตัวรับ IR (โดยทั่วไปคือโฟโตไดโอด) ที่ปรับแต่งมาเพื่อตรวจจับ แสงอินฟราเรดในช่วง 760 นาโนเมตรถึง 1,100 นาโนเมตรซึ่งเป็นความยาวคลื่นทั่วไปที่ปล่อยออกมาจากไฟ
  • ชิปเปรียบเทียบ LM393ในตัว  ที่แปลงการอ่านค่า IR แบบอะนาล็อกให้เป็นสัญญาณดิจิทัลที่เสถียร
  • นำเสนอ พินเอาต์พุตทั้งแบบดิจิทัล (DO) และแบบอนาล็อก (AO) :
    • DO : เอาต์พุต HIGH หรือ LOW ขึ้นอยู่กับการตรวจจับเปลวไฟ (ตั้งค่าเกณฑ์โดยโพเทนชิออมิเตอร์บนบอร์ด)
    • AO : เอาต์พุตแรงดันไฟฟ้าที่แปรผันตามความเข้มของ IR ช่วยให้ตรวจจับระยะห่างและความเข้มข้นของเปลวไฟได้
  • มี โพเทนชิออมิเตอร์แบบปรับได้บนบอร์ด เพื่อปรับแต่งเกณฑ์การตรวจจับสำหรับเอาต์พุตดิจิทัล
  • ไฟแสดงสถานะ LED : ดวงหนึ่งแสดงสถานะพลังงาน (ปกติเป็นสีเขียว) และอีกดวงแสดงการตรวจจับเปลวไฟ (ปกติเป็นสีแดง)
  • ใช้งานได้กับ บอร์ด Arduino 3.3V และ 5V จึงมีความยืดหยุ่นสำหรับแพลตฟอร์มไมโครคอนโทรลเลอร์ต่างๆ

พินเอาต์เซ็นเซอร์เปลวไฟ HW-072

นี่คือข้อมูลอ้างอิงด่วนสำหรับการเชื่อมต่อ HW-072 เข้ากับ Arduino ของคุณ:

สามารถเชื่อมต่อพินของเซ็นเซอร์เปลวไฟ HW-072 เข้ากับบอร์ด Arduino ได้อย่างง่ายดายโดยใช้สายจัมเปอร์ตัวเมีย-ตัวผู้ หรือเพียงแค่เสียบเข้ากับแผงทดลองโดยตรง

ทำความเข้าใจชิป LM393 ในเซ็นเซอร์เปลวไฟ

เซ็นเซอร์เปลวไฟส่วนใหญ่ที่ใช้ในโครงการ Arduino สร้างขึ้นโดยใช้ ชิปเปรียบเทียบ LM393วงจรรวมนี้มีบทบาทสำคัญในการตีความสัญญาณจากโฟโตไดโอดของเซ็นเซอร์เปลวไฟ (โดยปกติคือตัวรับสัญญาณ IR) และให้เอาต์พุตดิจิทัลที่เสถียรไปยัง Arduino ของคุณ

LM393 ทำอะไรได้บ้าง?

LM393 คือ เครื่องเปรียบเทียบแรงดันไฟฟ้าโดยจะเปรียบเทียบแรงดันไฟฟ้าที่มาจากโฟโตไดโอดอินฟราเรด (ซึ่งจะเปลี่ยนแปลงเมื่อมีเปลวไฟ) กับแรงดันไฟฟ้าอ้างอิงที่ตั้งไว้ล่วงหน้าโดยโพเทนชิออมิเตอร์บนโมดูลเซ็นเซอร์อย่างต่อเนื่อง

  • หากระดับ IR ของเปลวไฟที่ตรวจพบเกินเกณฑ์อ้างอิง LM393 จะส่ง สัญญาณ LOW ไปยัง Arduino เพื่อระบุว่า ตรวจพบเปลวไฟ
  • หากสัญญาณต่ำกว่าเกณฑ์ ระบบจะส่ง สัญญาณ HIGH ซึ่งหมายความว่า ไม่ตรวจพบเปลวไฟ

กลไกการสลับตามเกณฑ์ที่เชื่อถือได้นี้ทำให้เซนเซอร์เปลวไฟที่ใช้ LM393 เหมาะอย่างยิ่งสำหรับระบบตรวจจับไฟไหม้แบบ DIY ที่ใช้ Arduino โดยเฉพาะอย่างยิ่งเมื่อใช้  พินเอาต์พุตดิจิทัล (DO)

คู่มือทีละขั้นตอนในการเชื่อมต่อเซ็นเซอร์เปลวไฟกับ Arduino

1. ทำความเข้าใจเกี่ยวกับพินเซ็นเซอร์เปลวไฟ
โมดูลเซ็นเซอร์เปลวไฟโดยทั่วไปจะมีสามพิน:

  • VCC : เชื่อมต่อกับแหล่งจ่ายไฟ 5V
  • GND : การเชื่อมต่อกราวด์
  • DO : เอาท์พุตแบบดิจิตอล ใช้เพื่อตรวจจับการมีอยู่ของเปลวไฟ

2. การเดินสายวงจร
ปฏิบัติตามแผนผังสายไฟด้านล่าง:

  • เชื่อมต่อ พิน VCC ของเซ็นเซอร์เปลวไฟเข้ากับ พิน 5V บน Arduino
  • เชื่อมต่อ พิน GND ของเซ็นเซอร์เข้ากับ พิน GND บน Arduino
  • เชื่อมต่อ พิน DO ของเซ็นเซอร์กับ พินดิจิทัล 8 บน Arduino
  • เชื่อมต่อ LED เข้ากับ พินดิจิทัล 13โดยมีตัวต้านทาน 220 โอห์มแบบอนุกรม
  • เชื่อมต่อบัซเซอร์เข้ากับ พินดิจิทัล 9

3. ตรวจสอบการเชื่อมต่อของคุณ
ตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้งก่อนดำเนินการเข้ารหัส

นี่คือตัวอย่างวงจรแผงทดลองที่ใช้เซ็นเซอร์เปลวไฟ โปรดทราบว่าวงจรนี้ใช้เซ็นเซอร์เปลวไฟรุ่นอื่น โปรดตรวจสอบให้แน่ใจว่าได้ต่อสายทุกอย่างอย่างถูกต้อง

ผมติดตั้งเซ็นเซอร์เปลวไฟ HW-072 เข้ากับแผงทดลองโดยตรง ควรตรวจสอบ: VCC-5V, DO-pin ดิจิทัล และ GND-GND เสมอ

หากต้องการความเข้าใจเกี่ยวกับ Piezo Buzzer ที่ดีขึ้น โปรดอ่านบทความนี้: การสำรวจการรวม Piezo Buzzer เข้ากับ Arduino: คู่มือฉบับสมบูรณ์

รหัส Arduino สำหรับเซ็นเซอร์เปลวไฟ

ด้านล่างนี้เป็นตัวอย่างโค้ดที่ใช้ตรวจจับเปลวไฟและส่งสัญญาณเตือนโดยใช้ LED และเสียงบัซเซอร์

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
}

คำอธิบายโค้ด

1. กำหนดการเชื่อมต่อพิน

  • ในตอนต้นของโค้ด จะมีการกำหนดค่าคงที่สำหรับพินเซ็นเซอร์เปลวไฟ LED และบัซเซอร์

2. ฟังก์ชั่นการตั้งค่า

  • pinMode() ตั้งค่าโหมดพินสำหรับเซ็นเซอร์ LED และเสียงบัซเซอร์
  • Serial.begin(9600) เริ่มต้นการสื่อสารแบบอนุกรมเพื่อแก้ไขข้อบกพร่อง

3. ฟังก์ชันลูป

  • อ่านเอาท์พุตของเซ็นเซอร์เปลวไฟโดย digitalRead()ใช้
  • หากตรวจพบเปลวไฟ ( LOW) ไฟ LED และเสียงสัญญาณเตือนจะทำงาน
  • หากไม่ตรวจพบเปลวไฟ ( HIGH) ทั้งสองจะถูกปิดการใช้งาน

4. เอาท์พุตแบบอนุกรม

  • จอภาพแบบอนุกรมจะแสดงข้อความแบบเรียลไทม์ ช่วยให้คุณเข้าใจค่าที่อ่านได้จากเซ็นเซอร์

การทดสอบและการดีบัก

1. เปิดตัวตรวจสอบแบบอนุกรม
อัปโหลดโค้ดและเปิด Serial Monitor ใน Arduino IDE ตรวจสอบการตอบสนองของเซ็นเซอร์โดยนำไปวางในเปลวไฟ (เช่น ไฟแช็กหรือเทียน)

2. ปรับเทียบเซ็นเซอร์
เซ็นเซอร์เปลวไฟบางรุ่นมาพร้อมกับโพเทนชิออมิเตอร์สำหรับปรับความไว ทดลองตั้งค่าต่างๆ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

3. ความปลอดภัยต้องมาก่อน
ควรใช้ความระมัดระวังในการจัดการแหล่งกำเนิดไฟระหว่างการทดสอบ ควรมีถังดับเพลิงไว้ใกล้ตัว

จำลองไซเรนแจ้งเตือนเหตุเพลิงไหม้

ลองปรับเปลี่ยนโครงการนี้โดยจำลอง สัญญาณเตือนแบบรถดับเพลิงแทนที่จะใช้เสียงบี๊บธรรมดา เราจะสร้าง เสียงไซเรนสองโทน (สลับระหว่างสองโทนที่ต่างกันซ้ำๆ กันเป็นจังหวะคงที่) ซึ่งเลียนแบบสัญญาณเตือนฉุกเฉินจริง ทำให้น่าสนใจยิ่งขึ้น

นี่คือโค้ดที่แก้ไขโดยใช tone() ฟังก์ชันเพื่อจำลองเสียงไซเรนแจ้งเตือนเหตุเพลิงไหม้ คล้ายกับรถดับเพลิง:

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
}

คำอธิบายการเปลี่ยนแปลง

1. เพิ่ม fireAlarm()ฟังก์ชั่น

  • ฟังก์ชั่นนี้จะสร้างเอฟเฟกต์ไซเรนโดยการเพิ่มและลดความถี่ของเสียงอย่างต่อเนื่อง
  • ฟังก์ชั่น นี้ tone() ใช้สร้างเสียงตามความถี่ที่กำหนด

2. ภายใน loop() ฟังก์ชั่น

  • เมื่อตรวจพบเปลวไฟ ( LOW)fireAlarm() ฟังก์ชันจะถูกเรียกใช้และไฟ LED จะเปิดขึ้น
  • หากไม่ตรวจพบเปลวไฟ (สูง) ฟังก์ชัน noTone() จะหยุดเสียงกริ่ง

3. เอฟเฟกต์ไซเรนที่ปรับแต่งได้

  • สามารถปรับช่วงความถี่ไซเรน (500 เฮิรตซ์ ถึง 1,000 เฮิรตซ์) และความล่าช้า (10 มิลลิวินาที) เพื่อปรับความเร็วและระดับเสียงของไซเรนได้

การใช้พินอะนาล็อกของเซ็นเซอร์เปลวไฟ

นี่คือโค้ดอีกเวอร์ชันหนึ่งที่ใช้ พินอะนาล็อก เพื่ออ่านเอาต์พุตของเซ็นเซอร์เปลวไฟ การใช้พินอะนาล็อกช่วยให้เราสามารถวัดความเข้มของเปลวไฟที่ตรวจจับได้โดยการอ่านระดับแรงดันไฟฟ้าที่แตกต่างกัน

อัปเดตโค้ด Arduino (ใช้พินอนาล็อก)

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);
  }
}

คำอธิบายการเปลี่ยนแปลง

1. โดยใช้ analogRead()

  • พิน AO (เอาต์พุตแบบแอนะล็อก) ของเซ็นเซอร์เปลวไฟ  เชื่อมต่อกับ พิน A0 ของ Arduino
  • ฟังก์ชัน นี้ analogRead() จะอ่านค่าระหว่าง 0 ถึง 1023ซึ่งแสดงถึงความเข้มข้นของเปลวไฟ

2. เกณฑ์สำหรับการตรวจจับเปลวไฟ

  • กำหนดค่าเกณฑ์ (300 ในตัวอย่างนี้) เพื่อกำหนดว่ามีเปลวไฟอยู่หรือไม่
  • หากค่าที่อ่านได้ต่ำกว่าเกณฑ์มาตรฐาน แสดงว่าตรวจพบเปลวไฟ ปรับค่านี้ตามสภาพแวดล้อมและความไวของเซ็นเซอร์

3. การตรวจสอบความเข้มของเปลวไฟ

  • ค่าเซ็นเซอร์เปลวไฟจะถูกพิมพ์ลงใน Serial Monitor ช่วยให้คุณสามารถสังเกตข้อมูลแบบเรียลไทม์และปรับเกณฑ์หากจำเป็น

4. สัญญาณเตือนและพฤติกรรม LED

  • เมื่อตรวจพบเปลวไฟ LED จะเปิดขึ้น และเสียงสัญญาณเตือนจะดังขึ้นเหมือนรถดับเพลิงโดยใช้ fireAlarm() ฟังก์ชันนี้
  • เมื่อไม่ตรวจพบเปลวไฟ LED จะดับลง และเสียงบัซเซอร์จะหยุดลง noTone()ด้วย

ข้อดีของการใช้พินอะนาล็อก

  • ความไวที่เพิ่มขึ้น : ช่วยให้คุณวัดความเข้มข้นของเปลวไฟ ไม่ใช่แค่ตรวจจับการมีอยู่ของเปลวไฟเท่านั้น
  • เกณฑ์ที่ปรับแต่งได้ : ให้ความยืดหยุ่นสำหรับสภาพแวดล้อมที่แตกต่างกันและการเปลี่ยนแปลงของเซ็นเซอร์

เวอร์ชันของโค้ดนี้มีฟังก์ชันการทำงานที่ได้รับการปรับปรุงโดยใช้ประโยชน์จากเอาต์พุตแอนะล็อกของเซ็นเซอร์เปลวไฟ ทำให้เหมาะอย่างยิ่งสำหรับโครงการที่ต้องการการตรวจจับเปลวไฟที่แม่นยำยิ่งขึ้น

ระยะการตรวจจับและทิศทางของเซ็นเซอร์เปลวไฟ

เมื่อออกแบบโครงการของคุณ สิ่งสำคัญคือต้องเข้าใจ ข้อจำกัดทางกายภาพ ของเซ็นเซอร์เปลวไฟในแง่ของ ระยะทาง และ มุม

ระยะการตรวจจับ

  • เซนเซอร์เปลวไฟส่วนใหญ่สามารถตรวจจับเปลวไฟได้ในระยะประมาณ 30 ซม. ถึง 80 ซม. (ประมาณ 12 ถึง 32 นิ้ว ) ภายใต้สภาวะแสงภายในอาคารปกติ
  • ช่วงขึ้นอยู่กับ:
    • ขนาด  ของเปลวไฟ (เปลวไฟที่ใหญ่ขึ้นจะปล่อยแสงอินฟราเรดออกมามากขึ้น)
    • แสงโดยรอบ (แสงแดดที่สดใสหรือพื้นผิวสะท้อนแสงอาจรบกวน)
    • คุณภาพเซ็นเซอร์ และ ความไวของฟิล เตอร์IR

ทิศทางการตรวจจับ (มุมมอง)

  • เซ็นเซอร์เปลวไฟส่วนใหญ่มี มุมตรวจจับประมาณ 60 ถึง 120องศา
  • ซึ่งหมายความว่าจะ ทำงานได้ดีที่สุดเมื่อเปลวไฟอยู่ตรงหน้าเซ็นเซอร์โดยตรง
  • หากคุณใช้เซ็นเซอร์ในห้องที่กว้างขึ้นหรือต้องการครอบคลุม 360° ควรพิจารณา ติดตั้งเซ็นเซอร์หลายตัว ในทิศทางที่ต่างกันเพื่อให้ติดตามเปลวไฟได้ดีขึ้น

LM393 และข้อมูลจำเพาะการตรวจจับช่วยให้คุณสร้างโครงการที่ชาญฉลาดขึ้นได้อย่างไร

การทำความเข้าใจว่า ชิป LM393 ประมวลผลสัญญาณอินฟราเรดอย่างไร และการรู้ ระยะและทิศทางการตรวจจับที่มีประสิทธิภาพจะช่วยให้คุณออกแบบ ระบบตรวจจับไฟไหม้ที่เชื่อถือได้มากขึ้นตัวอย่างเช่น:

  • คุณสามารถ วางเซ็นเซอร์เปลวไฟไว้ ในระยะที่ถูกต้องเพื่อครอบคลุมเตาแก๊สหรือเทียนได้
  • คุณสามารถตั้งโปรแกรม Arduino ให้ตอบสนอง เฉพาะเมื่อมีเปลวไฟอยู่ใกล้พอ ที่จะก่อให้เกิดภัยคุกคามได้
  • คุณสามารถปรับเทียบความไวเพื่อให้โครงการของคุณไม่ก่อให้เกิดสัญญาณเตือนเท็จเนื่องจากความร้อนจากหลอดไฟหรือแสงแดด

เคล็ดลับประสิทธิภาพสำหรับผู้ใช้ HW-072

ต่อไปนี้เป็นเคล็ดลับบางประการที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากโมดูลเซ็นเซอร์เปลวไฟ HW-072:

  • รักษาเซ็นเซอร์ให้สะอาด : ฝุ่นละอองและควันตกค้างสามารถลดความแม่นยำได้
  • หลีกเลี่ยงแสงแดดโดยตรง : แหล่งกำเนิดแสง IR ที่สว่าง เช่น ดวงอาทิตย์ อาจทำให้เกิดสัญญาณเตือนภัยผิดพลาดได้
  • ใช้แผ่นปิดหรือแผงปิด : หากวางเซ็นเซอร์ไว้ในบริเวณที่มีลมแรงหรือแสงสว่าง ให้ใช้แผ่นปิดหรือแผงปิดเพื่อปรับปรุงประสิทธิภาพ
  • ปรับแต่งโพเทนชิออมิเตอร์ให้ละเอียด : ใช้สกรูบนบอร์ดเพื่อปรับความไว — ตามเข็มนาฬิกาโดยปกติจะเพิ่มความไว ทวนเข็มนาฬิกาจะลดลง

บทสรุป

โมดูล เซ็นเซอร์เปลวไฟ HW-072 เป็นเซ็นเซอร์ที่ทรงพลังแต่ใช้งานง่ายสำหรับผู้เริ่มต้น ช่วยให้ตรวจจับเปลวไฟได้อย่างง่ายดายด้วย Arduino ด้วยตัว เปรียบเทียบ LM393ใน ตัว เอาต์พุตอะนาล็อกและดิจิทัลคู่และ ความไวที่ปรับได้จึงมอบทั้งความเรียบง่ายและความยืดหยุ่นสำหรับโครงการตรวจจับเพลิงไหม้หรือระบบอัตโนมัติด้านความปลอดภัยทุกประเภท

การทำตามคำแนะนำนี้จะช่วยให้คุณเรียนรู้วิธีใช้เซ็นเซอร์เปลวไฟกับ Arduino การเชื่อมต่ออุปกรณ์ อัปโหลดโค้ด และทดสอบระบบอย่างมีประสิทธิภาพ โปรเจกต์นี้เป็นจุดเริ่มต้นที่ดีสำหรับผู้เริ่มต้นใช้งาน Arduino และมอบทักษะอันทรงคุณค่าสำหรับการสร้างแอปพลิเคชันที่เน้นความปลอดภัย

Related articles