W5100S-EVB Pico + AWS IoT Core + Amazon Timestream + Grafana

이경은·2022년 2월 15일
0

1. W5100S-EVB Pico + AWS IoT Core

1) W5100S-EVB Pico + AWS IoT Core 연결

  • 이 내용은 앞서 포스팅 해두었으므로 아래의 포스팅 링크를 참조.
    Raspberry Pi Pico + AWS IoT Core + MQTT 연동 및 실습

  • 위의 내용을 그대로 따라하는데, MQTT 메시지 print문만 변경해준다.

  • 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 설정에 관한 자세한 내용을 보려면 아래의 포스팅 참조.
  • Timestream + Grafana

✔ Data sources 설정

  • Grafana - Configuration - Data sources에서 Amazon Timestream 선택

✔ Timestream settings

  • Authentication Provider에서 Acess & secret key를 선택하고, 입력.
  • Default Region은 Timestream이 존재하는 리전으로 설정한다.
  • Default Query Macros는 Timestream DB와 Table을 설정.
  • 설정을 완료 했다면 아래의 Save & test 버튼을 누르고, 연결에 성공하면 Connection success 라고 안내가 나온다.

2) Dashboard 설정

  • Create - Dashboard 메뉴 클릭
  • 새로운 대시보드 생성됨. Add a new panel 선택
  • Macros를 설정해두었기 때문에 전체 데이터를 쿼리해도 humidity 데이터만 출력됩니다.
  • Query 설정
  • Timestream 데이터를 실시간으로 모니터링할 수 있음.
  • 현재는 데이터를 고정 값으로 넘겨주지만 센서를 연결해서 센서 값을 받아서 구현해도 됨.
  • 위에서 Apply 버튼을 누르면 W5100S-EVB-Pico에서 보낸 MQTT 메시지를 실시간으로 시각화 할 수 있음.
profile
Web Developer

0개의 댓글