กลับไปหน้ารวมไฟล์
arduino-project-burglar-zone-input-tester-056b55.md

ชื่อโปรเจกต์: โปรเจกต์ Arduino: เครื่องทดสอบอินพุตโซนกันขโมย

เครื่องทดสอบอินพุตโซนกันขโมยที่ใช้ Arduino เป็นหลัก ซึ่งเป็นการออกแบบเชิงทดลองสำหรับทดสอบเซ็นเซอร์ที่เชื่อมต่อแบบเดินสาย (hardwired).

การประนีประนอมการเชื่อมต่อแบบเดินสาย (hardwired connections):

เนื่องจากลูปโซนฮาร์ดแวร์ได้รับพลังงานจากระดับแรงดันไฟฟ้าคงที่ที่ส่งมาจากชุดควบคุมกันขโมย (burglary

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

รูปที่ 1 แสดงแผนผังของอุปกรณ์ที่สามารถใช้ในการประนีประนอมระบบสัญญาณกันขโมยที่มีลูปโซนแบบเดินสายซึ่งได้รับพลังงานจากระดับแรงดันไฟฟ้าคงที่

Fig. 1

หลังจากเชื่อมต่อกับสายโซน (โดยการใช้ขั้วต่อเชื่อมเข้ากับสายลูปโซน) วงจรจะตรวจสอบขั้วของสายเชื่อมต่อก่อน ซึ่งทำโดยวงจรย่อยที่มีออปแอมป์ (operational amplifier) U2D พร้อมด้วยตัวต้านทาน R10, R5, R6, ไดโอด D1 และตัวเก็บประจุ C2 หากแรงดันไฟฟ้าที่วัดได้บน R10 เป็นค่าลบ วงจรจะกลับขั้วอินพุตโดยอัตโนมัติโดยการดึงทรานซิสเตอร์ Q2 และสลับรีเลย์ RL1 และ D4 ในขณะที่ LED สว่างขึ้น

หากมีคนต้องการข้ามวงจรย่อยเหล่านี้ จะต้องวัดขั้ว หรือแก้ไขวงจรเพื่อวัดขั้วบวกและขั้วลบ รวมถึงการจ่ายแรงดันไฟกลับของขั้วลบหรือขั้วบวก

วงจรย่อย R12 และ R11 จะวัดแรงดันไฟฟ้าอินพุตโซนจริงผ่านหน้าสัมผัสรีเลย์ของ RL1 และ RL2 รีเลย์ RL2 จะสลับเมื่อเราตัดสินใจที่จะเปลี่ยนสถานะจากการอ่านแรงดันไฟฟ้าลูปโซนไปสู่การโจมตีอินพุตลูปโซนของระบบสัญญาณกันขโมย

จอแสดงผล LCD1 จะแสดงระดับแรงดันไฟฟ้าที่วัดได้ของลูปโซน โดยจะรับข้อมูลการวัดผ่านการสื่อสาร I2C จากไมโครคอนโทรลเลอร์ Arduino Uno

ตัวแบ่งแรงดันไฟฟ้าอินพุต/เอาต์พุต (R11/R11 + R12) ถูกตั้งค่าอัตราส่วน 1:4 สำหรับข้อกำหนดระดับแรงดันไฟฟ้าอินพุตของ AD

เมื่อสวิตช์ SW2 เปิดอยู่ Arduino Uno จะจ่ายแรงดันไฟฟ้าในระดับที่วัดได้ไปยังสายลูปโซนผ่านอินเทอร์เฟซ D/A ที่ใช้ MCP4725 และตัวขยายสัญญาณ (amplifiers) ตัวขยายสัญญาณ U2A พร้อมตัวต้านทาน R19 และ R20 ขยายอินพุต 4 เท่า และส่งไปยังบัฟเฟอร์แอมป์ U2B และ U2C (เอาต์พุตเชื่อมต่อแบบขนาน) โดยมีระดับแรงดันเอาต์พุตเท่ากับที่วัดได้บนลูปโซน แรงดันไฟฟ้านี้จะถูกนำเสนอไปยังลูปโซน และการสลับ SW1 ไม่ควรเปลี่ยนอินพุตโซนของชุดกันขโมย ในกรณีส่วนใหญ่ การโจมตีควรประสบความสำเร็จกับระบบสัญญาณกันขโมยที่ทันสมัยถึง 90%

สวิตช์ SW1 จำลองสถานะเปิด/ปิดของหน้าสัมผัสประตู หากมีใครต้องการทดลองกับวงจรในโปรแกรมจำลองวงจร และอย่าลืมเพิ่มตัวต้านทานที่อ้างอิงกราวด์ เนื่องจากอุปกรณ์นี้ตั้งค่าแหล่งจ่ายแรงดันไฟฟ้าแบบลอยตัว (floating type voltage source) ไว้ล่วงหน้า

LCD1 และ IC1 เป็นวงจรย่อยของ Liquid Crystal_I2C lcd Arduino sketch (รุ่น - ywrobot arduino lcm1602 IIC V1)

โค้ดสำหรับ Arduino แสดงอยู่ด้านล่าง:

โค้ดสำหรับจอแสดงผล Liquid Crystal_I2C lcd และ DAC สามารถพบได้บน INTERNET

ใช้ค่า delay 200 สำหรับการทำให้รีเลย์เสถียร, 500 สำหรับจอแสดงผล LCD และ 20000 สำหรับการจำกัดเวลาในการประนีประนอม และสามารถเปลี่ยนแปลงได้ตามต้องการ

ไลบรารีที่โหลด:

NewLiquidCrystal

// or LiquidCrystal

Wire

/*

Configuration bytes:

//12-bit device values from 0-4095

//page 18-19 spec sheet

buffer[0] = 0b01000000; // control byte

//bits 7-5; 010 write DAC; 011 write DAC and EEPROM

//bits 4-3 unused

// bit0 unused

buffer[1] = 0b00000000; //HIGH data

//bits 7-0 D11-D4

buffer[2] = 0b00000000; // LOW data

//bits 7-4 D3-D0

//bits 3-0 unused

*/

#include // specify use of Wire.h library

#defineMCP4725 0x60 // MCP4725 base address

bytebuffer[3];

unsignedint val;

#include

#include

#include

#include

#include

LiquidCrystal_I2Clcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Setup lcd

//LiquidCrystal_I2C lcd(0x27, 16, 2) lcd address may be diferent as toa lcd vendor specyfication

voidsetup() {

pinMode( 4, INPUT); //pin to starts measurement

pinMode(13, OUTPUT); //Relay swith ON to startcompromising

pinMode(A0, INPUT); // pin as Analog IN to measure zone loop voltage

} //end setup

voidloop() {

int u= 0;

intval = 0;

buffer[0] = 0b01000000; // control byte

delay(200);//Wait

u= analogRead(0);

val = u* 4; // read pot

buffer[1] = val >> 4; // MSB 11-4 shift right 4 places

buffer[2] = val << 4; // LSB 3-0 shift left 4 places

floatsensorValue = 0;

sensorValue = u*(5.0/1023.0)*4;

Wire.begin(); // begin I2C

lcd.begin(16, 2);

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("Measured VoltS =");

lcd.setCursor(0, 1);

lcd.print(sensorValue);

lcd.print("__");

lcd.print(u);

delay(500);

while(digitalRead(4) == LOW) {

//digitalWrite(2, HIGH); //ready LED ON, option

delay(200);//delay for conats to sabilize

Wire.beginTransmission(MCP4725); // address device

Wire.write(buffer[0]); // pointer

Wire.write(buffer[1]); // 8 MSB

Wire.write(buffer[2]); // 4 LSB

Wire.endTransmission();

delay(200);//Wait

digitalWrite(13, HIGH); //Relay 2 ON to compromise burglary zoneloop

delay(20000);//Wait

}

} // end loop

รายละเอียดทางเทคนิคเพิ่มเติม

การวินิจฉัยระบบรักษาความปลอดภัย

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

  • การวิเคราะห์ตัวต้านทาน EOL (End-of-Line): ระบบสัญญาณเตือนภัยระดับมืออาชีพใช้ค่าความต้านทานเฉพาะ (เช่น 2.2kΩ, 4.7kΩ) เพื่อตรวจจับการงัดแงะ เครื่องมือทดสอบนี้ใช้ ADC ของ Arduino เพื่อวัดความต้านทานของโซน
  • การระบุสถานะ: เฟิร์มแวร์ระบุสถานะที่แตกต่างกันสี่สถานะ ได้แก่ ปกติ (Healthy - Closed), สัญญาณเตือน (Alarm - Open), การงัดแงะ (Tamper - Short Circuit) และ การงัดแงะ (Tamper - Wire Cut)

เครื่องมือเปรียบเทียบประสิทธิภาพ

  • การแสดงผลแบบเรียลไทม์: I2C 16x2 LCD จะแสดงค่า Ohm แบบเรียลไทม์และสถานะโซนปัจจุบัน
  • การโต้ตอบ: มีสวิตช์โยกเพื่อจำลองเงื่อนไขความผิดปกติที่แตกต่างกัน ทำให้เป็นเครื่องมือฝึกอบรมและสอบเทียบที่จำเป็นสำหรับช่างเทคนิคความปลอดภัย

ข้อมูล Frontmatter ดั้งเดิม

title: "Arduino Project: Burglar Zone Input Tester"
description: "Tester may block hardwired sensors of common burglary alarms and access systems so protected zone is open, even if the system's in arm mode."
author: "Cezarjar"
category: "Lab Stuff"
tags:
  - "home automation"
views: 7425
likes: 4
price: 450
difficulty: "Intermediate"
components:
  - "1x Enclosure for Arduino Uno"
  - "1x SparkFun I2C DAC Breakout - MCP4725"
  - "2x Capacitor 100 nF"
  - "2x Resistor 1k ohm"
  - "2x Terminal Block Interface, Screw Type 8 Position Terminal Block"
  - "2x Through Hole Resistor, 5 kohm"
  - "2x Through Hole Resistor, 270 kohm"
  - "2x 9V battery (generic)"
  - "1x DC Power Connector, Plug"
  - "1x Solder Wire, Lead Free"
  - "3x 1N4007 – High Voltage, High Current Rated Diode"
  - "1x Resistor 10k ohm"
  - "1x 5 mm LED: Green"
  - "1x Through Hole Resistor, 91 kohm"
  - "1x Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires"
  - "1x Solderless Breadboard Full Size"
  - "1x Capacitor 10 µF"
  - "1x General Purpose Quad Op-Amp"
  - "1x Soldering iron (generic)"
  - "1x Tactile Switch, Top Actuated"
  - "1x Arduino UNO"
  - "2x Relay Module (Generic)"
  - "1x Jumper wires (generic)"
  - "1x Resistor 330 ohm"
  - "2x 9V Battery Clip"
  - "1x Character LCD Module Display LCM 1602 16x2 HD44780 Controller Blue Blacklight"
  - "2x Current Sense Through Hole Resistor, 1 ohm"
  - "3x Resistor 1M ohm"
  - "2x General Purpose Transistor NPN"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "9705098027d1612857dd981c7ba7f07e5d24f83f24cc787aa5934c504e277c3f"
encryptedPayload: "U2FsdGVkX18S40EJWAQBentxfBlR+m3dTsJ5Kg2EEdTuePb8hmHeNw3EKm9BodPshz30FsiMXWhK0vX5ai/NVL1+8pE1wv7Qglq0XYkxwdU="
seoDescription: "Arduino project to test burglar zone inputs. Blocks sensors in burglary alarms to keep zones open even in arm mode."
videoLinks:
  - "https://www.youtube.com/embed/_jSeOGATPjw"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-project-burglar-zone-input-tester-056b55_cover.jpg"
lang: "th"