2016년 4월 10일 일요일

스마트홈에 출입자 CCTV 기능 추가 - 3편 (완성! 기어S2 앱 기능 추가)

CCTV 도 준비됐고 동작 감지와 붙였으니, 이제 남은 것은 gear s2 에서 출입자를 알림 받고 찍힌 사진을 확인 하는 것이다.

이렇게 메뉴는 추가 해 뒀었고...

라즈베리파이에서 telegram-cli 로 보내 주기 때문에 notification 은 자동으로 뜬다.
요렇게~

그럼 '스마트홈' 앱을 열어서 찍힌 사진만 확인 하면 끝!
ㅋㅋㅋ 씻지도 않고 찍혀서 얼굴은 모자이크 처리 했다. 자~ 이렇게 완성!

음.. 뭔가 허전한데.. 아.. 앱 코드를 좀 설명 해야 겠다.
CURL *curl;
CURLcode res;
struct FtpFile ftpfile={
   "image.jpg",
   NULL
};
curl = curl_easy_init();
if(curl) {
connection_h connection;
int conn_err;
conn_err = connection_create(&connection);
if (conn_err != CONNECTION_ERROR_NONE)
{
  // Error handling
  return;
}
char *proxy_address;
conn_err = connection_get_proxy(connection, CONNECTION_ADDRESS_FAMILY_IPV4, &proxy_address);

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA,  (void *)&ftpfile);
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/cctv/image.jpg");
if (conn_err == CONNECTION_ERROR_NONE && proxy_address)
{
  curl_easy_setopt(curl, CURLOPT_PROXY, proxy_address);
}
res = curl_easy_perform(curl);
if(res != CURLE_OK){
dlog_print(DLOG_ERROR, LOG_TAG, "CurlFail", res);
elm_exit();
}
curl_easy_cleanup(curl);
connection_unset_proxy_address_changed_cb(connection);
connection_destroy(connection);
    ad->bg = elm_bg_add(ad->naviframe);
    elm_bg_file_set(ad->bg, ftpfile.filename, NULL);
    elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, ad->bg, "empty");
}
핵심은 curl 을 사용한다는 것과 download 받은 파일을 bg 를 사용해서 화면에 표시 하는 것.
역시나 app 만드는 데 가장 많은 시간이 소모 됐다. ㅠㅜ... (투덜투덜)

이제.. 된건가. 마지막으로 시연 영상으로 마무리~


댓글 없음: