Home Alarm Systems ระบบเตือนภัยภายในบ้านควบคุมโดยบอร์ด Arduino

Home Alarm Systems ระบบเตือนภัยภายในบ้านควบคุมโดยบอร์ด Arduino

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

อุปกรณ์ที่ใช้คร่าวๆ มีดังนี้ (ทางร้านไม่มีจัดชุดเซ็ตสำเร็จรูปจำหน่ายนะคะ)

ราคารวมคร่าวๆ ตามรายการด้านล่าง ประมาณ 2,100 บาท

1. บอร์ด Arduino Uno R3 (EADN014) (บทความ Arduino) Q’ty 1 pcs

           เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัวบอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา และสามารถนำไปดัดแปลงเพิ่มเติม หรือพัฒนาต่อยอดได้อีกด้วย

Arduino UNO R3

2. จอ LCD Character 20×4 (EDPM045) (บทความ LCD) Q’ty 1 pcs

           จอ Liquid Crystal Display (LCD) เป็นจอแสดงผลรูปแบบหนึ่งที่นิยมนำมาใช้งานร่วมกับระบบสมองกลฝังตัวอย่างแพร่หลาย จอ LCD มีทั้งแบบแสดงผลเป็นตัวอักขระเรียกว่า Character LCD ซึ่งมีการกำหนดตัวอักษรหรืออักขระที่สามารถแสดงผลไว้อยู่แล้ว และแบบแสดงเป็นจุดเรียกว่า Graphic LCD

04

3. บอร์ดรีเลย์ 2 Channels (EFDV237) (บทความ Relay) Q’ty 1 pcs

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

05

4. Keypad 4×4 (EMSW026) Q’ty 1 pcs

           แป้นปุ่มกดหรือ Keypad เป็นอุปกรณ์สำหรับรับอินพุตจากผู้ใช้ มีลักษณะเป็นปุ่มกดหลายปุ่มจัดเรียงกันในลักษณะเป็นอาร์เรย์ แบ่งเป็นแถวแนวนอน (Row) และแถวแนวตั้ง (Column) เช่น 3×4 (12 ปุ่ม) หรือ 4×4 (16 ปุ่ม) เป็นต้น แต่ละปุ่มก็จะมีสัญลักษณ์เขียนกำกับไว้ เช่น ตัวเลข 0-9 # * A-D เป็นต้น

06

5. Buzzer Module (EFDV229) Q’ty 1 pcs

           ลำโพงแบบ Magnetic-diaphragm ขนาดเล็กให้เสียงดัง มีความต้านทานภายในต่ำ Buzzer จะคล้ายกับลำโพงคือมันสามารถส่งเสียงได้โดยการสั่นสะเทือนที่เป็นจังหวะความถี่แล้วเกิดเป็นคลื่นเสียง

Buzzer Module

6. Flame Detector Module (EFDV309) Q’ty 1 pcs

           อุปกรณ์ตรวจจับเปลวไฟ (Flame Detector) สามารถตรวจจับเปลวไฟในขณะที่เกิดเหตุเพลิงไหม้ มักติดตั้งไว้เพื่อตรวจสอบในบริเวณที่มีวัตถุไวไฟวางอยู่

08

7. LED Module (EADN023) Q’ty 2 pcs

           LED (Light-Emitting Diode) หรือที่แปลเป็นไทยว่า ไดโอดเปล่งแสง หลอดไฟ LED เมื่อได้รับแรงดันไฟฟ้าจะปล่อยคลื่นแสงออกมาให้ความสว่าง หลอดไฟ LED ที่เราเห็นมีขายกันตามร้านอุปกรณ์อิเล็กทรอนิกส์นั้นมีหลายแบบ โดยแต่ละแบบนั้นจะมีหลักการทำงานเหมือนกัน

09

8. PIR Motion Sensor Module (ESEN040) (บทความ PIR) Q’ty 1 pcs

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

PIR Motion Sensor JST 06

9. IIC (I2C) Adaptor Plate (EFDV296) Q’ty 1 pcs

           โมดูล I2C Bus เป็นโมดูลแปลงขาสัญญาณ Parallel เป็น I2C เพื่อลดจำนวนขาสัญญาณในการใช้งานจาก 16 ขาเหลือเพียง 4 ขา ส่วนใหญ่นำมาใช้งานคู่กับจอ Character LCD เพื่อให้สะดวกต่อการเชื่อมต่อ และสามารถต่อจอแสดงผลหรืออุปกรณ์อื่นได้ในจำนวนที่มากขึ้น สามารถปรับให้รองรับได้ถึง 8 ตำแหน่งแอดเดรส (20-27) เพื่อความยืดหยุ่นในการใช้งาน

11

หลักการทำงาน

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

           ขณะทำงานระบบจะเปิดการตรวจจับโดยรับสัญญาณอินพุตจากเซ็นเซอร์ 2 อย่างด้วยกันคือ PIR Motion Sensor (เซ็นเซอร์ตรวจจับการเคลื่อนไหว) ในระบบจำลองนี้ จะติดเซนเซอร์ไว้ในห้องรับแขก และ Flame Detector Sensor (เซ็นเซอร์ตรวจจับเปลวไฟ) จะติดเซนเซอร์ไว้ในห้องครัว เมื่อผู้อาศัยไม่อยู่บ้านหรือล็อคบ้านไว้ PIR Motion Sensor และ Flame Detector Sensor จะทำงาน เมื่อมีการเคลื่อนไหวภายในบ้าน สัญญาณกันขโมยจะส่งเสียง Alarm แจ้งเตือนออกทาง Buzzer ทันที หรือเมื่อเกิดเปลวไฟบริเวณห้องครัว (Flame Detector Sensor จะทำงาน) และสัญญาณ Alarm ก็จะทำงานเช่นกัน

           แต่เมื่อผู้อาศัยกลับมาแล้วและปลดล็อคประตูด้วยรหัสผ่าน “1234” ตามด้วยเครื่องหมาย # ตามที่ตั้งไว้ มีผลทำให้ระบบเซนเซอร์ตรวจจับปิดการทำงาน และหลังจากปลดล็อคแล้ว ผู้อาศัยจะสามารถควบคุมการปิดเปิดเครื่องใช้ไฟฟ้าภายในบ้านได้ โดยกดปุ่มที่ Keypad (ปุ่ม A – หลอดไฟดวงที่ 1 หรือ ปุ่ม B – หลอดไฟดวงที่ 2) และเมื่อผู้อาศัยจะเข้านอน ต้องการล็อคบ้านและเปิดระบบเตือนภัย ก็สามารถทำได้โดยกดที่ Keypad (ปุ่ม C) 

           จากการทำงานของระบบนี้ เป็นเพียงการทำงานเบื้องต้นให้เห็นภาพ ผู้ใช้สามารถนำไปต่อยอดพัฒนาเพิ่มเติมได้ เช่น เชื่อมต่อกับ GSM Module เพื่อสื่อสารผ่านเครือข่ายโทรศัพท์มือถือและอินเตอร์เน็ต หรือเชื่อมต่ออุปกรณ์ LAN หรือ Wi-Fi เพิ่มเติมเพื่อสื่อสารผ่านอินเตอร์เน็ต แล้วประยุกต์การทำงานให้เกิด Alarm ให้ระบบส่ง SMS หรือโทรออกไปยังเจ้าของบ้านเพื่อเตือนภัยได้อีกด้วย

วิธีการต่อวงจร

Home Alarm System

โค้ดโปรแกรมการทำงาน >> สามารถโหลด Source Code ได้จากที่นี่ <<                

การควบคุมการทำงานอุปกรณ์ต่างๆ (อ้างอิงตามบทความนี้) จำเป็นต้องมีการเรียกใช้ไลบรารี่ต่างๆ ดังต่อไปนี้คือ Password, Keypad, Wire และ LiquidCrystal_I2C >> สามารถโหลด Library ได้จากที่นี่ <<

#include <Password.h>
#include <Keypad.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
Password password = Password( "1234" ); // Set the Password
 
// Set the LCD address to 0x27 for a 20 chars and 4 line display
LiquidCrystal_I2C lcd(0x27, 20, 4);
 
const byte ROWS = 4;        // Four rows
const byte COLS = 4;        //  columns
const int status_lock = A0; // LED Status Pin
const int status_unlock = A1; // LED Status Pin
const int led_bed = 11;     // Home Light2 Pin
const int led_bath = 12;    // Home Light1 Pin
int pir = A2;               // PIR Sensor Pin
int flame = A3;             // Flame Sensor Pin
int Buzzer = 10;            // Buzzer Module Pin
int alarmValue = 0;  
int fl = 0, state = 0, state1 = 0, state2 = 0, Alarm_fl = 0; // Flag
int dir = 8, dir1 = 0;
String test = "                    ";
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
 
byte rowPins[ROWS] = { 2,3,4,5, };// Connect keypad ROW0, ROW1, ROW2 and 
                    // ROW3 to these Arduino pins.
byte colPins[COLS] = { 6,7,8,9 };// Connect keypad COL0, COL1, COL2 and 
                        // COL3 to these Arduino pins.
 
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

ในส่วนแรกของโปรแกรมเป็นการประกาศเรียกใช้ไลบรารี่และตั้งค่า เริ่มจากกำหนด Password ในบทความนี้เป็น Password(“1234” );

กำหนดค่าของจอ LCD (ในบทความนี้ ใช้จอ LCD ร่วมกับ I2C Adaptor) ต้องทำการกำหนดค่า 3 ค่า คือ ตำแหน่งแอดเดรส จำนวนตัวอักษร และจำนวนบรรทัดเป็น LiquidCrystal_I2C lcd(0x27, 20, 4);

กำหนดค่าตัวแปรต่างๆ ที่ต้องการนำไปใช้ในโปรแกรม

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

void setup()
{
    Serial.begin(9600); // Define Serial for Debug Sensor & Keyped
    lcd.begin();  //Define LCD
    lcd.backlight();
    pinMode(status_lock, OUTPUT);     // Sets the digital pin as output 
    pinMode(status_unlock, OUTPUT);  // Sets the digital pin as output
    pinMode(led_bed, OUTPUT);         // Sets the digital pin as output
    pinMode(led_bath, OUTPUT);        // Sets the digital pin as output
   pinMode(Buzzer, OUTPUT);         // Sets the digital pin as output
    keypad.addEventListener(keypadEvent); // Add an event listener for this keypad
    // Sets First Screen LCD 
     lcd.print("* Hello Welcome To *");
     lcd.setCursor(0, 1);
     lcd.print(" Home Alarm Systems ");
     lcd.setCursor(0, 2);
     lcd.print("www.ThaiEasyElec.com");
     lcd.setCursor(0, 3);
     lcd.print("  ** Home Lock **  ");
}
 
void loop()
{
  keypad.getKey(); // Check the Keyped
  motion_on();     // Open PIR Motion Sensor
  flame_on();      // Open Flame Detector Sensor
  close_all_power(); // Close Light1-2 and Set status_lock
}

ฟังก์ชั่น Setup เป็นการตั้งค่าหรือกำหนดการทำงานอินพุตเอาต์พุตของขาต่างๆ ดังนี้

  • กำหนดความเร็วในการสื่อสาร Serial เพื่อใช้ในการรับ-ส่งข้อมูลกับคอมพิวเตอร์
  • เรียกใช้ฟังก์ชั่นเพื่อ Initial จอ LCD ที่เรานำมาใช้งานในที่นี้เป็นการติดต่อแบบ I2C
  • กำหนดการทำงานของขา status_lock(A0)  status_unlock(A1)  led_bed(11)  led_bath(12) ให้เป็นโหมดเอาต์พุต

ฟังก์ชั่น Loop เรียกใช้งานฟังก์ชั่นย่อยๆ ด้วยกันทั้งหมด 4 ฟังก์ชั่น คือ

  • motion_on(); = เปิดการใช้งาน PIR Motion Sensor รับค่าจาก Analog A2 เพื่อตรวจสอบการเคลื่อนไหว
  • flame_on(); = เปิดการใช้งาน Flame Detector รับค่าจาก Analog A3 เพื่อตรวจสอบเปลวไฟ
  • close_all_power(); = ปิดหรือตัดไฟเครื่องใช้ไฟฟ้าที่ไม่ได้ใช้งานภายในบ้าน 
//take care of some special events
void keypadEvent(KeypadEvent eKey){
    switch (keypad.getState()){
    case PRESSED:
        //Serial.print("Pressed: ");
        //Serial.println(eKey);
        lcd.setCursor(dir1, 3);
        lcd.print(test);
        test = "*";
        lcd.setCursor(dir, 3);
        lcd.print(test);
        dir1 = dir;
        switch (eKey){
            case 'A':
                if(fl == 1){
                    if(state == 0){
                        digitalWrite(led_bed, HIGH); // Open the light 2
                        state = 1;
                    }else if(state == 1){
                        digitalWrite(led_bed, LOW); // Close the light 2
                        state = 0;
                    }
                }
                break;
            case 'B':
                if(fl == 1){
                    if(state1 == 0){
                        digitalWrite(led_bath, HIGH); // Open the light 1
                        state1 = 1;
                    }else if(state1 == 1){
                        digitalWrite(led_bath, LOW); // Close the light 1
                        state1 = 0;
                    }
                }
                break;
            case 'C':
                if(fl == 1){
                    state2 = 1;
                    lcd.setCursor(0, 3);
                    lcd.print("  ** Home Lock **  ");
                    dir  = 8;
                    dir1 = 0;
                    test = "                    ";
                }
                break;
            case '#':
                checkPassword(); // Call the function checkPassword
                password.reset(); //Reset Key
                break;
            default:
                password.append(eKey);
        }
    }
}

KeypadEvent เป็นฟังก์ชั่นตรวจสอบเหตุการณ์ของ Keypad เมื่อกดคีย์เข้ามา ใช้ในการกำหนดเหตุการณ์ให้เป็นไปตามที่เราต้องการ เช่น ถ้าทำการกดปุ่ม A ให้สั่งงาน Output ที่ขา led_bed (11) ให้อยู่ในสภาวะ HIGH(1) เป็นต้น ในบทความนี้เราได้กำหนดเหตุการณ์ไว้ด้วยกันทั้งหมด 4 เหตุการณ์ด้วยกัน คือ

  1. เมื่อกดปุ่ม # ให้นำคีย์ที่กดเข้ามาก่อนหน้าไปตรวจสอบด้วยฟังก์ชั่น checkPassword และเคลียร์ค่าคีย์ที่กดเข้ามาก่อนหน้าทั้งหมดเพื่อรอรับคีย์ใหม่
  2. เมื่อกดรหัสผ่านถูกต้องแล้ว การกดปุ่ม A หนึ่งครั้งจะเป็นการสั่งงานให้ Output1 อยู่ในสภาวะ HIGH หรือถ้ามีการกดซ้ำก็จะสั่งงาน Output1 อยู่สภาวะ LOW สลับกันไปเรื่อยๆ
  3. เมื่อกดรหัสผ่านถูกต้องแล้ว การกดปุ่ม B หนึ่งครั้งจะเป็นการสั่งงานให้ Output2 อยู่ในสภาวะ HIGH หรือถ้ามีการกดซ้ำก็จะสั่งงาน Output2 อยู่สภาวะ LOW สลับกันไปเรื่อยๆ
  4. กดปุ่ม C เมื่อต้องการล็อคบ้านหรือเปิดระบบการแจ้งเตือนขึ้นมาใหม่อีกครั้ง
void checkPassword(){ // Function check the password
    if (password.evaluate()){
    //Add code to run if it works
        while(1){
            //Serial.println("Success");
            fl = 1;
            digitalWrite(status_lock, LOW);
            digitalWrite(status_unlock, HIGH);
            lcd.setCursor(0, 3);
            lcd.print(" ** Home Unlock ** ");
            keypad.getKey();
            Alarm_off();
            password.reset();
        }
    }else{
        Serial.println("Wrong");
        //add code to run if it did not work
        lcd.setCursor(0, 3);
        lcd.print("**Password Wrong **");
        delay(1000);
    }
}

checkPassword เป็นฟังก์ชั่นตรวจสอบ password ว่าคีย์ที่กดเข้ามานั้นตรงกับที่กำหนดไว้ข้างต้นหรือไม่ ในฟังก์ชั่นนี้เราต้องกำหนดเหตุการณ์ว่าถ้า password ถูกต้อง จะให้ทำอะไร และถ้าไม่ถูกต้องจะให้ทำอะไร เราได้กำหนดไว้แล้วในที่นี้ คือ

  • กรณี password ถูกต้อง ให้สั่งงาน Output ที่ขา status_lock เป็นสภาวะ LOW พร้อมทั้งสั่งงาน Output ที่ขา status_unlock เป็นสภาวะ HIGH ต่อมาให้เปลี่ยนการแสดงผลทางหน้าจอ LCD บรรทัดที่ 4 เป็น HomeUnlock และทำการวนรอรับค่าจาก Keypad อีกครั้งเพื่อใช้ในการสั่งงาน เปิด-ปิด ไฟภายในบ้าน พร้อมทั้งตัดระบบเตือนภัยทั้งหมด
  • กรณี password ไม่ถูกต้อง ให้ทำการกลับเริ่มต้นรับคีย์ใหม่จนกว่า password จะถูกต้อง
void close_all_power(){ // Function close the light all.
    digitalWrite(status_lock, HIGH);
    digitalWrite(status_unlock, LOW);
    digitalWrite(led_bed, LOW);
    digitalWrite(led_bath, LOW);
}
void Alarm(){ // Function Alarm.
    digitalWrite(Buzzer, HIGH); // Turn on Buzzer
    delay(100); // delay 100 milliseconds
    digitalWrite(Buzzer, LOW); // Turn off Buzzer
    delay(100); // delay 100 milliseconds
}
void Alarm_off(){ // Function Alarm off.
    digitalWrite(Buzzer,HIGH); //Set buzzer pin is HIGH for stop alarm
}

close_all_power เป็นฟังก์ชั่นกำหนดให้ปิดไฟทั้งหมดที่ต้องการหรือสั่งงานให้ Output ที่ต้องการ อยู่ในสภาวะ LOW ทั้งหมด

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

Alarm_off เป็นฟังก์ชั่นกำหนดให้ buzzer ไม่ส่งเสียงดังหรือปิด buzzer

void motion_on() { // Function Open PIR Motion Sensor.
  alarmValue = digitalRead(pir); // Read analog sensor 0 or 1.
  //Serial.println (alarmValue); // Debug Sensor value.
  if (alarmValue == 0) // Check the value
  {
    Alarm();
  }
  else
  {
    Alarm_off();
  }
}
void flame_on(){ // Function Open Flame Detector Sensor.    
    alarmValue = analogRead(flame); // Read analog sensor 0-1023.
    //Serial.println (alarmValue);  // Debug Sensor value.  
    if(alarmValue <= 700){   // Check the value      
        Alarm();
    }
    if(alarmValue > 700){
        Alarm_off();
    }
}

motion _on เป็นฟังก์ชั่นเปิดใช้งาน PIR Motion Sensor การทำงานคืออ่านค่าที่ได้จาก Sensor มาเป็น ดิจิตอล ลอจิก “0” หรือ ลอจิก “1” เมื่อเซ็นเซอร์ตรวจจับการเคลื่อนไหวจะได้ลอจิก “0” เมื่อไม่มีการเคลื่อนไหวจะได้ลอจิก “1” จึงกำหนดว่าเมื่อมีการเคลื่อนไหวให้ทำการ Alarm ทันที ถ้าไม่มีการเคลื่อนไหวก็ไม่ต้อง Alarm (Output จาก PIR Sensor ตัวที่ใช้ในบทความเป็นแบบ open drain ต้องใช้ตัวต้านทานช่วยในการ pull up สัญญาณไว้ให้เป็น “1” เสมอ เมื่อเซ็นเซอร์ตรวจจับการเคลื่อนไหวได้เซ็นเซอร์ Output จะเป็นลอจิก “0”)

flame_on เป็นฟังก์ชั่นเปิดการใช้งาน Flame Detector การทำงานคือรับค่าที่ได้จาก Sensor มาเป็น Analog แรงดัน 0-5 V เช่นเดียวกันกับ PIR Motion Sensor แต่ Flame Detector นั้นใช้ในการตรวจวัดแสงไฟ หรือเปลวไฟ ต้องทำการบันทึกค่าไว้ก่อนว่าตอนที่ไม่เกิดเปลวไฟจะเท่ากับเท่าไร และตอนที่เกิดเปลวไฟนั้นมีค่าเท่าไร ในที่นี้ค่าตอนยังไม่มีเปลวไฟ ค่าที่ได้ประมาณ 800+ และเมื่อเกิดเปลวไฟค่าที่ได้ลดลงเหลือประมาณ 500+ แต่ไม่เกิน 700 จึงกำหนดว่าถ้าน้อยกว่า 700 แสดงว่ามีเปลวไฟเกิดขึ้นให้ทำการ Alarm ทันที แต่ถ้ามากกว่า 700 แสดงว่าไม่มีเปลวไฟเกิดขึ้นก็ไม่ต้อง Alarm  (เช่นเดียวกับ PIR Motion Sensor ผู้ใช้ต้องตรวจสอบค่าที่ได้จากเซ็นเซอร์แต่ละตัวก่อนการใช้งาน  เนื่องจากค่า output นั้นขึ้นอยู่กับอุปกรณ์แต่ละตัวทำให้ค่าที่ได้อาจไม่เท่ากัน)

         หากสนใจจะต่อขยายเพิ่มเติมสามารถนำไปต่อกับ GSM โมดูล แล้วเมื่อเกิด Alarm ให้ส่ง SMS หรือโทรออกไปแจ้งผู้อาศัยได้ สามารถหาข้อมูลเพิ่มเติมและประยุกต์ใช้ได้จากบทความด้านล่างครับ

http://thaieasyelec.com/article-wiki/review-product-article/application-led-gsm-module-dtmf.html