เซ็นเซอร์ PIR และระบบรักษาความปลอดภัยของ GSM
ที่ฝัง
ในโครงการนี้เราจะไปพัฒนาเซ็นเซอร์ 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 วงจรเซ็นเซอร์
โมดูล GSM
SIM900ที่สมบูรณ์แบบ Quad-band GSM / GPRS โมดูล ที่มาพร้อมกับระบบ GSM / GPRS ประสิทธิภาพ 850/900 / 1800 / 1900MHz สำหรับเสียง, SMS และข้อมูลด้วยการใช้พลังงานต่ำ
คำสั่ง 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
แผนภูมิวงจรรวม
การเชื่อมต่อวงจรจะแสดงในแผนภาพวงจรข้างต้น หมุด 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 ++);
}
{
int i, j;
สำหรับ (i = 0; i <itime; i ++)
สำหรับ (j = 0; j <1275; j ++);
}
เป็นโมฆะ Serialbegin ()
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xfd;
TR1 = 1;
}
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xfd;
TR1 = 1;
}
ถือเป็นโมฆะ Serialwrite (char dat)
{
SBUF = dat;
ในขณะที่ (TI);
TI = 0;
}
{
SBUF = dat;
ในขณะที่ (TI);
TI = 0;
}
ถือเป็นโมฆะ Serialprintln (ถ่าน * p)
{
ในขณะที่ (* p)
{
Serialwrite (* p);
P ++;
}
Serialwrite (0x0d);
}
{
ในขณะที่ (* 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);
}
}
}
{
// 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);
}
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น