เมื่อเริ่มต้นฤดูร้อนจึงมีความจำเป็นต้องปกป้องบ้านในชนบท ฉันต้องการทำสัญญาณกันขโมยที่เรียบง่าย แต่น่าเชื่อถือด้วยสัญญาณที่ส่งไปยังโทรศัพท์มือถือ มีการตัดสินใจที่จะรวบรวมอุปกรณ์ที่มีการส่งสัญญาณเตือนไปยังโทรศัพท์มือถือตาม อิเล็กทรอนิกส์ แผงวงจรซื้อใน Aliexpress ตามที่พวกเขาพูดถูก แต่ร่าเริง องค์ประกอบหลักของการออกแบบนี้คือโมดูล GSM SIM800L และบอร์ด Arduino (คุณสามารถใช้ใด ๆ - นาโน, Uno, Pro Mini และอื่น ๆ )
อุปกรณ์มีสัญญาณเตือนห้าอินพุตสำหรับเซ็นเซอร์สัมผัส เซ็นเซอร์หนึ่งตัวหรือหลายตัวที่ต่ออนุกรมสามารถเชื่อมต่อกับแต่ละอินพุตได้ในแบบร่างกำหนดชื่อให้กับแต่ละลูปการรักษาความปลอดภัย (เช่นประตูทางเข้าหน้าต่าง 1 หน้าต่าง 2 และอื่น ๆ ) อุปกรณ์รักษาความปลอดภัยทำงานดังนี้: เมื่อวงจรไฟฟ้าของลูปแรกเสียหน่วยแรกทำการโทรไปยังโทรศัพท์เครื่องแรกของผู้สมัครสมาชิกจากนั้นหยุดการโทรและหมายเลข 2 หมายเลข 2 เป็นสิ่งจำเป็นเนื่องจากข้อเท็จจริงที่ว่าหากสมาชิกรายแรกออฟไลน์หรือแบตเตอรี่และปัญหาอื่น ๆ ติดอยู่) หากวนซ้ำตามลำดับแรกจะถูกทริกเกอร์ข้อความ SMS จะถูกส่งพร้อมชื่อของลูปที่ใช้งานได้ในกรณีเดียวกันทั้งสองหมายเลขสมาชิก
การระบุเครื่องมือและวัสดุ
แบตเตอรี่ลิเธียมไอออนจากโทรศัพท์เก่า 3.7V \ 1600mA-1pc
- เชื่อมต่อสายไฟ
หัวแร้ง;
ทดสอบ;
- กล่องพลาสติกใส -1 ชิ้น;
แต่งตัว Arduino นาโน -1 ชิ้น;
- ตัวต้านทาน 10kOhm-7pcs;
- เขียงหั่นขนมที่ทำจากฟอยล์ textolite
- สวิตช์ไฟ 1 ชิ้น;
- โมดูล SIM800L -1 ชิ้น;
- ลดบอร์ด 1-2A -1 ชิ้น;
- ขั้วต่อเทอร์มินัล
ขั้นตอนแรก. การประกอบวงจรของอุปกรณ์รักษาความปลอดภัยระบบ GSM
รูปแบบภาพถ่าย
เราประสานแผ่นรองปลั๊กอินสำหรับโมดูล GSM SIM800L และโมดูล Arduino เข้ากับเขียงหั่นขนมทำให้การติดตั้งง่ายขึ้นและทำให้ง่ายต่อการเปลี่ยนโมดูลหากจำเป็น ตัวต้านทานบัดกรีและการเชื่อมต่ออื่น ๆ ตัวต้านทานจากขา RX ของโมดูล SIM800L เชื่อมต่อกับอินพุตดิจิตอล Arduino D3 เพื่อให้ตรงกับแรงดันไฟฟ้าของอินพุตของโมดูลทั้งสอง Arduino D4-D8 อินพุตถูกดึงผ่านตัวต้านทาน สวิตช์นี้ติดตั้งอยู่ในช่องว่างของแหล่งจ่ายไฟของโมดูล SIM800 GSM และบอร์ด Arduino สำหรับติดตั้งระบบทั้งหมด การใช้แบตเตอรี่ซึ่งจะอนุญาตให้อุปกรณ์ทำงานเป็นเวลาสองสามวันในกรณีที่ไม่มีเครือข่าย 220 V ในกรณีของฉันตัวแปลงแรงดันไฟฟ้าจากแรงดันไฟฟ้า 12 V จะสร้างแรงดันไฟฟ้า 4.2 V และในขณะเดียวกันก็ทำการชาร์จแบตเตอรี่
ขั้นตอนที่สอง. การเขียนโปรแกรมอุปกรณ์
ควรลบรหัส PIN และฟังก์ชั่นที่ไม่จำเป็นทั้งหมดในซิมการ์ดยังคุณต้องกำหนดค่าโมดูล SIM800L เองก่อนมีวิดีโอจำนวนมากในหัวข้อนี้ในเครือข่ายไม่มีอะไรซับซ้อนเกี่ยวกับเรื่องนี้ ในร่างเราระบุหมายเลขโทรศัพท์ของคุณปรับชื่อของโซนความปลอดภัยคุณสามารถตั้งเวลาสำหรับการตรวจสอบระบบ (หากอุปกรณ์ทำงานอย่างถูกต้องหลังจากเวลาที่กำหนด SMS ควบคุมจะมา) เติมร่างใน Arduino และตรวจสอบการทำงานของอุปกรณ์
วาด:
จำนวนสตริง Call_1 = "79123456789"; // หมายเลขสมาชิก№1สำหรับการโทร
จำนวนสตริงSMS_1 = "+79123456789"; // หมายเลขสมาชิกหมายเลข 1 สำหรับ SMS (แตกต่างกันเฉพาะในเครื่องหมาย +)
สตริง numberCall_2 = "79123456782"; // หมายเลขสมาชิก 2 สำหรับการโทร
จำนวนสตริงSMS_2 = "+79123456782"; // หมายเลขสมาชิกหมายเลข 2 สำหรับ SMS (แตกต่างกันเฉพาะในเครื่องหมาย +)
String textZone_1 = "Alarm! Zone1"; // ชื่อของมันเป็นภาษาละติน
String textZone_2 = "Alarm! Zone2"; // ชื่อของมันเป็นภาษาละติน
String textZone_3 = "Alarm! Zone3"; // ชื่อของมันเป็นภาษาละติน
String textZone_4 = "Alarm! Zone4"; // ชื่อของมันเป็นภาษาละติน
#include
ซอฟต์แวร์ Sirial mySerial (2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
โมฆะ initGSM (เป็นโมฆะ) {
ความล่าช้า (2000);
mySerial.begin (9600); // ตั้งความเร็วการสื่อสารด้วยโมดูล GSM 9600 Baud / วินาที
mySerial.println ("AT + CLIP = 1");
ล่าช้า (300);
mySerial.println ("AT + CMGF = 1");
ล่าช้า (300);
mySerial.println ("AT + CSCS = \" GSM \ "");
ล่าช้า (300);
mySerial.println ("AT + CNMI = 2,2,0,0,0");
ล่าช้า (300);
}
/ * การส่ง SMS * /
เป็นโมฆะ sendSMS (ข้อความสตริงโทรศัพท์สตริง) {
mySerial.println ("AT + CMGS = \" "+ โทรศัพท์ +" \ "");
ล่าช้า (500);
mySerial.print (ข้อความ);
ล่าช้า (500);
mySerial.print ((ตัวอักษร) 26);
ล่าช้า (2500);
}
longType = 0;
uint8_t ชั่วโมง = 0;
uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;
การตั้งค่าเป็นโมฆะ () {
mySerial.begin (9600);
initGSM ();
pinMode (pinSensor_0, INPUT);
pinMode (pinSensor_1, INPUT);
pinMode (pinSensor_2, INPUT);
pinMode (pinSensor_3, INPUT);
pinMode (pinSensor_4, INPUT);
timerTemp = มิลลิวินาที ();
}
void loop () {
if (millis () - timerTemp> = 3600000) {timerTemp = millis (); ชั่วโมง ++;}
ถ้า (ชั่วโมง> = 144) {// เปลี่ยนเวลาการควบคุมระบบเป็นของเราเอง 144 ชั่วโมงจำนวนชั่วโมง
sendSMS (String ("ระบบทำงานตามปกติ OK"), numberSMS_1);
ล่าช้า (10,000);
sendSMS (String ("ระบบทำงานตามปกติ OK"), numberSMS_2);
ล่าช้า (10,000);
ชั่วโมง = 0;
timerTemp = มิลลิวินาที ();
}
if (flagSensor_0 == 0 && digitalRead (pinSensor_0) == 0) flagSensor_0 = 1;
if (flagSensor_1 == 0 && digitalRead (pinSensor_1) == 0) flagSensor_1 = 1;
if (flagSensor_2 == 0 && digitalRead (pinSensor_2) == 0) flagSensor_2 = 1;
if (flagSensor_3 == 0 && digitalRead (pinSensor_3) == 0) flagSensor_3 = 1;
if (flagSensor_4 == 0 && digitalRead (pinSensor_4) == 0) flagSensor_4 = 1;
if (flagSensor_0 == 1) {
คำสั่ง String;
คำสั่ง = "ATD +" + numberCall_1 + ";"
mySerial.println (คำสั่ง);
ล่าช้า (20,000)
mySerial.println ("ATH");
ล่าช้า (1,000);
คำสั่ง = "ATD +" + numberCall_2 + ";";
mySerial.println (คำสั่ง);
ล่าช้า (20,000)
mySerial.println ("ATH");
ล่าช้า (1,000);
flagSensor_0 = 2;
}
if (flagSensor_1 == 1) {
sendSMS (textZone_1, numberSMS_1);
ล่าช้า (10,000);
sendSMS (textZone_1, numberSMS_2);
ล่าช้า (10,000);
flagSensor_1 = 2;
}
if (flagSensor_2 == 1) {
sendSMS (textZone_2, numberSMS_1);
ล่าช้า (10,000);
sendSMS (textZone_2, numberSMS_2);
ล่าช้า (10,000);
flagSensor_2 = 2;
}
if (flagSensor_3 == 1) {
sendSMS (textZone_3, numberSMS_1);
ล่าช้า (10,000);
sendSMS (textZone_3, numberSMS_2);
ล่าช้า (10,000);
flagSensor_3 = 2;
}
if (flagSensor_4 == 1) {
sendSMS (textZone_4, numberSMS_1);
ล่าช้า (10,000);
sendSMS (textZone_4, numberSMS_2);
ล่าช้า (10,000);
flagSensor_4 = 2;
}
if (flagSensor_0 == 2 && digitalRead (pinSensor_0)! = 0) flagSensor_0 = 0;
if (flagSensor_1 == 2 && digitalRead (pinSensor_1)! = 0) flagSensor_1 = 0;
if (flagSensor_2 == 2 && digitalRead (pinSensor_2)! = 0) flagSensor_2 = 0;
if (flagSensor_3 == 2 && digitalRead (pinSensor_3)! = 0) flagSensor_3 = 0;
if (flagSensor_4 == 2 && digitalRead (pinSensor_4)! = 0) flagSensor_4 = 0;
}
ขั้นตอนที่สาม. ตรวจสอบสภาพของอุปกรณ์
เมื่อใช้พลังงานในขณะที่โมดูล SIM800L และบอร์ด Arduino กำลังโหลดคุณมีเวลาประมาณ 20 วินาทีในการออกจากห้องรักษาความปลอดภัย บนโมดูล SIM800L ไฟ LED จะระบุกิจกรรมเครือข่ายบ่อยครั้งที่มันค้นหาเครือข่ายทุกๆห้าวินาทีจะแสดงการทำงานของเครือข่าย เมื่ออุปกรณ์ค้นหาเครือข่ายให้ยกเลิกการเชื่อมต่ออินพุตความปลอดภัยที่เกี่ยวข้องหลังจากนั้นจะมีการเรียกผ่านสายโทรศัพท์หรือส่ง SMS ดังนั้นอุปกรณ์ทำงานได้ดี
ภาพถ่าย SMS มันจะเป็นไปได้ที่จะรวมเครื่องตรวจจับความปลอดภัยใด ๆ กับเอาท์พุทในรูปแบบของการติดต่อ, รีเลย์จากแอคทูเอเตอร์ตามความต้องการและจินตนาการของคุณเท่านั้น โดยทั่วไปเราผลิตอุปกรณ์ความปลอดภัยที่เรียบง่าย ช่างยามทำโฮมเมดดังกล่าวสามารถทำเพื่อจัดระเบียบการป้องกันของวัตถุใด ๆ ในการเปิดอุปกรณ์เตือนภัยคุณต้องจ่าย 4.2 โวลต์ผ่านสวิตช์บน SIM800 และ Arduino ที่ทางเข้าแรกการโทรจะถูกส่งไปยังผู้สมัครสมาชิกหมายเลข 1 หลังจากนั้นจะเปลี่ยนเป็นหมายเลข 2 เพิ่มเติมหมายเลข 2 มีไว้สำหรับการทำซ้ำ หมายเลขวงเปิด 2,3,4,5 ทำให้การออก SMS ด้วยชื่อเฉพาะของวงวนที่ขาดตามลำดับบนโทรศัพท์ทั้งสองเครื่อง เราจะวางบอร์ดทั้งหมดในกรณีที่เหมาะสม โดยทั่วไปแล้วฉันคิดว่านี่เป็นอุปกรณ์ที่น่าสนใจดีที่สามารถพัฒนาต่อไปได้ - เพิ่มฟังก์ชั่นของซ็อกเก็ต GSM, การควบคุม DMTF และอื่น ๆ อีกมากมาย
รายละเอียดเพิ่มเติมสามารถดูได้ในวิดีโอ
ฉันขอให้คุณสุขภาพและความสำเร็จในชีวิตและการทำงาน!