초음파 센서 트립와이어 시스템: Arduino Nano로 침입 감지
부품 및 소모품
| 부품 |
수량 |
| Arduino Nano R3 |
1 |
| HC-SR04 초음파 거리 센서 |
1 |
| 부저 |
1 |
| 수/수 점퍼 와이어 |
1세트 |
필요한 도구
앱 및 온라인 서비스
프로젝트 소개
초음파 센서로 기준 거리를 설정하고, 물체/사람이 통과하여 거리가 짧아지면 부저로 경보하는 간단한 트립와이어(광학 차단기 대체) 시스템입니다. Fritzing 배선도에 따라 조립하고 코드 업로드하면 바로 작동합니다.
작동 원리
- 시작 시 초음파 센서로 기준 거리 측정 (장애물 없는 상태)
- 루프에서 지속적으로 거리 측정
- 현재 거리가 기준 거리 - 5cm 미만이면 침입으로 판단 → 부저 경보
소스 코드
#define trigPin 9
#define echoPin 10
long duration;
int distance;
long firstPulse;
int baselineDistance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
delay(1000); // 센서 안정화 대기
// 초기 기준 거리 측정
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
firstPulse = pulseIn(echoPin, HIGH);
baselineDistance = firstPulse * 0.034 / 2; // cm 단위
Serial.print("기준 거리: "); Serial.println(baselineDistance);
}
void loop() {
// 초음파 발사
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 에코 수신 및 거리 계산
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // cm
Serial.print("현재 거리: "); Serial.println(distance);
Serial.print("기준 거리: "); Serial.println(baselineDistance);
// 침입 감지: 기준보다 5cm 이상 가까워짐
if (distance <= baselineDistance - 5) {
tone(3, 500, 500); // 핀 3, 500Hz, 500ms
delay(500);
tone(3, 800, 500);
delay(500);
delay(50);
}
delay(1000); // 1초 주기 측정
}
회로도
Fritzing 배선도 이미지 제공:
- HC-SR04 VCC → 5V, GND → GND, Trig → D9, Echo → D10
- 부저 +극 → D3, -극 → GND
- Arduino Nano USB 전원으로 구동 가능
개선 아이디어
- 기준 거리 자동 재보정 (환경 변화 대응)
- 여러 각도 커버를 위한 다중 센서 배치
- WiFi/블루투스/LoRa로 원격 알림 전송
- SD 카드 로깅으로 침입 이력 기록
- 서보 모터로 센서 회전 → 2D 스캐닝
- PIR 센서와 결합하여 오작동 감소