RP2040-HAT-AWS-C에서 examples/aws_iot_mqtt/aws_iot_mqtt.c 파일에서 207번째 줄 코드를 temperature, humidity로 변경하고 빌드한다.
2) MQTT Message 확인
AWS IoT Core > 테스트 > MQTT 테스트 클라이언트 에서 확인
위에서 설정해둔 Topic을 구독해서 입력되는 MQTT 메시지를 확인한다.
2. AWS IoT Rule + Timestream
1) Amazon Timestream 설정
✔ DB 생성
Timestream console에 들어가서 DB를 생성.
Standard database 선택하고, DB 이름만 설정하고 Create database 버튼 클릭
✔ Table 생성
위에서 생성한 DB에 Table 생성.
이름 설정하고, 데이터 보관 기간을 설정하고 Create table 버튼 클릭
Query editor에서 테이블을 확인해보면 빈 테이블임을 확인할 수 있다.
2) IoT Rule 설정
✔ 규칙 생성
AWS IoT Core > 규칙에 들어가서 생성 버튼 클릭
이름 설정
규칙 쿼리 설명문
- 위에서 설정한 topic을 입력한다.
작업 추가 (Rule이 트리거할 작업 추가)
Timestream 작업 구성
작업 구성
- 위에서 만든 DB와 Table로 설정하고, 차원은 clientId로 설정.
- ${clientId()}는 디바이스로부터 받아오는 값이다.
- MQTT 메시지에는 Temperature, Humidity만 있지만 이렇게 해주면 자동으로 clientId가 테이블에 삽입된다.
역할 설정
- 역할 생성 누르고 새로 만들어준다.
- IAM 페이지에 가서 설정해줄 수도 있지만, 여기서 이름만 설정하고 역할을 생성하면 자동으로 Timestream에 데이터를 write 할 수 있는 권한으로 역할이 설정되므로 여기서 만드는 것이 편하다.
- 또, 미리 만들어진 역할을 사용할 경우 Timestream 테이블에 write할 수 있는 역할이라도 해당 역할이 특정 테이블에만 한정된 권한을 가지고 있어서 작업이 제대로 이루어지지 않는다.
- 새로 만들어서 사용하길 권장.
작업 추가
- 정책이 연결되었음을 확인하고 작업을 추가해준다.
규칙 생성
- 오류 작업과 태그는 별도 작업하지 않고 규칙을 생성한다.
규칙 활성화
✔ Timestream 테이블 확인
Timestream에서 Query editor를 통해서 규칙이 잘 실행되는지 확인
테이블을 확인.
3. Timestream + Grafana
1) Grafana에 Timestream 연결
이 내용도 이전 포스팅에서 다룬 적이 있어서 Grafana 설정에 관한 자세한 내용을 보려면 아래의 포스팅 참조.