목적
1. IoT 사물을 생성, 인증서를 사용한다.
2. 센서데이터(온도)를 IoT 디바이스 게이트웨이로 보내고, SNS알림을 받는다.
3. Shadow이용해 에어컨을 켜서 온도를 낮춘다.
q -o , real -x
<1> 구성
<2> EC2 시뮬레이터 접속, 인증서 생성
<3> 사물 타입 생성
<4> 사물 생성
<5> 인증서에 정책 반영하고, 인증서를 사물에 적용하기.
<6> SNS 주제 만들기. 알람을 보낼 IoT 규칙을 생성
<7> EC2 시뮬레이션 App 실행 (시뮬레이터 앱 작성 필요)
<8> 사물에 대한 구독 만들기 와 게시
<9> Shadow 이용해 기기 상태 변경
<1> 구성
시뮬레이터인 EC2 ------- IoT topic -------- IoT Rule --- SNS - Rule Action
시뮬레이터인 EC2 ------- IoT Shadow ---------- 관리자
<2> IoT 장비 접속하기 (EC2 시뮬레이터 접속), 인증서 생성
1
CLI 를 사용하기 위한 환경설정
aws configure
access-key : xxxxx
secret-key : xxxxxxx
region : us-west-2
2
mkdir sim
cd sim
mkdir certs
aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certs/certificate.pem --public-key-outfile certs/public.key --private-key-outfile certs/private.key
=>
cd cert
ls
인증서, private 키, public 키 생김.
3 생성 확인
IoT Core > Secure > Certificates 에 인증서 있는지 확인만 한다.
Secure > policies 만들기
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Connect",
"iot:Publish",
"iot:Receive"
],
"Resource": [ "*" ],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": ["true"]
}
}
}
]
}
<3> 사물 타입 생성
Manager > Types > Create thing type > Name:
HomeAutomation
Description :
Things around the house
Set searchable thing attributes
add another
Attribute Key :
Location
> Create thing type
타입이 생성 완료
<4> 사물 생성 - 온도계 생성해보자
Manager > Things > Register a thing > Create a single thing > Name :
Thermostat
Thing type // 위에서 만들어진 타입
HomeAutomation
Location // 위에서 만들어진 로케이션
Value :
Bedroom
Show Thing shadow
code 입력
{ "desired": { "airConditioningIsOn": false }, "reported": { "airConditioningIsOn": false } }
> NEXT
> Create thing without cetificate
사물 생성 완료
<5> 인증서에 정책 반영하고, 인증서를 사물에 적용하기.
Secure > Certificates > Attatch policy > selete > attach
Secure > Certificates > Attatch thing > selete > attach
<6> SNS 주제 만들기. 알람을 보낼 IoT 규칙을 생성
1. SNS topic 만들기
Topic name
ThermostatNotification
display name :
Thermostat
> Create topic
뭘로 받을지 설정한다.
Create subscription
Protocol :
Endpoint :
topasvga@naver.com
> Create subscription
2. topasvga@naver.com 가서 메일 수신을 수락한다.
3. IoT Rule 만들기
Iot Core > Act > Rule > Create a Rule
Name :
EmailRule
Descrpition :
Send email when temperature > 60 AND temperature < 80
Set one or more ations
add action
Send a message as an SNS push notification 선택 > Configure action
sns target :
xxxxxxxxxxx 선택
message format :
raw
choose or create :
iot-role
add action
SELECT * FROM 'house' WHERE temperature > 60 AND temperature < 80
> create rule
// rule 생성 완료
<7> EC2 시뮬레이션 App 실행
EC2 접속
npm설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node
참고
cd simulatorunam
npm config set registry http://registry.npmjs.org
npm install
node simulator.js
<8> 사물에 대한 구독 만들기 와 게시
IoT Core > Test > MQTT client
Subscription topic :
house
Subscription topic
// 메일 수신을 확인한다. 메일이 와 있다.
<9> Shadow 이용해 기기 상태 변경
Shadow이용해 에어컨을 켜서 온도를 낮춘다.
1.
EC2 에서
^ C
node simulator.js
2.
에어콘 켜짐으로 상태를 변경한다.
IoT Core > Manager > Things > Themostat > Shadow > Shadow Document > Edit
{ "desired": { "airConditioningIsOn": true } }
Save
3. ec2 다시 접속
온도가 떨어진다.
감사합니다.