동작 감지 센서를 Nano 에 연결 해 주고 esp8266 의 스케치 코드를 좀 손 봐주면 될랑가...
요렇게? 연결해서 현관 문 앞에 바로 두면 끝.
그리고 라즈베리파이 카메라를 현관이 잘 보이는 곳에 놓아 둔다.
테스트를 위해 임시로 대충 외장 배터리에 연결해서 스마트 미러 밑에 걸쳐 뒀다.
esp8266 동작이 문제인데... 지금까지는 esp8266 이 라즈베리 파이가 보내주는 명령을 받는 역할 만 했는데, 이번엔 동작 감지가 되면 거꾸로 라즈베리에게 알려 줘야 (송신) 하는 상황이다.
기존 코드를 잠깐 살펴 보면
...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)));
// 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(": ");
...
그럼 송신을 위해서 코드를 수정해 주면
...
// joinAPAP 접속하고 연결 하는 것까지는 동일하고 createServer 대신 send 로 바꿔 주면 끝.
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")));
...
라즈베리 파이에 돌고 있는 rest server 가 /capture 에 대한 기능을 수행하면 되는 것이다.
그럼 이번에는 라즈베리 파이가 capture 명령을 받으면 어떻게 동작 하는지 살펴보면,
#!/usr/bin/env pythonpi camera 로 capture 를 하고 telegram-cli 로 '출입자 발생!' 을 알려 준다.
#-*- 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');
테스트를 위해 사진도 전송해 줬다. (사실 기어 S2 에서 볼것이기 때문에 사진 전송을 할 필요는 없다)
pi camera 자세한 사용법은 여기 에서 확인하면 된다.
오~~~ 이렇게 구성을 했더니 정확히 사람이 나갈 때, 들어 올 때, 한장씩 사진과 알림이 온다.
테스트를 위해 아들이 수고해 줬다. ㅋㅋ (이런 건 멍멍이 인형이 대신 해 줄 수 없으니..)
![]() |
나갈 때 |
![]() |
들어 올 때 |
하지만 이번 취미의 목적은 기어 S2 로 간편하게 확인 하는 것이 었기 때문에
app 도 추가 해 주기로 하고...
그럼 다음 편에..
댓글 없음:
댓글 쓰기