W5100S-EVB-Pico + AWS IoT Core + DynamoDB

이경은·2022년 3월 8일
0

0.

이번 포스팅은 AWS IoT Core에서 DynamoDB로 데이터를 보내서 저장하는 것이 중점.
IoT Core에서 Rule을 설정해서 DynamoDB로 저장하는 과정은 디바이스에 관련없이 활용 가능.

1. W5100S-EVB-Pico + IoT Core

1) Random Temperature, Humidity

  • 연결에 관한 자세한 방법은 포스팅 참조
  • 이전과 똑같이 “RP2040 HAT AWS C” 프로젝트를 활용.
  • MQTT 메시지를 temp, humidity가 0~100 사이 랜덤 값으로 나오도록 설정.

2) Message payload

  • Topic은 $aws/things/picoThing/shadow/update로 설정.
  • 메시지는 temperature, humidity만 있음.

2. IoT Core + rule + DynamoDB

1) Create DynamoDB Table

Console - Create Table

Create Table

  • 테이블 이름, 파티션 키, 정렬 키 설정.
  • 정렬 키는 선택이지만 설정하지 않은 경우, 값이 하나만 들어가고 그 값이 계속 변화하기만 함.
  • AWS 공식 자습서를 보더라도 정렬 키를 넣어서 생성함.
  • 테이블 생성 완료

2) Create IoT Rule

Set rule name

  • 이름은 원하는 대로 설정

Set Query

  • SELECT temperature, humidity FROM 'topic'
  • 받으려는 값과 토픽 이름을 설정해준다. temperature, humidity는 * 로 받아도 상관 없다. 혹은 AS를 사용해서 원하는 단어로 변경해서 받아도 상관 없다.

Set Job

  • 작업에서 DynamoDB 테이블에 메시지 삽입하기 선택.
  • 테이블은 앞에서 생성해둔 테이블로 설정.
  • 파티션 키는 설정해두었기 때문에 해시 키 값만 입력. clientId는 디바이스로부터 받아올 수 있는 정보로 ${clientId()}를 사용해서 받아옴.
  • timestamp도 ${timestamp()}를 사용해서 받아온다.
  • IAM은 역할 생성 → 역할 이름 입력 → 생성 해서 이 규칙에 맞는 역할을 생성해준다. 이렇게 하면 자동으로 현재 작업에 맞춰서 권한을 가진 역할이 자동으로 생성된다.
  • 규칙 생성했다면 활성화

Query DynamoDB

규칙을 활성화한 후 DynamoDB에 들어가서 스캔/쿼리를 실행하면 규칙에 따라 값이 잘 들어오는 것을 확인할 수 있음.

참조

https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-ddb-rule.html
https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Introduction.html
https://velog.io/@dlruddms5619/W5100S-EVB-Pico-AWS-IoT-Core-MQTT-개발-환경-구축-및-실습

profile
Web Developer

0개의 댓글