เว็บไซต์ปรับปรุงห้องน้ำ. คำแนะนำที่เป็นประโยชน์

สัญญาณเตือนบ้านหรือใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหวและจอ LCD กับ Arduino สัญญาณเตือนไร้สายจาก Arduino มันทำงานอย่างไร

ผู้เขียนต้องการทำแบบโฮมเมดเพื่อให้ราคาถูกและไร้สาย
ผลิตภัณฑ์โฮมเมดนี้ใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR และข้อมูลจะถูกส่งโดยใช้โมดูล RF

ผู้เขียนต้องการใช้โมดูลอินฟราเรด แต่เนื่องจากมีช่วงที่จำกัดและสามารถทำงานได้ เท่านั้นระยะสายตาไปยังเครื่องรับ ดังนั้นเขาจึงเลือกใช้โมดูล RF ที่สามารถบรรลุช่วงประมาณ 100 เมตร


เพื่อให้ผู้เข้าชมดูนาฬิกาปลุกได้สะดวกยิ่งขึ้น ฉันจึงตัดสินใจแบ่งบทความออกเป็น 5 ขั้นตอน:
ขั้นตอนที่ 1: การสร้างเครื่องส่ง
ขั้นตอนที่ 2: สร้างเครื่องรับ
ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์
ขั้นตอนที่ 4: การทดสอบโมดูลที่ประกอบ
ขั้นตอนที่ 5: การประกอบเคสและติดตั้งโมดูลเข้าไป

สิ่งที่ผู้เขียนต้องการคือ:
- 2 บอร์ด ARDUINO UNO / ARDUINO MINI / ARDUINO NANO สำหรับเครื่องรับและเครื่องส่ง;
- โมดูลตัวรับส่งสัญญาณ RF (433 MHZ);
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR;
- แบตเตอรี่ 9V (2 ชิ้น) และขั้วต่อ
- ออด;
- ไดโอดเปล่งแสง;
- ตัวต้านทานที่มีความต้านทาน 220 โอห์ม
- กระดานขนมปัง;
- จัมเปอร์ / สายไฟ / จัมเปอร์;
- แผงวงจร;
- ขั้วต่อพินอินเทอร์บอร์ด
- สวิตช์;
- เคสสำหรับเครื่องรับและเครื่องส่ง;
- กระดาษสี
- เทปติด;
- มีดผ่าตัดแบบตั้งประเภท;
- ปืนกาวร้อน
- หัวแร้ง;
- ก้ามปู / เครื่องมือสำหรับถอดฉนวน
- กรรไกรตัดโลหะ


ขั้นตอนที่ 1
มาเริ่มสร้างเครื่องส่งกัน
ด้านล่างเป็นแผนภาพของเซ็นเซอร์ตรวจจับความเคลื่อนไหว


ตัวส่งสัญญาณเองประกอบด้วย:
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว;
- บอร์ด Arduino;
- โมดูลส่งสัญญาณ


ตัวเซ็นเซอร์เองมีสามเอาต์พุต:
- วีซีซี;
- จีเอ็นดี;
- ออก.

หลังจากนั้นฉันตรวจสอบการทำงานของเซ็นเซอร์


ความสนใจ!!!
ก่อนอัปโหลดเฟิร์มแวร์ ผู้เขียนต้องแน่ใจว่าบอร์ดปัจจุบันและพอร์ตอนุกรมได้รับการตั้งค่าอย่างถูกต้องในการตั้งค่า Arduino IDE จากนั้นฉันก็อัปโหลดภาพร่าง:

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


ตามแผนภาพด้านล่าง


เครื่องส่งมี 3 เอาต์พุต (VCC, GND และ Data) ให้เชื่อมต่อ:
- VCC > เอาต์พุต 5V บนบอร์ด;
- GND > GND ;
- ข้อมูล > 12 เอาต์พุตบนบอร์ด

ระยะที่ 2


ตัวรับเองประกอบด้วย:
- โมดูลรับสัญญาณ RF;
- บอร์ด Arduino
- Buzzer (ลำโพง)

ไดอะแกรมผู้รับ:


เครื่องรับ เช่น เครื่องส่ง มี 3 เอาต์พุต (VCC, GND และข้อมูล) เราเชื่อมต่อ:
- VCC > เอาต์พุต 5V บนบอร์ด;
- GND > GND ;
- ข้อมูล > 12 เอาต์พุตบนบอร์ด


ขั้นตอนที่ 3
ผู้เขียนเลือกไฟล์ไลบรารีเป็นพื้นฐานสำหรับเฟิร์มแวร์ทั้งหมด ฉันดาวน์โหลดที่เขา และวางไว้ในโฟลเดอร์ห้องสมุด Arduino

ซอฟต์แวร์ส่งสัญญาณ
ก่อนอัปโหลดรหัสเฟิร์มแวร์ไปยังบอร์ด ผู้เขียนตั้งค่า พารามิเตอร์ต่อไปนี้ไอดี:
- กระดาน -> Arduino นาโน(หรือบอร์ดที่คุณใช้);
- พอร์ตอนุกรม ->


หลังจากตั้งค่าพารามิเตอร์แล้ว ผู้เขียนดาวน์โหลดไฟล์เฟิร์มแวร์ Wireless_tx และอัปโหลดไปยังบอร์ด:

ซอฟต์แวร์ตัวรับ
ผู้เขียนทำซ้ำขั้นตอนเดียวกันสำหรับกระดานรับ:
- บอร์ด -> Arduino UNO (หรือบอร์ดใดก็ตามที่คุณใช้อยู่)
- พอร์ตอนุกรม -> COM XX (ตรวจสอบพอร์ต com ที่บอร์ดของคุณเชื่อมต่ออยู่)



หลังจากที่ผู้เขียนตั้งค่าพารามิเตอร์แล้ว เขาดาวน์โหลดไฟล์ wireless_rx และอัปโหลดไปยังบอร์ด:


หลังจากใช้โปรแกรมที่สามารถดาวน์โหลดได้ ผู้เขียนสร้างเสียงสำหรับออด

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


ขั้นตอนที่ 5
การประกอบขั้นสุดท้ายของเครื่องส่งสัญญาณ
ขั้นแรก ผู้เขียนตัดลีดที่ยื่นออกมาจากเครื่องรับ ตัวส่งสัญญาณ บอร์ด Arduino ฯลฯ


หลังจากนั้น ฉันเชื่อมต่อบอร์ด Arduino กับเซ็นเซอร์ตรวจจับความเคลื่อนไหวและเครื่องส่งสัญญาณ RF โดยใช้จัมเปอร์


ต่อจากนั้น ผู้เขียนก็เริ่มทำเคสสำหรับเครื่องส่ง

อย่างแรก เขาตัดออก: รูสำหรับสวิตช์ เช่นเดียวกับรูกลมสำหรับเซ็นเซอร์ตรวจจับความเคลื่อนไหว หลังจากนั้นเขาก็ติดกาวเข้ากับเคส




จากนั้นผู้เขียนพับกระดาษสีแผ่นหนึ่งแล้วติดภาพบนปกด้านหน้าเพื่อซ่อนชิ้นส่วนภายในของผลิตภัณฑ์โฮมเมด


หลังจากนั้นผู้เขียนก็เริ่มใส่ไส้อิเล็กทรอนิกส์เข้าไปในเคสโดยใช้เทปกาวสองหน้า



การประกอบเครื่องรับขั้นสุดท้าย
ผู้เขียนตัดสินใจเชื่อมต่อบอร์ด Arduino กับแผงวงจรด้วยแถบยาง และติดตั้งเครื่องรับ RF ด้วย


ถัดไป ผู้เขียนตัดสองรูบนตัวอีกข้างหนึ่ง รูหนึ่งสำหรับออด อีกรูสำหรับสวิตช์


และแท่ง


หลังจากนั้นผู้เขียนจะติดตั้งจัมเปอร์ในรายละเอียดทั้งหมด




จากนั้นผู้เขียนก็ใส่บอร์ดที่ทำเสร็จแล้วเข้าไปในเคสแล้วแก้ไขด้วยกาวสองหน้า

สัญญาณเตือน GSM บน Arduino

ในบทความนี้ คุณจะได้เรียนรู้วิธี (ซื้อ) สร้างระบบเตือนภัย GSM ของคุณเองโดยใช้โมดูล GSM และ Arduino ในราคาถูกมาก วัตถุประสงค์ของการรักษาความปลอดภัยสัญญาณเตือนภัย GSM นั้นเหมาะสำหรับบ้านฤดูร้อน, บ้าน, โรงรถ, อพาร์ตเมนต์


ขั้นตอนที่ 1: องค์ประกอบ
สำหรับโครงการนี้ คุณจะต้อง:


GSM Shield

Buzzer
ไซเรนปลุก 12V
แหล่งจ่ายไฟ 12V

คีย์บอร์ดสำหรับ Arduino
กรอบ.

ขั้นตอนที่ 2: เชื่อมต่อส่วนประกอบ


ก่อนอื่น คุณจะต้องวางโมดูล GSM บน Arduino Uno คุณจะต้องบัดกรีสาย GND และ VCC พร้อมกับเซ็นเซอร์สองตัว ออดและอินพุตโมดูลรีเลย์ หลังจากนั้นให้เชื่อมต่อสายบัดกรีเหล่านี้กับขั้วต่อตัวป้องกัน GSM ที่เกี่ยวข้อง ต่อไปคุณจะต้องทำการเชื่อมต่อสัญญาณเข้า/ส่งออกจากชิ้นส่วนเหล่านี้ และสิ่งสุดท้ายที่คุณต้องทำคือเชื่อมต่อแป้นพิมพ์

เทอร์มินัล Arduino Uno/GSM:

พิน 0: ไม่ได้เชื่อมต่อ;
สรุป 1: ไม่เกี่ยวข้อง;
พิน 2: ไม่เชื่อมต่อ (GSM จะใช้พินนี้);
พิน 3: ไม่เชื่อมต่อ (GSM จะใช้พินนี้);
พิน 4: บรรทัดสุดท้ายโดยใช้แป้นพิมพ์ (พินแป้นพิมพ์ 4 - จาก 8);
สรุป 5: ไม่เกี่ยวข้อง;
พิน 6: คอลัมน์ที่สองโดยใช้แป้นพิมพ์ (พินแป้นพิมพ์ 6 - กับ 8);
สรุป 7: คอลัมน์ที่สามจากแป้นพิมพ์ (นิ้วของแป้นพิมพ์ 7 - จาก 8);
พิน 8: ไม่เชื่อมต่อ (GSM จะใช้พินนี้);
พิน 9: ไม่เชื่อมต่อ (GSM จะใช้พินนี้);
พิน 10: ข้อมูลเซ็นเซอร์ PIR #2;
ข้อสรุป 11: สัญญาณเสียงไซเรน (จ่ายให้กับอินพุตของโมดูลรีเลย์);
พิน 12: ข้อมูลเซ็นเซอร์ PIR #1;
พิน 13: อินพุตออด;

อย่างที่คุณเห็น แม้ว่าแป้นพิมพ์จะมี 8 พิน แต่เชื่อมต่อกันเพียงสามอัน (หนึ่งแถวและสองคอลัมน์ ซึ่งช่วยให้สามารถอ่านตัวเลขได้สองตัว - 1 × 2 เมทริกซ์) ดังนั้นฉันจึงสร้างรหัสผ่านโดยใช้สามสายนี้และไม่มี จำเป็นต้องใช้ผู้ติดต่อทั้งหมดจากแป้นพิมพ์ เนื่องจากเมื่อเซ็นเซอร์ตรวจจับความเคลื่อนไหวตรวจพบคนที่กำลังเดินอยู่ในห้อง บุคคลนั้นจะมีเวลาเพียง 5 วินาทีในการปิดนาฬิกาปลุก หลังจากที่นาฬิกาปลุกไม่ปิด ช่วงเวลานี้เวลา GSM shield จะส่ง SMS ถึงคุณหรือโทรไปที่หมายเลขโทรศัพท์ของคุณ Arduino ได้รับการตั้งโปรแกรมให้โทรออกและทันทีที่คุณรับสายก็จะวางสาย

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

ขั้นตอนที่ 3: รหัส

เพียงดาวน์โหลดโค้ดด้านล่างและคอมไพล์ ใช้ไลบรารี Keypad.h และ GSM.h
ดาวน์โหลดไฟล์: (ดาวน์โหลด: 181)
ดาวน์โหลดไฟล์: (ดาวน์โหลด: 104)

ขั้นตอนที่ 4: บทสรุป


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

วันนี้เราจะมาพูดถึงวิธีการใช้ Arduinoเก็บรวบรวม ระบบรักษาความปลอดภัย. "ผู้พิทักษ์" ของเราจะปกป้องวงจรหนึ่งวงจรและควบคุมผู้ประกาศหนึ่งคน

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

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

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

อุปกรณ์ ระบบรักษาความปลอดภัย ง่ายมาก (รูปที่ 2) ที่หัวใจของกระดาน Arduino. ลิมิตสวิตช์มีการเชื่อมต่อเหมือนปุ่มปกติผ่านตัวต้านทานแบบดึงขึ้น ฉันจะอาศัยสวิตช์ จำกัด แยกต่างหาก ปกติจะปิดและเปิดตามปกติ คุณสามารถเปิดปุ่มปกติเป็นลิมิตสวิตช์ได้ มีเพียงระยะการเดินทางของปุ่มปกติเท่านั้นที่มีขนาดใหญ่มาก ระยะเปิดประตูมักจะมีขนาดใหญ่กว่า ดังนั้นจึงจำเป็นต้องสร้างตัวผลักสำหรับปุ่มและสปริงเพื่อไม่ให้ปุ่มพังด้วยประตู ถ้าไม่ขี้เกียจเกินไปคุณสามารถไปที่ร้านและซื้อสวิตช์แม่เหล็ก (สวิตช์กก) (รูปที่ 3) เขาไม่กลัวฝุ่นและมลพิษ

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

ในฐานะที่เป็นไซเรน ฉันเสนอให้ใช้เครื่องแจ้งเสียง PKI-1 IVOLGA ของการผลิตในเบลารุส (รูปที่ 5) แรงดันไฟจ่าย 9 - 15 V, กระแสไฟทำงาน 20 - 30 mA ซึ่งช่วยให้สามารถใช้กับพลังงานแบตเตอรี่ได้ ในขณะเดียวกันก็ "ให้" 95 - 105 dB

ด้วยคุณสมบัติดังกล่าวจากแบตเตอรี่ Krona มันจะส่งเสียงเป็นเวลาหลายสิบนาที ฉันพบมันบนอินเทอร์เน็ตสำหรับ 110 rubles ในที่เดียวกันสวิตช์กกพร้อมแม่เหล็กมีราคาประมาณ 30 รูเบิล ซื้อสวิตช์จากสัญญาณเตือนรถในชิ้นส่วนรถยนต์ราคา 28 รูเบิล ทรานซิสเตอร์ KT315 สามารถใช้ตัวอักษรใดก็ได้ หรือแทนที่ด้วยทรานซิสเตอร์ซิลิคอนกำลังต่ำที่ทันสมัยซึ่งมีการนำไฟฟ้าที่เหมาะสม หากปริมาตรของตัวประกาศหนึ่งตัวไม่เพียงพอ (ใครจะรู้ บางทีคุณอาจต้องการให้ได้ยินหลายกิโลเมตร) คุณสามารถเชื่อมต่อผู้ประกาศหลายตัวแบบขนานหรือใช้อันทรงพลังกว่า ในกรณีนี้ ทรานซิสเตอร์จะต้องถูกแทนที่ด้วยมากกว่า อันทรงพลัง (ตัวอย่างเช่น ULN2003) การประกอบทรานซิสเตอร์ที่คุ้นเคย ในฐานะตัวเชื่อมต่อสำหรับเชื่อมต่อสวิตช์กกและไซเรน ฉันใช้ตัวเชื่อมต่อที่ง่ายที่สุดสำหรับอุปกรณ์เสียง / วิดีโอ - ราคาในตลาดวิทยุคือ 5 รูเบิล สำหรับคู่รัก

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

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

ตอนนี้รหัส

// ถาวร
ปุ่ม const int = 12; // หมุดปุ่ม
const int gerkon = 3; // พินสำหรับสวิตช์กก
const int sirena = 2; // ไซเรนควบคุมพิน
const int led = 13; // พินอินดิเคเตอร์
// ตัวแปร
int buttonState = 0; // สถานะปุ่ม
intgerkonState=0; // สถานะของสวิตช์กก
int ยังไม่มีข้อความ = 0; // ตัวนับปุ่มปลดอาวุธ
การตั้งค่าเป็นโมฆะ()(
// การควบคุมไซเรนและตัวบ่งชี้ - ออก
โหมดพิน (ซีรีน่า, เอาต์พุต);
โหมดพิน (นำ, เอาต์พุต); // ปุ่มและสวิตช์กก - อินพุต
pinMode(gerkon, INPUT);
pinMode (ปุ่ม, INPUT);
}
วงเป็นโมฆะ()(
digitalWrite (นำสูง);
while(buttonState= =0)( // รอวนจนกว่าจะกดปุ่ม
buttonState = digitalRead (ปุ่ม); // เพื่อเปลี่ยนเป็นโหมดติดอาวุธ
}
digitalWrite (นำ, ต่ำ);
buttonState=0; // รีเซ็ตค่าปุ่ม
while(gerkonState= =0)( // วนซ้ำจนกว่าเราจะปิดประตู

}
ล่าช้า (500); // :-)
digitalWrite (ซีรีน่า, สูง); // รหัส
ล่าช้า (100); // ข้อบ่งชี้
digitalWrite (ซีรีน่า, LOW); // รวม
ล่าช้า (70); // โหมด
digitalWrite (ซีรีน่า, สูง); // ยาม
ล่าช้า (100); // การแจ้งเตือน
digitalWrite (ซีรีน่า, LOW); // เสียง
while(gerkonState= =1)( // รอให้ประตูเปิด
gerkonState = digitalRead (gerkon);
}
สำหรับ (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead (ปุ่ม); // ปุ่มลับ
if (buttonState = = HIGH) ( // ติดตามของเรา - คนอื่น
N=N+1;
}
ล่าช้า (1500); // คุณลักษณะลับ :-)))
}
ถ้า (N > 0) ( // สำคัญที่สุด
digitalWrite (ซีรีน่า, LOW); // ห้ามเปิดไซเรน
}
อื่น(
digitalWrite (ซีรีน่า, สูง); // หรือเปิดไซเรน
}
digitalWrite (นำสูง); // เปิดตัวบ่งชี้ N = 0;
buttonState=0;
ล่าช้า (15000); // เตือนความจำสำหรับหุ่นที่ชอบ
digitalWrite (นำ, ต่ำ); // กดปุ่มโดยไม่ชักช้า (1,000);

สวัสดีทุกคน วันนี้เราจะมาดูอุปกรณ์ที่เรียกว่าเซ็นเซอร์ตรวจจับความเคลื่อนไหว พวกเราหลายคนเคยได้ยินเกี่ยวกับสิ่งนี้ บางคนถึงกับจัดการกับอุปกรณ์นี้ เซ็นเซอร์ตรวจจับความเคลื่อนไหวคืออะไร? ลองคิดดูสิ ดังนั้น:

เซ็นเซอร์ตรวจจับความเคลื่อนไหวหรือดิสเพลสเมนต์เซนเซอร์ - อุปกรณ์ (อุปกรณ์) ที่ตรวจจับการเคลื่อนไหวของวัตถุใด ๆ บ่อยครั้งที่อุปกรณ์เหล่านี้ใช้ในระบบรักษาความปลอดภัย การเตือนภัย และการตรวจสอบ เซนเซอร์เหล่านี้มีฟอร์มแฟคเตอร์มากมาย แต่เราจะพิจารณาโมดูลเซนเซอร์ตรวจจับความเคลื่อนไหวสำหรับเชื่อมต่อกับบอร์ด อาร์ดิโน,และจากบริษัท RobotDyn. ทำไมบริษัทนี้โดยเฉพาะ? ฉันไม่ต้องการโฆษณาร้านค้านี้และผลิตภัณฑ์ของร้าน แต่เป็นผลิตภัณฑ์ของร้านนี้ที่ได้รับเลือกให้เป็นตัวอย่างในห้องปฏิบัติการเนื่องจากการนำเสนอผลิตภัณฑ์ที่มีคุณภาพต่อผู้บริโภคปลายทาง แล้วพบกัน - เซ็นเซอร์ตรวจจับความเคลื่อนไหว(เซ็นเซอร์ PIR)จาก RobotDyn:


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

ลักษณะทางเทคนิคหลักของเซ็นเซอร์ตรวจจับความเคลื่อนไหว (PIR Sensor):

พื้นที่ทำงานของเซนเซอร์: ตั้งแต่ 3 ถึง 7 เมตร

มุมการติดตาม: สูงถึง 110 o

แรงดันไฟฟ้าที่ใช้งาน: 4.5...6 โวลต์

ปริมาณการใช้ปัจจุบัน: สูงถึง 50uA

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

การเริ่มต้นอุปกรณ์

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

มุมและพื้นที่การตรวจจับ

มุมการตรวจจับ (ติดตาม) คือ 110 องศา ช่วงระยะการตรวจจับอยู่ระหว่าง 3 ถึง 7 เมตร ภาพประกอบด้านล่างแสดงทั้งหมด:

การปรับความไว (ระยะการตรวจจับ) และการหน่วงเวลา

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


การเชื่อมต่อเซ็นเซอร์:

  • เซ็นเซอร์ PIR - Arduino Nano
  • เซ็นเซอร์ PIR - Arduino Nano
  • เซ็นเซอร์ PIR - Arduino Nano
  • PIR Sensor - สำหรับเซ็นเซอร์วัดแสง
  • PIR Sensor - สำหรับเซ็นเซอร์วัดแสง

แผนภาพการเชื่อมต่อทั่วไปแสดงไว้ในแผนภาพด้านล่าง ในกรณีของเรา เซ็นเซอร์จะแสดงแบบมีเงื่อนไขจากด้านหลังและเชื่อมต่อกับบอร์ด Arduino Nano

ภาพร่างสาธิตการทำงานของเซ็นเซอร์ตรวจจับความเคลื่อนไหว (เราใช้โปรแกรม):

/* * เซ็นเซอร์ PIR -> Arduino Nano * เซ็นเซอร์ PIR -> เซ็นเซอร์ Arduino Nano * PIR -> Arduino Nano */ การตั้งค่าเป็นโมฆะ () ( //ตั้งค่าการเชื่อมต่อกับจอภาพพอร์ต Serial.begin (9600); ) วงเป็นโมฆะ () ( //อ่านค่าขีดจำกัดจากพอร์ต A0 //โดยปกติจะสูงกว่า 500 หากมีสัญญาณ if(analogRead(A0) > 500) ( //สัญญาณจากเซ็นเซอร์ตรวจจับความเคลื่อนไหว Serial.println("มีการเคลื่อนไหว !!!"); ) else ( / /ไม่มีสัญญาณ Serial.println("ทุกอย่างเงียบ..."); ) )

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

  1. สัญญาณเตือนที่ผิดพลาดที่อาจเกิดขึ้น เซ็นเซอร์จำเป็นต้องเริ่มต้นตนเองภายในหนึ่งนาที
  2. ยึดแน่นกับจอภาพพอร์ต ไม่มีตัวกระตุ้นเอาท์พุต (รีเลย์, ไซเรน, LED)
  3. เวลาสัญญาณที่เอาต์พุตของเซ็นเซอร์สั้นเกินไป เมื่อตรวจพบการเคลื่อนไหว จำเป็นต้องทำให้สัญญาณล่าช้าโดยทางโปรแกรมเป็นระยะเวลานานขึ้น

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

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

/* * เซ็นเซอร์ PIR -> Arduino Nano * เซ็นเซอร์ PIR -> Arduino Nano * เซ็นเซอร์ PIR -> Arduino Nano * โมดูลรีเลย์ -> Arduino Nano */ // รีเลย์ - พิน (สัญญาณเอาต์พุต) สำหรับโมดูลรีเลย์ const int relout = 3 ; //prevMillis - ตัวแปรสำหรับจัดเก็บเวลาของรอบการสแกนโปรแกรมก่อนหน้า //ช่วง - ช่วงเวลาสำหรับการนับวินาทีจนกว่ารีเลย์จะปิด prevMillis แบบยาวที่ไม่ได้ลงนาม = 0; ช่วงเวลา int = 1,000; //DelayValue - ช่วงเวลาที่รีเลย์ถูกเก็บไว้ใน int DelayValue = 10; //initSecond - ตัวแปรการวนซ้ำของการเริ่มต้นลูป int initSecond = 60; //countDelayOff - ช่วงเวลาตัวนับคงที่ int countDelayOff = 0; //trigger - แฟล็กการเปิดใช้งานเซ็นเซอร์ตรวจจับความเคลื่อนไหว ทริกเกอร์บูลแบบคงที่ = false; การตั้งค่าเป็นโมฆะ () ( //ขั้นตอนมาตรฐานสำหรับการเริ่มต้นพอร์ตที่เชื่อมต่อโมดูลรีเลย์ // สำคัญ!!! - เพื่อให้โมดูลรีเลย์ยังคงอยู่ในสถานะปิดเริ่มต้น // และไม่ทำงานในระหว่างการเริ่มต้นคุณต้อง เพื่อเขียนค่า HIGH ไปยังพอร์ตอินพุต/เอาต์พุต // สิ่งนี้จะหลีกเลี่ยงการ "คลิก" ที่ผิดพลาด และจะคง // สถานะของรีเลย์เหมือนเดิมก่อนที่วงจรทั้งหมดจะถูกนำไปใช้งาน pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); // ทุกอย่างเรียบง่ายที่นี่ - เรารอจนครบ 60 รอบ (ตัวแปร initSecond) // ระยะเวลา 1 วินาที ในช่วงเวลานี้ เซ็นเซอร์ "เริ่มต้นตัวเอง" สำหรับ (int i = 0; ฉัน< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //ตั้งค่าสถานะทริกเกอร์เซ็นเซอร์ตรวจจับความเคลื่อนไหว if(!trigger) ( trigger = true; ) ) //ในขณะที่ตั้งค่าสถานะทริกเกอร์เซ็นเซอร์ตรวจจับความเคลื่อนไหวในขณะที่ (trigger) ( //ดำเนินการตามคำแนะนำต่อไปนี้ //บันทึกค่าของ มิลลิวินาทีในตัวแปร currMillis ที่ผ่านไปตั้งแต่เริ่มต้น // ของการดำเนินการโปรแกรม unsigned long currMillis = millis(); //เปรียบเทียบกับค่าก่อนหน้าของมิลลิวินาที // หากความแตกต่างมากกว่าช่วงเวลาที่ระบุ ดังนั้น: if(currMillis - prevMillis > ช่วง) ( //บันทึกค่าปัจจุบันของมิลลิวินาทีเป็นตัวแปร prevMillis prevMillis = currMillis; //ตรวจสอบตัวนับการหน่วงเวลาโดยเปรียบเทียบกับค่าของช่วงเวลา // ในระหว่างที่รีเลย์จะต้องอยู่ในสถานะเปิดหาก (countDelayOff >= DelayValue) ( ​​​​//หากค่าเท่ากัน ดังนั้น: //รีเซ็ตทริกเกอร์การทำงานของเซ็นเซอร์ = false; //รีเซ็ตตัวนับการหน่วงเวลา countDelayOff = 0; //ปิดรีเลย์ digitalWrite(relout, สูง); //ยกเลิกตัวแบ่งลูป; ) else ( //If ค่ายังคงน้อยกว่านั้น //ตัวนับการหน่วงเวลาที่เพิ่มขึ้นทีละหนึ่ง countDelayOff ++; //เก็บรีเลย์ไว้ที่ digitalWrite(relout, LOW); ) ) ) )

โปรแกรมประกอบด้วยโครงสร้าง:

prevMillis แบบยาวที่ไม่ได้ลงนาม = 0;

ช่วงเวลา int = 1,000;

...

CurrMillis ยาวที่ไม่ได้ลงนาม = millis();

if(currMillis - prevMillis > ช่วง)

{

prevMillis = currMillis;

....

// การดำเนินงานของเราอยู่ในเนื้อหาของโครงสร้าง

....

}

เพื่อชี้แจง จึงตัดสินใจแยกความคิดเห็นเกี่ยวกับการก่อสร้างนี้ ดังนั้น, การออกแบบนี้ช่วยให้คุณทำงานแบบคู่ขนานในโปรแกรมได้เหมือนที่เคยเป็นมา ร่างกายของโครงสร้างจะยิงประมาณหนึ่งครั้งต่อวินาที ซึ่งอำนวยความสะดวกโดยตัวแปร ช่วงเวลา. ก่อนอื่นตัวแปร CurrMillisค่าที่ส่งคืนเมื่อมีการเรียกใช้ฟังก์ชันถูกกำหนด มิลลิวินาที(). การทำงาน มิลลิวินาที()คืนค่าจำนวนมิลลิวินาทีที่ผ่านไปตั้งแต่เริ่มต้นโปรแกรม ถ้าแตกต่าง currMillis-prevMillisมากกว่าค่าของตัวแปร ช่วงเวลานี่หมายความว่ามากกว่าหนึ่งวินาทีผ่านไปแล้วตั้งแต่เริ่มต้นการทำงานของโปรแกรมและคุณต้องบันทึกค่าของตัวแปร CurrMillisเป็นตัวแปร ก่อนหน้าMillisแล้วดำเนินการปฏิบัติการที่อยู่ในร่างของโครงสร้าง ถ้าแตกต่าง currMillis-prevMillisน้อยกว่าค่าของตัวแปร ช่วงเวลาวินาทีนั้นก็ยังไม่ผ่านระหว่างรอบการสแกนของโปรแกรม และการทำงานที่อยู่ในเนื้อหาของโครงสร้างจะถูกข้ามไป

ในตอนท้ายของบทความมีวิดีโอจากผู้เขียน:

โปรดเปิดใช้งานจาวาสคริปต์เพื่อให้ความคิดเห็นทำงานได้

สวัสดีตอนบ่าย! อีกครั้งการตรวจสอบส่วนประกอบอิเล็กทรอนิกส์ของจีนหลายครั้งตามปกติเล็กน้อยเกี่ยวกับทุกสิ่งฉันจะพยายามทำให้สั้นลง แต่จะใช้งานได้หรือไม่ ดังนั้น มาพบกับระบบสัญญาณเตือนภัย GSM ที่มีราคาสูงถึง 700 ₽ น่าสนใจ? กรุณาภายใต้ "ตัด"!

มาเริ่มกันเลย! ก่อนเริ่มต้น ฉันแนะนำให้ดูสิ่งนี้ ส่วนประกอบน้อยลงและมีความเป็นอิสระมากขึ้น ดังนั้น "ข้อกำหนดในการอ้างอิง" ซึ่งเป็นข้อกำหนดพื้นฐานสำหรับการส่งสัญญาณ:

1) แจ้งเตือนเมื่อมีการเรียกเซ็นเซอร์
2) ในกรณีไฟฟ้าดับ ต้องมีอิสระบางประการ
3) การจัดการสัญญาณเตือนภัยผ่าน SMS และการโทร

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

รายการสิ่งที่คุณต้องการ:

รายการการเปลี่ยนแปลง

GSM_03_12_2016-14-38.hex- แก้ไขการทำงานของอุปกรณ์ด้วยโมเด็ม M590
GSM_05_12_2016-13-45.hex- เพิ่มคำสั่งคอนโซล memtest การเพิ่มประสิทธิภาพของการใช้ RAM
GSM_2016_12_06-15-43.hex- เพิ่มเอาต์พุตของผลลัพธ์คำสั่งไปยังคอนโซล, การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: 49% SRAM
GSM_2016_12_07-10-59.hex- ตอนนี้เพิ่มและลบหมายเลขโทรศัพท์อย่างถูกต้องแล้ว ครอบครอง: SRAM 49%, หน่วยความจำแฟลช 74%
GSM_2016_12_07-15-38.hex- เพิ่มความสามารถในการเชื่อมต่อเซ็นเซอร์ตรวจจับความเคลื่อนไหว เชื่อมต่อกับพิน A0 (ในกรณีนี้ พิน A0 ใช้เป็นพินดิจิทัล) เพิ่มคำสั่ง SMS PIRON, PIR ปิด. ครอบครอง: SRAM 48%, หน่วยความจำแฟลช 76%
GSM_2016_12_08-13-53.hex- ตอนนี้ หลังจากที่ดำเนินการคำสั่งที่ไม่ส่งข้อความ SMS เพื่อตอบกลับสำเร็จแล้ว อุปกรณ์จะกะพริบไฟ LED สีฟ้าหนึ่งครั้ง หลังจากดำเนินการตามคำสั่งที่ไม่ถูกต้องซึ่งไม่ส่งข้อความ SMS ตอบกลับ อุปกรณ์จะกะพริบสองครั้งพร้อมไฟ LED สีฟ้า ตอนนี้ หลังจากเริ่มต้นพารามิเตอร์อุปกรณ์แล้ว หากเปิดใช้งานโหมด "เงียบ" (SendSms = 0) อุปกรณ์จะกะพริบไฟ LED สีน้ำเงินอย่างรวดเร็วเป็นเวลา 2 วินาที แก้ไขข้อผิดพลาดเนื่องจากหมายเลขไม่ถูกลบออกจากหน่วยความจำเสมอโดยคำสั่ง DeletePhone ครอบครอง: SRAM 48%, หน่วยความจำแฟลช 78%
GSM_2016_12_11-09-12.hex- เพิ่มคำสั่งคอนโซล AddPhone และ DeletePhone ไวยากรณ์จะคล้ายกับคำสั่ง SMS การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 43%, หน่วยความจำแฟลช 79%
GSM_2017_01_03-22-51.hex- รองรับการใช้งานสำหรับตัวขยายพอร์ต I / O ที่คล้ายกันบนชิป PCF8574 สำหรับการเชื่อมต่อเซ็นเซอร์เพิ่มเติม 8 ตัวรวมถึงสวิตช์กก ค้นหาที่อยู่อัตโนมัติและ จูนอัตโนมัติโมดูล. ชื่อมาตรฐานของเซ็นเซอร์และระดับตรรกะของการดำเนินการเปลี่ยนแปลงโดยใช้คำสั่ง EditSensor เปลี่ยนเนื้อหาของ SMS แจ้งเตือนสำหรับเซ็นเซอร์หลัก (พิน D0) “ปลุก! เซ็นเซอร์หลัก! และเซ็นเซอร์ตรวจจับความเคลื่อนไหว (ขา A0) “Alarm! เซ็นเซอร์ PIR! เพิ่มคำสั่ง EditSensor และ I2CScan ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 92%
GSM_2017_01_15-23-26.hex- รองรับโมเด็ม A6_Mini ควบคุมการมีอยู่ของแหล่งจ่ายไฟภายนอก (พิน D7) เพิ่มคำสั่ง SMS WatchPowerOn, WatchPowerOff เพิ่มคำสั่งคอนโซล ListConfig, ListSensor ตอนนี้คำสั่ง EditSensor sms ทำงานอย่างถูกต้อง เอาต์พุตของข้อมูลการดีบักไปยังมอนิเตอร์พอร์ตนั้น "ลดลง" เล็กน้อย ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 95%
GSM_2017_01_16-23-54.hex- ขณะนี้อยู่ในข้อความตอบกลับคำสั่ง SMS "ข้อมูล" สถานะของเซ็นเซอร์ตรวจจับความเคลื่อนไหวจะถูกรายงานด้วย แก้ไขข้อผิดพลาดเนื่องจากบางครั้งมีการส่งข้อความ SMS ตอบกลับที่ว่างเปล่า ตอนนี้อุปกรณ์แจ้งเตือนไม่เพียง แต่เกี่ยวกับการปิดระบบ แต่ยังเกี่ยวกับการเริ่มต้นใหม่ของพลังงานภายนอก โมเด็มทั้งหมดเริ่ม "พูดน้อยลง" ตอนนี้พอร์ตมอนิเตอร์ก็สะอาดขึ้นเล็กน้อย ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 95%
GSM_2017_02_04-20-23.hex- แก้ไขข้อผิดพลาด "Watch the power on" หลังจากปลดอาวุธแล้ว "หมุดเตือน" จะปิดลง ตอนนี้หลังจากลบหมายเลขแล้ว ข้อมูลที่ถูกต้องจะปรากฏในคอนโซล อาจมีการแก้ไขจุดบกพร่องเนื่องจากบางครั้งมีการส่งข้อความ SMS ตอบกลับที่ว่างเปล่า ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 90%
GSM_2017_02_14-00-03.hex- ตามค่าเริ่มต้นแล้ว ข้อความ SMS จะถูกส่ง พารามิเตอร์ SendSms จะเท่ากับ 1 อีกครั้ง ตอนนี้เมื่อหน้าสัมผัสของสวิตช์กกหลักปิด (ปิดประตู) อุปกรณ์จะกะพริบ LED สีน้ำเงินเป็นเวลา 2 วินาที ส่งสัญญาณ เกี่ยวกับ ดำเนินการตามปกติเซ็นเซอร์ ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 90%
GSM_2017_03_01-23-37.hex- คำสั่ง WatchPowerOn ถูกลบออก เพิ่มคำสั่งคอนโซล WatchPowerOff เหมือนกับคำสั่ง SMS เพิ่มคำสั่ง WatchPowerOn1, WatchPowerOn2 WatchPowerOn1 - การตรวจสอบพลังงานภายนอกจะเปิดใช้งานหากมีการเตือนภัย WatchPowerOn2 - การตรวจสอบพลังงานภายนอกเปิดใช้งานอยู่เสมอ ใช้งานอาวุธและปลดอาวุธ อุปกรณ์ภายนอกสำหรับสิ่งนี้จะใช้พิน A1(D15) และ A2(D16) สัญญาณเตือนจะเปิด/ปลดอาวุธเมื่อ +5V สูงที่ A1(D15) หรือ GND ต่ำที่ A2(D16) พิน A1(D15) ถูกดึงขึ้นไปที่ GND, พิน A2(D16) ถูกดึงขึ้นไปที่ +5V ถึง 20 (10) kOhm ตัวต้านทาน เพิ่มคำสั่ง GuardButtonOn และ GuardButtonOff หลังจากติดอาวุธแล้ว ไฟ LED สีแดงจะกะพริบจนกว่าจะตรวจสอบความสมบูรณ์ของวงจรเซ็นเซอร์กกหลัก หากวงจรเสร็จสมบูรณ์ ไฟ LED สีแดงจะสว่างขึ้น ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 95%
GSM_2017_03_12-20-04.hex- ตอนนี้คอนโซลก็สะอาดยิ่งขึ้น แต่ถ้าเปิดใช้งานโหมดทดสอบ "TestOn" ข้อมูลเพิ่มเติมจะแสดงในคอนโซล บั๊ก "ส่งแล้ว!" ได้รับการแก้ไขแล้ว ขณะนี้ข้อมูลเกี่ยวกับการส่งข้อความจะแสดงอย่างถูกต้องในคอนโซล แก้ไขข้อผิดพลาด "โทรปลอมซ้ำ" ตอนนี้คำขอยอดคงเหลือควรทำงานอย่างถูกต้องกับโมเด็มทั้งหมด ครอบครอง: SRAM 67%, หน่วยความจำแฟลช 95%
GSM_2017_04_16-12-00.hex- แก้ไขแล้ว. ตอนนี้คำสั่งข้อมูลและเงินจะส่ง SMS ตอบกลับเสมอ คำสั่ง GuardButtonOn ถูกแทนที่ด้วยคำสั่ง GuardButtonOn1 และ GuardButtonOn2 ครอบครอง: SRAM 67%, หน่วยความจำแฟลช 99%
GSM_2017_04_21-09-43.hex - ไม่แนะนำให้ใช้ เป็นเพียงการทดสอบเท่านั้น ขอบคุณสำหรับข้อผิดพลาดที่พบ :) - ตอนนี้พารามิเตอร์ sendsms ไม่ส่งผลต่อการส่งข้อความ SMS สำหรับการตรวจสอบโครงข่ายไฟฟ้า เพิ่มคำสั่ง SMS DelayBeforeGuard รับผิดชอบการหน่วงเวลาเมื่อติดอาวุธ ค่าต้องไม่เกิน 255 วินาที เพิ่มคำสั่ง SMS DelayBeforeAlarm รับผิดชอบในการหน่วงเวลาการส่งการแจ้งเตือนและเปิด "หมุดเตือน" เมื่อเซ็นเซอร์ถูกทริกเกอร์ ค่าต้องไม่เกิน 255 วินาที ลบคำสั่ง ClearSMS ตอนนี้ข้อความจะถูกลบโดยอัตโนมัติเมื่อได้รับ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 100%
GSM_2017_04_22-20-42.hex- แก้ไขข้อผิดพลาดหลายอย่าง คำสั่ง ClearSMS กลับมาอยู่ในเฟิร์มแวร์แล้ว การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 98%
GSM_2017_04_23-17-50.ฐานสิบหก- ตอนนี้คำขอยอดคงเหลือควรทำงานอย่างถูกต้องกับโมเด็มทั้งหมด การติดอาวุธและการปลดอาวุธโดยอุปกรณ์ภายนอกทำงานได้อย่างถูกต้องแล้ว ข้อความตอบกลับ SMS คำสั่งข้อมูลต้องไม่เว้นว่าง การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 98%
GSM_2017_04_24-13-22.hex- ตอนนี้การส่งคำสั่งคอนโซลไปยังโมดูล GSM จะดำเนินการก็ต่อเมื่อเปิดใช้งานโหมดทดสอบเท่านั้น ขณะนี้ไม่มีการแบ่งคำสั่ง SMS และคำสั่งคอนโซล คำสั่งที่มีอยู่ทั้งหมดสามารถส่งได้ทั้งทาง SMS และผ่านคอนโซล อาจแก้ไขข้อผิดพลาดด้วยคำสั่ง Info การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 94%
GSM_2017_04_25-20-54.hex- แก้ไขข้อผิดพลาดที่คำสั่ง ListConfig เปลี่ยนค่าของเหตุการณ์ที่แล้ว ตอนนี้ เมื่อป้อนคำสั่งผ่านคอนโซล ข้อความ SMS ที่ไม่จำเป็นจะไม่ถูกส่งออกไป อาจแก้ไขข้อผิดพลาดด้วยคำสั่ง Info การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 94%
GSM_2017_04_30-12-57.hex- เปิดใช้งานเอาต์พุตชั่วคราว ข้อมูลเพิ่มเติมไปยังคอนโซลเมื่อส่งข้อความ SMS และสร้างการตอบสนองต่อคำสั่ง Info อาจแก้ไขข้อผิดพลาดด้วยคำสั่ง Info การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 92%
GSM_2017_05_06-11-52.hex- แก้ไขด้วยฟังก์ชัน DelayBeforeAlarm ครอบครอง: SRAM 66%, หน่วยความจำแฟลช 93%
GSM_2017_05_23-21-27.hex- เปลี่ยนเอาต์พุตของข้อมูลไปยังคอนโซลเล็กน้อย เพิ่มการรองรับโมดูลการขยายพอร์ตบน PCF8574A พร้อมที่อยู่ตั้งแต่ 0x38 ถึง 0x3f แก้ไขข้อผิดพลาด c ตอนนี้อุปกรณ์จะรีบูตโดยอัตโนมัติหลังจากคำสั่ง FullReset, ResetConfig, ResetPhone และในกรณีที่ดำเนินการคำสั่ง MemTest สำเร็จ เพิ่มคำสั่ง WatchPowerTime ตอนนี้คุณสามารถตั้งเวลาที่จะส่งข้อความ SMS เกี่ยวกับแหล่งจ่ายไฟภายนอกที่ถูกตัดการเชื่อมต่อ ครอบครอง: SRAM 67%, หน่วยความจำแฟลช 94%
GSM_2017_05_26-20-22.hex- แก้ไขการเริ่มต้นหน่วยความจำเซ็นเซอร์ของบอร์ดขยาย ไวยากรณ์ของคำสั่ง AddPhone มีการเปลี่ยนแปลง เพิ่มคำสั่ง EditMainPhone หลักการทำงานของระบบการแจ้งเตือนเปลี่ยนไป เมื่อเซ็นเซอร์ทำงาน ระบบจะส่งข้อความ SMS ก่อน จากนั้นจึงโทรออก ข้อความ SMS แจ้งเตือนจะถูกส่งไปยังหมายเลขโทรศัพท์ที่มีเครื่องหมาย "S" (SMS) โทรออกด้วยเสียงไปยังหมายเลขที่มีเครื่องหมาย "R" (เสียงกริ่ง) ข้อความเกี่ยวกับการปิด/เปิดแหล่งพลังงานภายนอกจะถูกส่งไปยังหมายเลขโทรศัพท์ที่มีเครื่องหมาย "P" (เพาเวอร์) เพิ่มคำสั่ง RingTime ขณะนี้ คุณสามารถกำหนดระยะเวลาของการโทรด้วยเสียงปลุกได้ พารามิเตอร์สามารถมีค่าได้ตั้งแต่ 10 ถึง 255 วินาที ตอนนี้คำสั่ง RingOn/RingOff ทั่วโลกจะเปิดใช้งาน/ปิดใช้งานการแจ้งเตือนด้วยการโทรด้วยเสียง เพิ่มคำสั่ง ResetSensor ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 99%
GSM_2017_06_02-17-43.hex- คำสั่ง AddPhone และ EditMainPhone มีพารามิเตอร์ "I" (ข้อมูล) ซึ่งรับผิดชอบ การแจ้งเตือนทาง SMSในการติดอาวุธหรือปลดอาวุธอุปกรณ์ หลังจากเพิ่มหมายเลขหลักแล้ว อุปกรณ์จะรีบูตโดยอัตโนมัติ ตอนนี้คุณสามารถป้อนหมายเลขเดียวกันลงในหน่วยความจำของอุปกรณ์ เมื่อเพิ่มตัวเลขที่ซ้ำกันที่สองและต่อมา แอตทริบิวต์ "M", "S", "P" และ "I" จะถูกลบออกจากพวกเขาโดยอัตโนมัติ หมายเลขเหล่านี้จะใช้สำหรับการโทรด้วยเสียงซ้ำๆ เมื่อเซ็นเซอร์ทำงาน แก้ไขข้อผิดพลาดที่มีเอาต์พุต wry ไปยังคอนโซลหลังจากรันคำสั่ง AddPhone ตอนนี้ข้อมูลจะไม่แสดงโดยอัตโนมัติหลังจากเพิ่มตัวเลข เพิ่มคำสั่งรีบูต ครอบครอง: SRAM 69%, หน่วยความจำแฟลช 99%
GSM_2017_06_11-00-07.hex- อีกครั้งเมื่อปิดหน้าสัมผัสของสวิตช์กกหลัก (ปิดประตู) อุปกรณ์จะกะพริบ LED สีน้ำเงินเป็นเวลา 2 วินาทีส่งสัญญาณการทำงานปกติของเซ็นเซอร์ในขณะที่อุปกรณ์จะไม่ถูกนำมาพิจารณาเมื่ออุปกรณ์ ติดอาวุธหรือปลดอาวุธ คำสั่ง RingOn/RingOff ถูกลบออก ตอนนี้อุปกรณ์สามารถปลดอาวุธได้ในระหว่างการโทรปลุก ตอนนี้อุปกรณ์เหล่านี้ทำงานอยู่เบื้องหลัง ครอบครอง: SRAM 69%, หน่วยความจำแฟลช 99%
GSM_2017_07_04-21-52.hex- ตอนนี้คำสั่งหยุดชั่วคราวไม่ส่ง SMS ตอบกลับ ลบคำสั่ง TestOn และ TestOff ตัวเลขทั้งหมดถูกลบการจัดการเครื่องหมาย ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 96%
GSM_2017_07_24-12-02.hex- เพิ่มคำสั่ง ReedSwitchOn/ReedSwitchOff สำหรับตรวจสอบเซ็นเซอร์รีดหลัก ตอนนี้สามารถเปิด/ปิดได้ในลักษณะเดียวกับเซ็นเซอร์ตรวจจับความเคลื่อนไหว แก้ไขข้อบกพร่องคำสั่งข้อมูล คำสั่ง TestOn และ TestOff กลับมาอยู่ในเฟิร์มแวร์ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 96%
GSM_2017_07_26-10-03.hex- เพิ่มคำสั่ง ModemID โมเด็มจะถูกตรวจพบโดยอัตโนมัติก็ต่อเมื่อค่าของพารามิเตอร์นี้เท่ากับ 0 หลังจากตั้งค่าพารามิเตอร์เป็น 0 อุปกรณ์จะรีบูตโดยอัตโนมัติ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 98%
GSM_2017_08_03-22-03.hex- ตอนนี้นาฬิกาปลุกสามารถควบคุมอุปกรณ์ภายนอกได้ เอาต์พุตอนาล็อก A3 ใช้สำหรับการควบคุม (D17 ใช้เป็นเครื่องดิจิตอล) ระดับลอจิกเอาต์พุต (+5V หรือ GND) สามารถเปลี่ยนแปลงได้ หลังจากเปลี่ยนระดับผ่านคำสั่งการตั้งค่า อุปกรณ์จะรีบูตโดยอัตโนมัติ สามารถเปลี่ยนระยะเวลาของสัญญาณควบคุมอุปกรณ์ภายนอกได้ เพิ่มคำสั่ง ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open การเปลี่ยนแปลงบางอย่างในตรรกะของคำสั่งควบคุม การเพิ่มประสิทธิภาพหน่วยความจำ ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 99%
GSM_2017_08_10-12-17.hex- ลบคำสั่ง SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff และทุกอย่างที่เชื่อมต่อกับพวกเขา คำสั่ง DelayBeforeAlarm ถูกแทนที่ด้วยคำสั่งเพิ่มเติม เปลี่ยนผลลัพธ์ของคำสั่ง Info เพิ่มประสิทธิภาพเอาต์พุตของคำสั่ง ListConfig ไปยังคอนโซล ตอนนี้พิน D6 และ A0 สามารถเชื่อมต่อกับตัวใดก็ได้ เซ็นเซอร์ดิจิตอลด้วยระดับการทำงานที่สูงหรือต่ำ รวมทั้งสวิตช์กก ต้องดึงพิน D6 และ A0 ลงกราวด์ (GND) ผ่านความต้านทาน 10 (20) kOhm หากเซ็นเซอร์ถูกตั้งค่าให้ทำงานในระดับต่ำ (เปิดใช้งานในโหมดสวิตช์กก) จะตรวจสอบความสมบูรณ์ของวงจร ระดับลอจิกของการทำงานของอินพุต D6 และ A0 (+5V หรือ GND) สามารถเปลี่ยนแปลงได้หลังจากเปลี่ยน ระดับตรรกะอุปกรณ์จะรีบูตโดยอัตโนมัติ สำหรับเซ็นเซอร์แต่ละตัว (การ์ดหลัก, วินาที, การ์ดส่วนขยาย PCF) เมื่อเปิดใช้งาน คุณสามารถตั้งเวลาเฉพาะได้ หลังจากนั้นจะมีการแจ้งเตือน (sms และ / หรือการโทรด้วยเสียง) "เซ็นเซอร์ PIR" เปลี่ยนชื่อเป็น "เซ็นเซอร์ที่สอง" แก้ไขการทำงานของบอร์ดขยาย ซึ่งเป็นข้อผิดพลาดที่อุปกรณ์แจ้งเตือนเกี่ยวกับการทำงานของเซ็นเซอร์เสมอ ไม่ว่าอุปกรณ์จะติดอาวุธหรือไม่ก็ตาม ตอนนี้คุณสามารถเลือกโหมดการทำงานที่อุปกรณ์สามารถตรวจสอบเซ็นเซอร์ของบอร์ดขยายได้ทั้งในโหมดติดอาวุธ (GuardOn) และในโหมดปิดการใช้งาน (GuardOff) เพิ่มคำสั่ง PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelayBeforeAlarm ครอบครอง: SRAM 68%, หน่วยความจำแฟลช 99%

*เวอร์ชั่นเฟิร์มแวร์ที่ตามมารวมถึงการเปลี่ยนแปลงในเวอร์ชั่นก่อนหน้า


ใช้พอร์ต Arduino Nano v3

D4- เอาต์พุตของพิน "ปลุก" เมื่อเซ็นเซอร์ถูกทริกเกอร์ จะมีการตั้งค่าสัญญาณระดับสูงบนพินนี้
D5- เอาต์พุตกลับด้านของพิน "ปลุก" เมื่อเซ็นเซอร์ถูกทริกเกอร์ สัญญาณระดับต่ำจะถูกตั้งค่าบนพินนี้

D6- เซ็นเซอร์กก. ตั้งแต่รุ่น GSM_2017_08_10-12-17.hex เซ็นเซอร์ดิจิทัลใดๆ ที่มีระดับการตอบสนองสูงหรือต่ำ รวมถึงสวิตช์กก สามารถเชื่อมต่อกับพิน D6 ได้ ต้องดึงพิน D6 ลงกราวด์ (GND) ผ่านความต้านทาน 10 (20) kOhm
D7- เชื่อมต่อกับตัวแบ่งแรงดันไฟฟ้าจากแหล่งจ่ายไฟภายนอก +5V ต้นแขน 2.2 kΩ, แขนท่อนล่าง 3.3 kΩ

ตัวแบ่งแรงดัน


D8- โมเด็ม TX
D9- โมเด็ม RX

D10- LED สีแดง
D11- ไฟ LED สีฟ้า
D12- LED สีเขียว

การเชื่อมต่ออุปกรณ์ต่อพ่วง:
A0- เซ็นเซอร์ตรวจจับความเคลื่อนไหว ตั้งแต่รุ่น GSM_2017_08_10-12-17.hex เซ็นเซอร์ดิจิทัลใดๆ ที่มีระดับการตอบสนองสูงหรือต่ำ รวมถึงสวิตช์กก สามารถเชื่อมต่อกับพิน A0 ได้ ต้องดึงพิน A0 ลงกราวด์ (GND) ผ่านความต้านทาน 10 (20) kOhm

A1- อินพุตสำหรับการควบคุมภายนอก สัญญาณเตือนจะตั้งค่า/ปลดอาวุธเมื่อระดับ +5V สูงปรากฏขึ้นที่อินพุต
A2- อินพุตกลับด้านสำหรับการควบคุมภายนอก สัญญาณเตือนจะตั้งค่า/ปลดอาวุธเมื่อระดับ GND ต่ำปรากฏขึ้นที่อินพุต

A3- เอาต์พุตที่กำหนดค่าได้ (+5V หรือ GND) สำหรับการควบคุมอุปกรณ์ภายนอก เมื่อได้รับคำสั่งควบคุม ค่าที่เอาท์พุตนี้จะเปลี่ยนไปตามสิ่งที่ตั้งค่าไว้สำหรับช่วงเวลาที่กำหนด

A4- SDA I2C
A5- SLC I2C
, เพื่อเชื่อมต่อเซ็นเซอร์เพิ่มเติม 8 ตัว


คำสั่งควบคุมสำหรับเฟิร์มแวร์ฐานสิบหก

ความสนใจ!คำสั่งที่เน้น ตัวหนาสามารถทำได้จากหมายเลขหลักเท่านั้นเนื่องจากมีหน้าที่ในการกำหนดค่าอุปกรณ์ คำสั่งที่เหลือสามารถดำเนินการได้จากตัวเลขที่มีเครื่องหมาย "การจัดการ"

SMS - คำสั่งควบคุมไม่คำนึงถึงขนาดตัวพิมพ์:
เพิ่มโทรศัพท์- เพิ่มหมายเลขโทรศัพท์ รวมแล้วเพิ่มได้ไม่เกิน 9 เบอร์ + 1 เบอร์หลักซึ่งจะถูกเก็บไว้ในหน่วยความจำโดยอัตโนมัติในครั้งแรกที่คุณโทรเข้าเครื่องหลังจากรีเซ็ตการตั้งค่าจากโรงงานด้วยคำสั่ง รีเซ็ตโทรศัพท์หรือ รีเซ็ตเต็ม. เหล่านั้น. ใครก็ตามที่โทรหาอุปกรณ์ก่อนหลังจากรีเซ็ตเป็นการตั้งค่าจากโรงงานคือ "หลัก" หมายเลขนี้จะถูกป้อนในเซลล์หน่วยความจำแรกและไม่สามารถเปลี่ยนหรือลบผ่าน SMS ได้ ไม่สามารถบวกเลขสองตัวที่เหมือนกันได้
ตัวอย่างคำสั่ง:



ไวยากรณ์คำสั่ง:

เพิ่มโทรศัพท์- สั่งการ
: - ตัวคั่น
5 - เขียนถึงเซลล์หน่วยความจำที่ห้า
+71234567890 - หมายเลขโทรศัพท์
จนถึงรุ่น GSM_2017_05_26-20-22.hex:
a - พารามิเตอร์ "Alarm" - ข้อความ SMS จะถูกส่งไปยังหมายเลขที่มีพารามิเตอร์นี้ - ข้อความเตือนและข้อความสำหรับการติดอาวุธหรือปลดอาวุธ
เริ่มจากรุ่น GSM_2017_05_26-20-22.hex:
m - พารามิเตอร์ "การจัดการ" - อนุญาตให้มีการจัดการสัญญาณเตือน
s - พารามิเตอร์ "SMS" - ข้อความ SMS จะถูกส่งเมื่อมีการเรียกใช้เซ็นเซอร์
r - พารามิเตอร์ "Ring" - จะมีการโทรออกเมื่อเซ็นเซอร์ทำงาน
p - พารามิเตอร์ "Power" - ข้อความ SMS จะถูกส่งเมื่อเปิด / ปิดพลังงานภายนอก
i - พารามิเตอร์ "ข้อมูล" - ข้อความ SMS จะถูกส่งเมื่อติดอาวุธหรือปลดอาวุธ
ในกรณีที่ไม่มีพารามิเตอร์ "m", "s", "r", "p", "i" โทรศัพท์จะถูกเก็บไว้ในหน่วยความจำ แต่ไม่ได้ใช้ในทางใดทางหนึ่ง


ลบโทรศัพท์- ลบหมายเลขโทรศัพท์
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

คำสั่ง DeletePhone
: - ตัวคั่น
+71234567891 - หมายเลขโทรศัพท์


แก้ไขโทรศัพท์หลัก- เปลี่ยนพารามิเตอร์ "s", "r", "p", "i" ของโทรศัพท์หลัก หมายเลขนี้จะถูกป้อนในเซลล์หน่วยความจำแรก
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

แก้ไขคำสั่ง MainPhone
: - ตัวคั่น
srpi - พารามิเตอร์


ยอดดุล- การเปลี่ยนแปลงจำนวนคำขอยอดคงเหลือและการประมวลผลความยาวของการตอบกลับคำขอ ค่าเริ่มต้นสำหรับ Beeline: #100#L22
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

BalanceNum - คำสั่ง
: - ตัวคั่น
#103# - หมายเลขคำขอยอดคงเหลือ
L24 - ความยาว (len) ของการตอบกลับที่ส่งต่อคือ 24 อักขระ เราตัดสแปมออกจากคำขอยอดคงเหลือ


แก้ไขเซ็นเซอร์- เปลี่ยนชื่อเซ็นเซอร์และระดับการทำงานเชิงตรรกะ สามารถมีเซ็นเซอร์เพิ่มเติมได้ไม่เกิน 8 ตัว หลังจากเปลี่ยนการตั้งค่า อุปกรณ์จะต้องรีบูต
ตัวอย่างคำสั่ง:
แก้ไขเซนเซอร์:1+Datchik dvizheniya v koidore#h

ไวยากรณ์คำสั่ง:

EditSensor - คำสั่ง
: - ตัวคั่น
1 - เขียนถึงเซลล์หน่วยความจำแรก
+ - ตัวคั่น
Datchik dvizheniya v koidore - ชื่อของเซ็นเซอร์ต้องมีความยาวไม่เกิน 36 อักขระรวมการเว้นวรรค
#h - สัญญาณของระดับตรรกะสูงจากเซ็นเซอร์ เมื่อได้รับแล้วจะมีการแจ้งเตือน หากไม่มี "#h" สัญญาณเตือนจะทำงานเมื่อได้รับระดับลอจิกต่ำจากเซ็นเซอร์


เวลานอน- เวลาที่ "หลับ" ของการเตือนเมื่อได้รับ SMS - คำสั่ง "หยุดชั่วคราว" จะแสดงเป็นนาที ค่าเริ่มต้น: 15 ต้องไม่น้อยกว่า 1 และมากกว่า 60
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

SleepTime - ทีม
: - ตัวคั่น
20 - 20 นาทีของ "การนอนหลับ"


AlarmPinTime- เวลาที่เปิด / ปิดพินปลุก / ผกผันจะแสดงเป็นวินาที ค่าเริ่มต้น: 60 ต้องไม่น้อยกว่า 1 วินาทีและมากกว่า 43200 วินาที (12 ชั่วโมง)
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

AlarmPinTime - คำสั่ง
: - ตัวคั่น
30 - 30 วินาทีเพื่อเปิด/ปิดพินปลุก


DelayBeforeGuard- เวลาจนกว่าอุปกรณ์จะติดอาวุธหลังจากได้รับคำสั่งที่เหมาะสม
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

คำสั่ง DelayBeforeGuard
: - ตัวคั่น
25 - 25 วินาทีก่อนติดอาวุธ


DelayBeforeAlarm- เวลาหลังจากนั้นจะส่งการแจ้งเตือนทาง SMS ที่ "น่าตกใจ" หากไม่ได้ปิดการเตือนในช่วงเวลาดังกล่าว แทนที่ด้วยคำสั่งเพิ่มเติมโดยเริ่มจากเวอร์ชัน GSM_2017_08_10-12-17.hex
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

DelayBeforeAlarm - คำสั่ง
: - ตัวคั่น
40 - 40 วินาที ก่อนส่ง "นาฬิกาปลุก" แจ้งเตือน


WatchPowerTime- เวลาเป็นนาทีหลังจากนั้น ระบบจะส่งข้อความ SMS เกี่ยวกับการตัดการเชื่อมต่อของแหล่งพลังงานภายนอก หากไฟจากภายนอกได้รับการกู้คืนก่อนหมดเวลาที่ตั้งไว้ ข้อความจะไม่ถูกส่ง
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

WatchPowerTime - ทีม
: - ตัวคั่น
5 - 5 นาทีก่อนส่งข้อความ SMS


RingTime- ระยะเวลาของการโทรด้วยเสียงปลุก พารามิเตอร์สามารถมีค่าได้ตั้งแต่ 10 ถึง 255 วินาที
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

RingTime - คำสั่ง
: - ตัวคั่น
40 - 40 ระยะเวลาของการโทรจะเป็น 40 วินาที หลังจากนั้นจะมีการเรียกผู้สมัครสมาชิกรายต่อไป


รหัสโมเด็ม - บังคับติดตั้งรุ่นของโมเด็มที่ใช้ ค่าที่เป็นไปได้: 0 - การตรวจจับโมเด็มอัตโนมัติ, 1 - M590, 2 - SIM800l, 3 - A6_Mini
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

ModemID - คำสั่ง
: - ตัวคั่น
2 - รหัสโมเด็ม


ExtDeviceTime- จำนวนวินาทีที่ระดับสัญญาณที่เอาต์พุตควบคุมอุปกรณ์ภายนอกจะเปลี่ยนไป
ตัวอย่างคำสั่ง:

ไวยากรณ์คำสั่ง:

คำสั่ง ExtDeviceTime
: - ตัวคั่น
5 - 5 วินาที


ExtDeviceLevelLow- อุปกรณ์ภายนอกที่เชื่อมต่อกับเอาท์พุต A3 ถูกขับเคลื่อนในระดับต่ำ (GND) เอาต์พุตเริ่มต้นจะสูง +5V จนกว่าจะได้รับคำสั่งควบคุมอุปกรณ์ภายนอก
ExtDeviceLevelHigh- อุปกรณ์ภายนอกที่เชื่อมต่อกับเอาท์พุต A3 ถูกควบคุมโดยระดับสัญญาณสูง (+5V) เอาต์พุตจะมีค่าเริ่มต้นเป็น GND ต่ำจนกว่าจะได้รับคำสั่งควบคุมอุปกรณ์ภายนอก

รีเซ็ตเซ็นเซอร์- รีเซ็ตพารามิเตอร์ของเซ็นเซอร์ของตัวขยายพอร์ต

resetconfig- รีเซ็ตเป็นค่าจากโรงงาน

รีเซ็ตโทรศัพท์- การลบหมายเลขโทรศัพท์ทั้งหมดออกจากหน่วยความจำ

รีเซ็ตเต็ม- รีเซ็ตการตั้งค่า ลบหมายเลขโทรศัพท์ทั้งหมดออกจากหน่วยความจำ เรียกคืนค่าเริ่มต้นของคำสั่ง BalanceNum

แหวนบน- เปิดใช้งานการแจ้งเตือนโดยการโทรไปยังหมายเลข "หลัก" ที่บันทึกไว้ในเซลล์หน่วยความจำแรกเมื่อเซ็นเซอร์ทำงาน ลบออกตั้งแต่รุ่น GSM_2017_06_11-00-07.hex
แหวนปิด- ปิดการแจ้งเตือนด้วยการโทรเมื่อเซ็นเซอร์ถูกทริกเกอร์ ลบออกตั้งแต่รุ่น GSM_2017_06_11-00-07.hex

SmsOn- เปิดใช้งานการแจ้งเตือนทาง SMS เมื่อเซ็นเซอร์ถูกเรียก ลบออกตั้งแต่รุ่น GSM_2017_08_10-12-17.hex
ปิด SMS- ปิดการแจ้งเตือนทาง SMS เมื่อเซ็นเซอร์ถูกทริกเกอร์ ลบออกตั้งแต่รุ่น GSM_2017_08_10-12-17.hex

PIRON- เปิดใช้งานการประมวลผลเซ็นเซอร์ตรวจจับความเคลื่อนไหว
PIR ปิด- ปิดการใช้งานการประมวลผลเซ็นเซอร์ตรวจจับความเคลื่อนไหว

ReedSwitchOn- เปิดใช้งานการประมวลผลของเซ็นเซอร์กกหลัก
ReedSwitchOff- ปิดการประมวลผลของเซ็นเซอร์กกหลัก

WatchPowerOn- เปิดการควบคุมพลังงานภายนอก, ข้อความ SMS เกี่ยวกับการตัดการเชื่อมต่อของพลังงานภายนอกจะถูกส่ง, โดยมีเงื่อนไขว่าระบบเตือนภัยติดอาวุธ ลบออกตั้งแต่รุ่น GSM_2017_03_01-23-37

WatchPowerOn1- เปิดการควบคุมพลังงานภายนอก, ข้อความ SMS เกี่ยวกับการตัดการเชื่อมต่อของพลังงานภายนอกจะถูกส่ง, โดยมีเงื่อนไขว่าระบบเตือนภัยติดอาวุธ
WatchPowerOn2- เปิดการควบคุมพลังงานภายนอก, ข้อความ SMS เกี่ยวกับไฟฟ้าขัดข้องภายนอกจะถูกส่งในทุกกรณี

ปิดเครื่องนาฬิกา- ปิดการควบคุมพลังงานภายนอก

GuardButtonOn- เปิดใช้งานการควบคุมการเตือนโดยอุปกรณ์ภายนอกหรือปุ่ม ลบออกโดยเริ่มจากรุ่น GSM_2017_04_16-12-00
GuardButtonOn1- การทำงาน วางหรือถอนการป้องกันโดยอุปกรณ์ภายนอกหรือปุ่มเปิดอยู่
GuardButtonOn2- การทำงาน การแสดงเท่านั้นติดอาวุธโดยอุปกรณ์ภายนอกหรือโดยเปิดปุ่มการปลดอาวุธจะดำเนินการโดยการโทรไปยังอุปกรณ์หรือใช้คำสั่ง SMS
GuardButton ปิด- การควบคุมการเตือนโดยอุปกรณ์ภายนอกหรือโดยปุ่มถูกปิดใช้งาน

PCFForceOn- การตรวจสอบอย่างต่อเนื่องของกลุ่มเซ็นเซอร์ทั้งหมดของโมดูลส่วนขยาย
PCFForceOff- การตรวจสอบกลุ่มของเซ็นเซอร์ทั้งหมดของตัวขยายสัญญาณเฉพาะเมื่ออุปกรณ์ติดอาวุธ

ระดับเซ็นเซอร์หลักสูง- การแจ้งเตือนจะถูกส่งไปเมื่อมีสัญญาณระดับสูง (+5 V) ปรากฏขึ้นที่อินพุต (D6) จากเซ็นเซอร์
MainSensorLevelLow- การแจ้งเตือนจะถูกส่งไปเมื่อสัญญาณระดับต่ำ (GND) ปรากฏขึ้นที่อินพุต (D6) จากเซ็นเซอร์
MainSensorLevelOff- การประมวลผลเซ็นเซอร์อินพุต (D6) ปิดการใช้งาน

SecondSensorLevelHigh- การแจ้งเตือนจะถูกส่งไปเมื่อมีสัญญาณระดับสูง (+5 V) ปรากฏขึ้นที่อินพุต (A0) จากเซ็นเซอร์
SecondSensorLevelLow- การแจ้งเตือนจะถูกส่งไปเมื่อสัญญาณระดับต่ำ (GND) ปรากฏขึ้นที่อินพุต (A0) จากเซ็นเซอร์
SecondSensorLevelOff- การประมวลผลเซ็นเซอร์อินพุต (A0) ปิดการใช้งาน

MainDelayBeforeAlarm- เวลาหลังจากนั้นจะส่งการแจ้งเตือนทาง SMS "ปลุก" เมื่อเซ็นเซอร์หลัก (D6) ทำงาน หากไม่ได้ปิดการเตือนในช่วงเวลาดังกล่าว ไวยากรณ์เหมือนกับคำสั่ง DelayBeforeAlarm
SecondDelayBeforeAlarm- เวลาหลังจากนั้นจะส่งการแจ้งเตือนทาง SMS "ปลุก" เมื่อมีการเรียกใช้เซ็นเซอร์เพิ่มเติม (A0) หากสัญญาณเตือนไม่ได้ถูกปลดอาวุธในช่วงเวลานี้ ไวยากรณ์เหมือนกับคำสั่ง DelayBeforeAlarm
PCFDelayBeforeAlarm- เวลาหลังจากนั้นจะมีการส่งการแจ้งเตือนทาง SMS "ปลุก" เมื่อเซ็นเซอร์ของบอร์ดขยาย (PCF8574) ทำงาน หากสัญญาณเตือนไม่ได้ถูกปลดอาวุธในช่วงเวลานี้ ไวยากรณ์เหมือนกับคำสั่ง DelayBeforeAlarm

GuardOn - แขน
GuardOff - ลบการป้องกัน

เปิด - คำสั่งควบคุมอุปกรณ์ภายนอก

ข้อมูล - ตรวจสอบสถานะในการตอบสนองต่อข้อความนี้ SMS จะถูกส่งพร้อมข้อมูลเกี่ยวกับหมายเลขที่เปิด / ปิดความปลอดภัย

Pause - หยุดระบบชั่วคราวตามเวลาที่กำหนดโดยคำสั่ง sleeptime เป็นนาที ระบบไม่ตอบสนองต่อทริกเกอร์ของเซ็นเซอร์

TestOn - โหมดทดสอบเปิดอยู่ ไฟ LED สีฟ้าจะกะพริบ
TestOff - โหมดการทดสอบปิดอยู่

LedOff - ปิดไฟ LED สแตนด์บาย
LedOn - เปิดไฟ LED สแตนด์บาย

เงิน - ขอยอดคงเหลือ

ClearSms - ลบ SMS ทั้งหมดออกจากหน่วยความจำ

คำสั่งคอนโซล (จนถึงเวอร์ชัน GSM_2017_04_24-13-22.hex) - ถูกป้อนในมอนิเตอร์พอร์ต Arduino IDE:

AddPhone - คล้ายกับคำสั่ง SMS ของ AddPhone

DeletePhone - คล้ายกับคำสั่ง DeletePhone sms

EditSensor - คล้ายกับคำสั่ง EditSensor sms

ListPhone - ส่งออกไปยังพอร์ตตรวจสอบรายการโทรศัพท์ที่เก็บไว้ในหน่วยความจำ

ResetConfig - คล้ายกับคำสั่ง ResetConfig sms

ResetPhone - คล้ายกับคำสั่ง SMS ของ ResetPhone

FullReset - คล้ายกับคำสั่ง SMS FullReset

ClearSms - คล้ายกับคำสั่ง ClearSms sms

WatchPowerOn1 - คล้ายกับคำสั่ง SMS ของ WatchPowerOn1
WatchPowerOn2 - คล้ายกับคำสั่ง SMS WatchPowerOn2
WatchPowerOff - คล้ายกับคำสั่ง SMS WatchPowerOff

GuardButtonOn - คล้ายกับคำสั่ง SMS GuardButtonOn ลบออกตั้งแต่รุ่น GSM_2017_04_16-12-00
GuardButtonOn1 - คล้ายกับคำสั่ง SMS GuardButtonOn1
GuardButtonOn2 - คล้ายกับคำสั่ง SMS GuardButtonOn2
GuardButtonOff - คล้ายกับ GuardButtonOff sms command

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

I2CScan - ค้นหาและเริ่มต้นอุปกรณ์ที่รองรับบนบัส I2C

ListConfig - ส่งออกไปยังมอนิเตอร์พอร์ตของการกำหนดค่าปัจจุบันของอุปกรณ์

ListSensor - ส่งออกไปยังจอภาพพอร์ตของการกำหนดค่าเซ็นเซอร์ปัจจุบัน

ยูพีดี เมื่อใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหวเพื่อหลีกเลี่ยงผลบวกลวงระหว่างการทำงานของโมเด็ม จำเป็นต้อง ระหว่างหมุด GNDและ A0 Arduino ใส่ความต้านทานขอบคุณเพื่อน
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - หมายเลขที่ได้รับอนุญาตให้จัดการความปลอดภัย
AlarmPhone = ("70001234501", "70001234502") - หมายเลขสำหรับส่งการแจ้งเตือนทาง SMS เมื่อเซ็นเซอร์ถูกกระตุ้นและการแจ้งเตือนเกี่ยวกับการปลดอาวุธหรืออาวุธ หมายเลขแรกในรายการจะถูกเรียกเมื่อเซ็นเซอร์ถูกเรียกทำงาน หากมีการเรียกใช้คำสั่ง RingOn โดยค่าเริ่มต้น ตัวเลือกนี้จะเปิดใช้งาน ซึ่งทำได้เนื่องจากข้อความ SMS อาจมาถึงล่าช้า และควรโทรออกทันที

หากได้รับสายจากหมายเลขที่ได้รับอนุญาตหรือข้อความ SMS ด้วยคำสั่ง GuardOn / GuardOff ข้อความ SMS เกี่ยวกับการติดอาวุธหรือการปลดอาวุธจะถูกส่งไปยังหมายเลขที่ระบุไว้ในอาร์เรย์ AlarmPhone ขึ้นอยู่กับสถานะการป้องกันปัจจุบัน ข้อความ SMS จะถูกส่งไปยังหมายเลขที่โทรเข้ามาด้วย

เมื่อเซ็นเซอร์ถูกกระตุ้นข้อความ SMS จะถูกส่งไปยังหมายเลขทั้งหมดจากอาร์เรย์ AlarmPhone (รายการ) และการโทรด้วยเสียงจะถูกส่งไปยังหมายเลขแรกจากอาร์เรย์นี้

สัญญาณไฟ:
ไฟ LED ติดเป็นสีแดงติดอาวุธ
ไฟ LED สว่างขึ้น สีเขียว- ปลดอาวุธ เปิด/ปิด ด้วยคำสั่ง SMS LedOn/LedOff
ไฟ LED กะพริบเป็นสีน้ำเงินตลอดเวลา - แสดงว่าทุกอย่างเป็นไปตาม Arduino บอร์ดไม่ได้หยุดทำงาน ใช้สำหรับการดีบักโดยเฉพาะเปิดใช้งาน / ปิดใช้งานโดยคำสั่ง SMS TestOn / TestOff
* ฟังก์ชัน LedTest() มีอยู่ในโค้ด มันกะพริบด้วยไฟ LED สีน้ำเงิน มันถูกสร้างขึ้นเพื่อตรวจสอบ Arduino เท่านั้น มันกะพริบ - หมายความว่ามันทำงาน มันไม่กะพริบ - ค้าง ยังไม่วางสาย :)

ไม่เกี่ยว!

การเชื่อมต่อของเซ็นเซอร์ 2 ตัวขึ้นไปสำหรับเฟิร์มแวร์แบบเปิด (ใช้เฉพาะกับเฟิร์มแวร์นี้ sketch_02_12_2016.ino)
ในการเชื่อมต่อเซ็นเซอร์รีดเพิ่มเติม เราใช้หมุดดิจิทัล D2, D3, D5 หรือ D7 ฟรี แผนภาพการเดินสายไฟพร้อมเซ็นเซอร์เพิ่มเติมบน D7

การเปลี่ยนแปลงเฟิร์มแวร์ที่จำเป็น
... #define DoorPin 6 // หมายเลขอินพุตที่เชื่อมต่อกับเซ็นเซอร์หลัก int8_t DoorState = 0; // ตัวแปรสำหรับจัดเก็บสถานะของเซ็นเซอร์หลัก int8_t DoorFlag = 1; // ตัวแปรสำหรับจัดเก็บสถานะของเซ็นเซอร์หลัก #define BackDoorPin 7 // จำนวนอินพุตที่เชื่อมต่อกับเซ็นเซอร์เพิ่มเติม int8_t BackDoorState = 0; // ตัวแปรสำหรับจัดเก็บสถานะของเซ็นเซอร์เพิ่มเติม int8_t BackDoorFlag = 1; // ตัวแปรเก็บสถานะของเซนเซอร์เพิ่มเติม...
การตั้งค่าเป็นโมฆะ () ( ... pinMode (DoorPin, INPUT); pinMode (BackDoorPin, INPUT); ...
... void Detect() ( // กำลังอ่านค่าจากเซ็นเซอร์ DoorState = digitalRead (DoorPin); BackDoorState = digitalRead (BackDoorPin); // กำลังประมวลผลเซ็นเซอร์หลักหาก (DoorState == LOW && DoorFlag == 0) ( DoorFlag = 1; ล่าช้า (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm(); ) if (DoorState == HIGH && DoorFlag == 1) ( DoorFlag = 0; ล่าช้า (100); ) // ประมวลผลเซ็นเซอร์เพิ่มเติมถ้า (BackDoorState == LOW && BackDoorFlag == 0) ( BackDoorFlag = 1; ล่าช้า (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm(); ) if (BackDoorState = = สูง && BackDoorFlag == 1)( BackDoorFlag = 0; ล่าช้า (100); ) ) ...

และอีกอย่างหนึ่ง:
1. เป็นการดีกว่าถ้าใช้ไดโอดที่ออกแบบมาสำหรับกระแส 2 A เนื่องจากโมดูลติดเชื้อด้วยกระแส 1 A และเรายังต้องป้อน Arduino และโมเด็มด้วยบางอย่าง ในตัวอย่างนี้ ไดโอด 1N4007 ถูกใช้ ถ้าล้มเหลว ฉันจะแทนที่ด้วย 2 A
2. ฉันใช้ตัวต้านทานทั้งหมดสำหรับ LED ที่ 20 kOhm เพื่อไม่ให้ส่องสว่างทั่วทั้งทางเดินในตอนกลางคืน
3. ฉันยังแขวนตัวต้านทาน 20 kOhm บนเซ็นเซอร์กกระหว่างพิน GND และพิน D6

นั่นคือทั้งหมดที่สำหรับตอนนี้. ขอบคุณที่ให้ความสนใจ! :)

ฉันวางแผนที่จะซื้อ +207 เพิ่มในรายการโปรด ชอบรีวิว +112 +243