brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 22. 2020

359. IoT 명령과 제어법 실습

사물을 등록하고, 데이터를 보내고, 추출하는법

목표

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



감사합니다.


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