brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Feb 13. 2020

199. 방문자 확인 서비스 만들기1

목표

사람이 없는 창고에 방문자가 왔을 때 바로 알고 싶다.

아이가 집에 오면 원격지에서 바로 알고 싶다.

누가 왔는지 SMS로 오면 좋겠다.


현관문을 열고 들어오면 자동으로 사진 찍어 SMS 발송되도록 하고자 한다.

사진이 누구인지 인식되어 문자로 오게 하고자 한다.

하나씩 구현해보자


본 자료는 구현하면서 구성이 조금씩 변경됩니다.




<1> 구성도

<2>  S3 스토리지로 사진이 올라오면 등록 메일을 받았으면 한다.

<3>  S3 스토리지로 사진이 올라오면 SMS 문자를 받았으면 한다.



<1> 구성도

문 ---------- 카메라-----------스마트폰


<2>  S3 스토리지로 사진이 올라오면 등록 메일을 받았으면 한다.


사진 업로드--S3 스토리지 -- SNS 서비스 --스마트폰(메일 수신)



문----카메라-라즈베리파이(서버)---S3 스토리지  ---SNS서비스---스마트폰


라즈베리파이 서버에서 사진을 찍으면, S3 스토리지에 올리자.

특정 폴더의 사진을  cron으로 주기적으로 S3 스토리지에 올리자.


라즈베리파이에 카메라를 달아 사진을찍자

S3에  이벤트 기능을 이용하여 SNS 로 내보내 알람을 받자


1. 라즈베리파이 구매

1) 라즈베리파이 OS 설치 https://brunch.co.kr/@topasvga/701

2) 라즈베리파이용 카메라 구매 : 일반 카메라 (10불 이하)  or  열 추적되는 적외선 카메라 구매(30불 정도)

3) 거리센서 구매


2. S3 스토리지 생성법과 파일 업로드 법

AWS 웹 Console로  S3 스토리지 생성 가능하다.

웹 콘솔로 파일을 올릴 수 있다.


라즈베리파이에서 CLI를 통해서 S3 스토리지를 생성할 수도 있다.

CLI로 파일을 올릴 수 있다.

AWS IAM에서 Programable API계정을 만들어야 한다.

Accesskey,SecretKey 생성


1) S3 스토리지

upmail10.serverchk.com을 만든다.


2)  SNS 서비스

topic을 생성한다.

topic name : upmail10

Access policy > Advanced

- SNS 이름 upmail10을 입력한다.

- S3 스토리지 upmail10.serverchk.com 이름을 입력한다.


      "Resource": "arn:aws:sns:us-east-1:343479136461:upmail10",

      "Condition": {

        "ArnLike": {

          "AWS:SourceARN": "arn:aws:s3:*:*:upmail10.serverchk.com"



> Create Topic


> Create subsciption

Protocol : Email

Endpoint : topasvga@naver.com


topasvga@naver.com으로 로그온 해서 앞으로 메일 수신하겠다고 수락한다.



3)  S3 스토리지

S3의 이벤트로 처리해보자.

S3에 사진이 올라오는 이벤트 발생 시,  SNS를 보내도록 설정한다.


S3 > Propeties > Events > Add notifications

Name :  upmail10-event

체크 All object create events

Send to  : SNS  Topic

SNS : upmail10


아래 오류가 나면  topic에 오타가 없는지 확인하자.

오류 : 대상 topic에 대한 권한으로 S3가  upmail10.serverchk.com 버켓이 아니면  알람을 게시할 수 없다.

오타 확인 :


Resourec ARN과  Source ARN을 반드시 맞춰야 한다.


      "Resource": "arn:aws:sns:us-east-1:343479136461:upmail10",

      "Condition": {

        "ArnLike": {

          "AWS:SourceARN": "arn:aws:s3:*:*:upmail10.serverchk.com"


참고

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html



4)  S3 스토리지

upmail10.serverchk.com에  사진을 하나 올려보자.

지정한 개인 메일로 메일이 왔는지 확인하자.






<3>  S3 스토리지로 사진이 올라오면 SMS 문자를 받았으면 한다.


사진 업로드-------S3 스토리지 ---------- SNS 서비스 -------스마트폰(문자 수신)


1. SNS 서비스

기존  topic은 생성되어 있어 subscription만 추가하면 된다.

서울은  SNS프로토콜에 SMS가 없다.  SMS발송이 불가하다.

미국 버지니아,토코 리전은 SMS가  가능하다.

S3와 SNS은 리즌 종속되어 같은 리즌에서만 서비스 된다.


> Create subsciption

+8210xxxxxxxx

SMS

내용이 길어 문자는 7개가 온다.

메일은 1통 온다. (기존에 설정된 값)




감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari