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

ส่วนประกอบที่จำเป็น

  • 8051
  • โมดูล GSM
  • โมดูลเซ็นเซอร์ PIR
  • LM7805
  • คณะขนมปัง
  • LED
  • ตัวต้านทาน 1K
  • ตัวต้านทาน 10K
  • ตัวเก็บประจุ 1000 ยูเอฟ
  • ตัวเก็บประจุ 10 ยูเอฟ
  • 10K
  • Crystal 11.0592 MHz
  • พาวเวอร์ซัพพลาย

เซ็นเซอร์ PIR

เซ็นเซอร์ PIR ถูกใช้เพื่อตรวจจับการเคลื่อนไหวของสิ่งมีชีวิต PIR เป็นเซ็นเซอร์ Passive Infrared ซึ่งตรวจจับรังสีอินฟราเรด สิ่งมีชีวิตทุกชนิดที่มีอุณหภูมิสูงกว่าศูนย์จะปล่อยพลังงานความร้อนออกมาในรูปของรังสี รังสีเหล่านี้คือรังสีอินฟราเรด สายตามนุษย์ไม่สามารถมองเห็นรังสีเหล่านี้ได้เนื่องจากรังสีเหล่านี้มีการแผ่รังสีที่ความยาวคลื่นอินฟราเรด เมื่อสิ่งมีชีวิตใด ๆ เข้ามาในช่วงของเซ็นเซอร์ PIR จะตรวจจับความร้อนของสิ่งมีชีวิตนั้นและสร้างเอาต์พุต โมดูลเซ็นเซอร์ PIR ไม่ส่งรังสีใด ๆ เพื่อตรวจจับ แต่จะตรวจจับความร้อน (อินฟราเรด) เท่านั้น คุณสามารถทราบข้อมูลเพิ่มเติมเกี่ยวกับการเซ็นเซอร์ PIR ในPIR วงจรเซ็นเซอร์
เซ็นเซอร์ PIR

โมดูล GSM

SIM900ที่สมบูรณ์แบบ Quad-band GSM / GPRS โมดูล  ที่มาพร้อมกับระบบ GSM / GPRS ประสิทธิภาพ 850/900 / 1800 / 1900MHz สำหรับเสียง, SMS และข้อมูลด้วยการใช้พลังงานต่ำ 
โมดูล GSM

คำสั่ง AT

คำสั่ง AT ใช้สำหรับควบคุมโมดูล GSM มีคำสั่งสำหรับการโทรและส่งข้อความที่เราใช้ในโครงการนี้เพื่อส่งข้อความ หลังจากได้รับ AT Command โมดูล GSM ตอบสนองด้วยตกลงซึ่งหมายความว่าโมดูล GSM ทำงานได้ดี นี่คือคำสั่งที่มีประโยชน์
ATE0 - สำหรับ echo off
AT + CMNI = 2,2,0,0,0 <ENTER> - ข้อความที่เปิดโดยอัตโนมัติได้รับ (ไม่จำเป็นต้องเปิดข้อความ)
ATD <หมายเลขโทรศัพท์มือถือ>; <ENTER> - โทรออก (ATD + 919610126059; \ r \ n)
AT + CMGF = 1 <ENTER> - การเลือกโหมดข้อความ
AT + CMGS =” หมายเลขโทรศัพท์มือถือ” <ENTER> - การกำหนดหมายเลขโทรศัพท์มือถือของผู้รับ
>> ตอนนี้เราสามารถเขียนข้อความของเรา
>> หลังจากเขียนข้อความ
Ctrl + Z - ส่งคำสั่งข้อความ (26 เป็นทศนิยม)
ENTER = 0x0d ใน HEX

การทำงาน

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

แผนภูมิวงจรรวม

 วงจรไดอะแกรมสำหรับเซ็นเซอร์ PIR และระบบรักษาความปลอดภัยบ้าน GSM
การเชื่อมต่อวงจรจะแสดงในแผนภาพวงจรข้างต้น หมุด Rx และ Tx ของโมดูล GSM เชื่อมต่อโดยตรงกับไมโครคอนโทรลเลอร์ Tx และ Rx และจัดหาโดยใช้อะแดปเตอร์ 12 โวลต์ พิน Dout ของโมดูลเซ็นเซอร์ PIR เชื่อมต่อโดยตรงที่ pin 21 (P2 ^ 0) ของไมโครคอนโทรลเลอร์พร้อมตัวต้านทานแบบดึงขึ้น 10K วงจรออสซิลเลเตอร์คริสตัล 11.0592 MHz ใช้สำหรับสร้างสัญญาณนาฬิกาสำหรับไมโครคอนโทรลเลอร์ และควบคุมแรงดันไฟฟ้า 5 โวลต์ใช้สำหรับให้ 5 โวลต์สำหรับวงจรทั้งหมด

คำอธิบายโปรแกรม

ในการเขียนโปรแกรมอันดับแรกเรามีไฟล์ส่วนหัวและกำหนดอินพุตและเอาต์พุตพินและตัวแปร
#include <reg51.h>

sbit PIR = P2 ^ 0;
หลังจากนี้เราได้สร้างฟังก์ชันสำหรับการหน่วงเวลา
 โมฆะล่าช้า (int itime)
{
    int i, j;
    สำหรับ (i = 0; i <iTime; i ++)
    สำหรับ (ญ = 0; J <1275; J ++);
}
ที่นี่เรามีฟังก์ชั่นบางอย่างที่เราใช้ในโปรแกรมของเรา ในที่นี้เราได้กำหนดค่าอัตรารับส่งข้อมูล 9600bps ที่ความถี่คริสตัล 11.0592MHz และฟังก์ชั่นสำหรับรับ เรากำลังตรวจสอบการลงทะเบียน SBUF เพื่อรับข้อมูล
เป็นโมฆะ Serialbegin ()
{
 TMOD = 0x20;
 SCON = 0x50;
 TH1 = 0xfd;
 TR1 = 1;
}

ถือเป็นโมฆะ Serialwrite (char dat)
{
  SBUF = ดาด;
  ในขณะที่ (TI);
  TI = 0;
}

ถือเป็นโมฆะ Serialprintln (ถ่าน * p)
{
  ในขณะที่ (* P)
  {
    Serialwrite (p *);
    P ++;
  }
  Serialwrite (0x0D);
}  
หลังจากนี้ในโปรแกรมหลักเราได้เริ่มต้น UART แล้วเราอ่านผลลัพธ์ของโมดูลเซ็นเซอร์ PIR และถ้าเซ็นเซอร์ให้ตรรกะสูงในการควบคุมไมโครคอนโทรลเลอร์จะทำการโทรด้วยการส่งข้อความในเวลาเดียวกันโดยใช้คำสั่ง AT
โมฆะหลัก ()
{
    // P2 = 0x00;
    Serialbegin ();
    Serialprintln ( "ATE0");
    ล่าช้า (50);
    ในขณะที่ (1)
    {
      ถ้า (PIR)
      {
        Serialprintln ( "ATD + 919821757249;");
        ล่าช้า (1000)
      // lcdcmd (192);
      // lcdprint ("การส่งข้อความ");
        Serialprintln ( "ที่ + CMGF = 1");
        ล่าช้า (50);
        Serialprintln ( "ที่ + CMGs = \" + 919821757249 \ "");
        ล่าช้า (50);
        Serialprintln ("มีใครบางคนเข้ามาแทนที่");
        ล่าช้า (50);
        Serialwrite (26);
      }
    }
}
รหัส
#include <reg51.h>
sbit PIR = P2 ^ 0;
 void delay (int itime) 

    int i, j; 
    สำหรับ (i = 0; i <itime; i ++) 
    สำหรับ (j = 0; j <1275; j ++); 
}
เป็นโมฆะ Serialbegin () 

 TMOD = 0x20; 
 SCON = 0x50; 
 TH1 = 0xfd; 
 TR1 = 1; 
}
ถือเป็นโมฆะ Serialwrite (char dat) 

  SBUF = dat; 
  ในขณะที่ (TI); 
  TI = 0; 
}
ถือเป็นโมฆะ Serialprintln (ถ่าน * p) 

  ในขณะที่ (* p) 
  { 
    Serialwrite (* p); 
    P ++; 
  } 
  Serialwrite (0x0d); 
}  
ถือเป็นโมฆะ main () 

    // P2 = 0x00; 
    Serialbegin (); 
    Serialprintln ( "ATE0"); 
    ล่าช้า (50); 
    ในขณะที่ (1) 
    { 
      ถ้า (PIR) 
      { 
        Serialprintln ("ATD + 919821757249;"); 
        ล่าช้า (1000) 
    // lcdcmd (192); 
   // lcdprint ("การส่งข้อความ"); 
        Serialprintln ( "ที่ + CMGF = 1"); 
        ล่าช้า (50); 
        Serialprintln ( "ที่ + CMGs = \" + 919821757249 \ ""); 
        ล่าช้า (50); 
        Serialprintln ("มีใครบางคนเข้ามาแทนที่"); 
        ล่าช้า (50); 
        Serialwrite (26); 
      } 
    } 
}