거리 센서로 방범 시스템을 DIY

거리 센서로 방범 시스템을 DIY



하고 싶은 일



범죄도시 지바현에서 자신의 집·가족을 지키고 싶다.
그러나 나에게는 ALS●K와 계약할 돈이 없다. 그래, 스스로 지킬 수밖에 없는 것이다.
그렇다면, 부재중에 센서 앞을 사람이 지나가면, slack으로 알리는 시스템을 스스로 만들 수밖에 없는 것이다.

준비한 것



ESP-WROOM32(ESP32-DevKitC)
거리 센서 GP2Y0E03
RaspberryPi

방법



ESP-WROOM32에 거리 센서를 연결하여 사물의 접근을 모니터링합니다.
접근을 감지하면 RaspberryPi에 HTTP POST한다.
HTTP POST를 받아 RaspberryPi는 Slack에 게시합니다.
수상한 사람을 잡는다 or 통보한다.

시스템 이미지





만들기



ESP-WROOM32와 GP2Y0E03 연결



GP2Y0E03은 I2C 통신으로 디지털 출력할 수 있으므로 ESP-WROOM32와는 I2C로 접속한다.
ESP-WROOM32의 I2C 통신 방식을 잘 모르기 때문에,
esp-idf/examples/peripherals/i2c/의 README.md를 확인했습니다.

•Pin assignment:
◦slave :
◾GPIO25 is assigned as the data signal of i2c slave port
◾GPIO26 is assigned as the clock signal of i2c slave port

◦master:
◾GPIO18 is assigned as the data signal of i2c master port
◾GPIO19 is assigned as the clock signal of i2c master port

이번에는 EWP-WROOM32를 master로 하고 싶기 때문에, GPIO18을 data signal, GPIO19를 clock signal로서 사용한다.
ESP32-DevKitC의 회로도를 확인하면 다음과 같다.

또한 GP2Y0E03의 애플리케이션 노트는 다음과 같다.


따라서 연결은 다음과 같습니다.


완성



도코모, 미안해.


검출 조건 결정



센서로 물체와의 거리를 얻는 프로그램 작성



소스 코드
esp/i2c/main/i2c_example_main.c
※빌드에는 esp-idf 환경이 필요

사람이 지나갈 때의 거리



이런 느낌의 복도에 설치해 보았다.

프로그램으로 사람이 앞에 있을 때의 거리를 측정한다.

63cm에서 변화가 있으면 사람이 통과했다고 볼 수 있을 것 같지만,
우선 40cm 이하를 사람이 지나갈 때의 거리로 하자.

방범 시스템으로 마무리



사람을 감지하고 HTTP 요청을 하는 프로그램 만들기



ESP-WROOM-32측 소스 코드

security_system/main
sensor.c : 센서로 거리 측정
http_request.c : Wifi에 연결하고 HTTP POST를 수행합니다.
main.c : 100ms마다 거리를 측정하고 40cm 미만인 경우 RaspberryPi에 HTTP POST
※빌드에는 esp-idf 환경이 필요

RaspberryPi 측 소스 코드

RaspberryPi는 HTTP 요청을 받을 수 있도록 사전에 웹 서버로 둔다.
index.php : HTTP POST 요청을 받고 slack 게시 프로그램 호출
scck_sec. py : slacker를 사용하여 slack에 게시

테스트



센서 앞을 지나쳐 보았다.

알림이 왔습니다 !!


테스트 성공! ︎

마지막으로



이것을 유수중에 기동해 두면 침입자를 알아차릴 수 있다.
한층 더 복수개 설치하면 보다 신뢰성은 올라갈 것이다.
침입자를 어떻게 잡을 것인가는 향후의 과제.

참고 사이트



technology memo
Raspberry Pi3에서 I2C 센서 사용
WROOM-32로 PCA9624PW 이동 - i2c test
매우 빚을졌습니다.
감사합니다.

좋은 웹페이지 즐겨찾기