MotionSense: 아두이노와 ESP8266으로 만드는 스마트 침입 감지 시스템
필요한 부품 및 소모품
| 부품 |
수량 |
비고 |
| 아두이노 메가 2560 |
1 |
메인 컨트롤러 (시리얼 포트 다수 필요) |
| ESP8266 ESP-01 |
1 |
WiFi 통신 모듈 |
| HC-SR501 PIR 센서 |
1 |
인체 감지용 적외선 센서 |
| 1000µF 전해 커패시터 |
1 |
ESP8266 전원 안정화용 |
| 저항 및 점퍼 와이어 |
1세트 |
회로 구성용 |
필요한 도구
필요한 앱 및 서비스
- Pushbullet - 스마트폰 푸시 알림 수신용
프로젝트 개요
아두이노와 PIR 센서로 무단 침입을 감지하고, ESP8266 WiFi 모듈을 통해 Pushbullet API로 스마트폰에 실시간 알림을 보내는 보안 시스템입니다. 아두이노 메가의 다중 시리얼 포트(Serial2)를 활용해 ESP8266과 통신하며, AT 명령어로 WiFi 연결 및 HTTP 요청을 처리합니다.
사전 지식
- 아두이노 기초 및 하드웨어 지식
- AT 명령어 이해 (참고 자료)
- PIR 센서 작동 원리 (위키피디아)
하드웨어 연결
PIR 센서 연결
PIR 센서의 흰색 돔을 열면 핀 설명이 있습니다: GND | OUT | VCC
- PIR GND → 아두이노 GND
- PIR VCC → 아두이노 5V
- PIR OUT → 아두이노 디지털 핀 2 (코드에서 변경 가능)
감도는 최대, 알림 주기는 최솟값으로 설정하세요.
ESP8266 연결 (아두이노 메가 기준)
- ESP8266 GND → 아두이노 GND
- ESP8266 UXTX (TX) → 아두이노 RX2 (Serial2 수신)
- ESP8266 CH_PD → 3.3V 레귤레이터 또는 저항 분할 후 아두이노 5V (직결 시 손상 주의)
- ESP8266 URXD (RX) → 아두이노 TX2 (Serial2 송신)
- ESP8266 VCC → 아두이노 3.3V 핀
- RST, GPIO0, GPIO2는 미연결
전원 안정화: ESP8266은 데이터 전송 시 순간 전류가 커 아두이노가 재부팅될 수 있습니다. 1000µF 전해 커패시터를 ESP8266 VCC와 GND 사이에 병렬로 연결해 피크 전류를 보충하세요. (긴 다리: VCC, 짧은 다리: GND)
Pushbullet 설정
- Pushbullet 웹사이트/앱 가입 및 로그인
- 계정 설정에서 Access Token 발급 및 저장
- API 기본 URL:
https://173.17.168.19:8181/pushbullet/v2/pushes (HTTPS 불가로 HTTP 사용)
소프트웨어 구현
GitHub 저장소(ESP8266-experiments)의 Experiments/MotionSense.ino를 아두이노 IDE로 열세요.
수정해야 할 상수
#define SSID "YOUR_WIFI_SSID"
#define PASS "YOUR_WIFI_PASSWORD"
#define PIRPIN 2
#define AUTH_TOKEN "YOUR_PUSHBULLET_ACCESS_TOKEN"
주요 함수 구조
sensor_calibration() - PIR 센서 보정
check_WiFi_radio() - WiFi 모듈 상태 확인
reset_wifi() - WiFi 모듈 리셋
set_wifi_mode() - 클라이언트 모드 설정
check_wifi_stat() - AP 연결 상태 확인
connect_ssid() - WiFi 연결
pirRead() - PIR 센서 값 읽기 (0/1)
server_connect() - Pushbullet 서버 연결
post() - 푸시 알림 전송
server_disconnect() - 연결 종료
작동 흐름
- 시작 시 PIR 센서 보정 및 ESP8266 초기화
- WiFi 접속 후 메인 루프 진입
- 1분마다 PIR 센서 확인
- 움직임 감지 시(
pirRead() == 1) Pushbullet로 알림 전송
- 시리얼 모니터에 "Everything fine | No intrusion" 또는 감지 로그 출력
회로도
