사물을 등록하고, 데이터를 보내고, 추출하는법
목표
1. 사물등록 , 인증서 만들기 , 보안에서 정책을 만든다 . 인증서에 정책 연결
2. EC2 에뮬레이터를 이용하여 테스트하고, 구독하는 방식이다.
3. 명령어를 보내고, 승인을 통해 IoT 장치를 제어하기
4. 디바이스 Shadow 알아보기
요약
<1> 사물등록 , 인증서 만들기 , 보안에서 정책을 만든다. 인증서에 정책 연결
<2> EC2에 필요 파일 전송
<3> EC2 접속 확인
<4> EC2로 에뮬레이터 실행
<5> 구독
<6> Shadow로 일을 업데이트하기
<1> 사물등록 , 인증서 만들기 , 보안에서 정책을 만든다. 인증서에 정책 연결
1. 사물을 만든다.
services > iot Core > Get Start > Manage > Things > Register a thing (사물등록) > Create a single thing
ra2
NEXT
2. 인증서 만들기
1) 이 사물에 대한 인증서 다운로드
- 이 형식의 파일은 컴퓨터를 손상시킬수 있습니다. 그래도 다운로드 하시겠습니까? 계속 클릭해야 한다.
- 미확인 2ssscrdonload 가 나오면 안된다.
- 파일 이름은 xxxxxxxxx.crt 이여야 한다.
2) 퍼블릭키 다운로드
3) 프라이빗 키 다운로드
4) 활성화 클릭 => 비활성화로 변경된다.
Attch a Policy > Register Thing
3
Secure > Policy > Create a policy > Name
ra1-policy
고급 모드 (advance mode) 로 변경
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Connect",
"iot:Publish",
"iot:Receive"
],
"Resource": [ "*" ],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": ["true"]
}
}
}
]
}
> Create (생성)
4
인증서에 정책 연결
Secure > Certificates
... 클릭
인증서에 정책 연결 > 정책 선택 > 체크 > 연결
결국
사믈과 인증서만 있으면 된다.
인증서에 정책이 반영 되어 있다.
5
관리 (Manager)에서 HTTPS API Endpoint 복사
관리 > 사물 > ra1-Sensor >
interact > HTTPS 엔드 포인트 복사해 놓는다.
형식 : aaaaaaaaaaaaaa.iot.us-west-2.amazonaws.com
참고 MQTT 란 ? machine-to-machine (m2m) / internet of things
<2> EC2에 필요 파일 전송
FTP 서버에 File Zilla 클라이언트로 PPK 키로 접속을 한다.
1. EC2 만들기
2. PPK 만들기
3
File Zilla 다운로드 https://filezilla-project.org/
편집 > 설정 > PPK 추가
ec2-user
22
항상 이호스트를 신뢰하고 이 키를 캐시에 등록을 체크 > 확인
util / root-ca.crt 삭제
인증파일 crt 와 priavate key 업로드한다.
<3> EC2 접속 확인
<4> EC2에서 에뮬레이터 실행
1. 설정 하기
$ cd utils
vi iot-properties.file
host = a3gnqumpjtt2tn-ats.iot.us-west-2.amazonaws.com
port = 8883
clientId = TruckSensor
thingName = TruckSensor
caPath = ./utils/root-CA.crt
certPath = ./utils/fadf0d3561-certificate.pem.crt
keyPath = ./utils/fadf0d3561-private.pem.key
region = us-west-2
[ec2-user@ip-10-0-10-234 utils]$
2
root ca 받기
$ curl https://www.amazontrust.com/repository/AmazonRootCA1.pem > /home/ec2-user/utils/root-CA.crt
$ cd /home/ec2-user
$ node temp-sensor.js
<5> 구독
Test
temp_readings
$aws/things/TruckSensor/shadow/update/accepted
$aws/things/TruckSensor/shadow/update/rejected
<6> Shadow로 일을 업데이트하기
1
Manage > Things > thinks 클릭 > Shadow
2
Test
$aws/things/TruckSensor/shadow/update
// temp를 36으로 변경한다.
{
"state": {
"reported": {
"temp": "36"
}
}
}
감사합니다.
<7> 참고 자료
209. AWS IoT 시작 하기 https://brunch.co.kr/@topasvga/845
359. IoT 시작하기 https://brunch.co.kr/@topasvga/1146
360. IoT 테스트 해보기 https://brunch.co.kr/@topasvga/1147
감사합니다.