2016년 4월 10일 일요일

스마트홈에 출입자 CCTV 기능 추가 - 2편 (하드웨어 마련하기)

추가로 구매해야 할 장비가 없으니 바로 시작할 수 있어서 편하다.

동작 감지 센서를 Nano 에 연결 해 주고 esp8266 의 스케치 코드를 좀 손 봐주면 될랑가...

요렇게? 연결해서 현관 문 앞에 바로 두면 끝.

그리고 라즈베리파이 카메라를 현관이 잘 보이는 곳에 놓아 둔다.
테스트를 위해 임시로 대충 외장 배터리에 연결해서 스마트 미러 밑에 걸쳐 뒀다.

esp8266 동작이 문제인데... 지금까지는 esp8266 이 라즈베리 파이가 보내주는 명령을 받는 역할 만 했는데, 이번엔 동작 감지가 되면 거꾸로 라즈베리에게 알려 줘야 (송신) 하는 상황이다.

기존 코드를 잠깐 살펴 보면
...
    // joinAP
    Serial.println(getStatus(wifi.joinAP(SSID, PASS)));
    // connect
    Serial.println(getStatus(wifi.connect(ESP8266_PROTOCOL_TCP, DST_IP, DST_PORT)));
    // create server
    Serial.println(getStatus(wifi.createServer(9999)));
...
    if ((length = wifi.available()) > 0) {
      id = wifi.getId();

      totalRead = wifi.read(buffer, 512);
      if (length > 0) {
        Serial.print("Received ");
        Serial.print(totalRead);
        Serial.print("/");
        Serial.print(length);
        Serial.print(" bytes from client ");
        Serial.print(id);
        Serial.print(": ");
...
AP 에 접속해서 9999 포트를 열어 두고 라즈베리가 'TV 켜' 와 같은 명령어 보내주면 wifi.read 해서 IR 센서에 명령을 내렸었다.

그럼 송신을 위해서 코드를 수정해 주면
...
    // joinAP
    Serial.println(getStatus(wifi.joinAP(SSID, PASS)));
    // connect
    Serial.println(getStatus(wifi.connect(ESP8266_PROTOCOL_TCP, DST_IP, DST_PORT)));
    // send
    Serial.println(getStatus(wifi.send("GET /capture HTTP/1.0\r\n\r\n")));
...
AP 접속하고 연결 하는 것까지는 동일하고 createServer 대신 send 로 바꿔 주면 끝.
라즈베리 파이에 돌고 있는 rest server 가 /capture 에 대한 기능을 수행하면 되는 것이다.

그럼 이번에는 라즈베리 파이가 capture 명령을 받으면 어떻게 동작 하는지 살펴보면,
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import picamera

camera = picamera.PiCamera()
camera.vflip = True
camera.brightness = 70
camera.capture('image.jpg')
os.system('tg-send.sh somebody "출입자가 있습니다."');
os.system('tg-send-photo.sh somebody `pwd`/image.jpg');
pi camera 로 capture 를 하고 telegram-cli 로 '출입자 발생!' 을 알려 준다.
테스트를 위해 사진도 전송해 줬다. (사실 기어 S2 에서 볼것이기 때문에 사진 전송을 할 필요는 없다)
pi camera 자세한 사용법은 여기 에서 확인하면 된다.

오~~~ 이렇게 구성을 했더니 정확히 사람이 나갈 때, 들어 올 때, 한장씩 사진과 알림이 온다.
테스트를 위해 아들이 수고해 줬다. ㅋㅋ (이런 건 멍멍이 인형이 대신 해 줄 수 없으니..)
나갈 때

들어 올 때
오호라.. 이정도만 해도 실제 사용하는 데 전혀 무리가 없을 것 같다.
하지만 이번 취미의 목적은 기어 S2 로 간편하게 확인 하는 것이 었기 때문에
app 도 추가 해 주기로 하고...

그럼 다음 편에..

댓글 없음: