AWS IoT를 사용하여 Raspberry Pi와의 MQTT 통신을 C 언어로 작동

개요



지금은 AWS IoT와 raspberry pi 사이의 MQTT 검증을 시도했습니다.
MQTT 통신은 비력한 디바이스가 적은 자원으로 통신할 수 있기 때문에 http 통신처럼 표준이 되고 있다. 라고 생각하고 있기 때문에 조금은 알아 두는 것이 좋다는 의도입니다

작동하는 내용은 AWS IoT를 사용하여 raspberry pi와의 MQTT 게시 및 구독 동작 확인입니다.
그러나 여기까지는 선인 분들의 정보를 이용함으로써 쉽게 실현할 수 있으므로,
이번에는 raspberry pi 측이 C 언어로 작동하기로 결정했습니다.

이미지





검증 방법


  • AWS IoT 마법사를 사용하여 일단 파이썬 환경에서 작동합니다.
  • python에서 동작을 확인한 후 AWS IoT Embedded C SDK를 사용하여 C 언어로 작동합니다.

    AWS IoT 마법사를 사용하여 일단 python 환경에서 작동합니다.



    여기를 참고로했습니다.
  • 서비스 목록을 변경하고 AWS IoT 대신 IoT Core를 선택하십시오.


    AWS IoT Embedded C SDK를 사용하여 C 언어로 작동



    AWS 설명서(AWS IoT Embedded C SDK 사용)의 단계에 따라 진행
    htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 이오 t / ㅁ st / ゔ ぇ ぺぺ ぐ い で / い ー え m 뻬 dc sdk. HTML

    (보충 설명)
    - 현재 디렉토리/root에서 git clone https://github.com/aws/aws-iot-device-sdk-embedded-C.git -b release- cert는 파이썬에서 작동 할 때 생성 된 인증서를 사용했습니다.
    - external_libs/mbedTLS/아래에 htps : // 기주 b. 코 m / 아 R m 베 d / m 베 dtls 파일을 복사했습니다.
    - 정책은 파이썬에서 작동 할 때 생성 된 내용을 일부 수정했습니다.
    - 샘플 프로그램은 ~/aws-iot-device-sdk-embedded-C/samples/linux/subscribe_publish_sample를 사용했습니다. 현재 디렉토리를 맞추고 make를 실행하면 실행 파일을 만들 수 있습니다.
    - aws_iot_config.h  설정하는 것을 잊지 마세요.

    Policy(변경 전)
    
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iot:Publish",
            "iot:Receive"
          ],
          "Resource": [
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topic/sdk/test/java",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topic/sdk/test/Python",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topic/topic_1",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topic/topic_2"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "iot:Subscribe"
          ],
          "Resource": [
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topicfilter/sdk/test/java",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topicfilter/sdk/test/Python",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topicfilter/topic_1",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:topicfilter/topic_2"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "iot:Connect"
          ],
          "Resource": [
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:client/sdk-java",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:client/basicPubSub",
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:client/sdk-nodejs-*"
          ]
        }
      ]
    }
    
    

    Policy(변경 후)
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iot:*"
          ],
          "Resource": [
            "arn:aws:iot:ap-northeast-1:xxxxxxxx:*"
          ]
        }
      ]
    }
    

    참고로 한 정보



    htp : // bg. 아카누마 히로아키. 코m/엔트리/2017/07/01/160000
    htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 이오 t / ㅁ st / ゔ ぇ ぺぺ ぐ い で / い ー え m 뻬 dc sdk. HTML
    htps : // 기주 b. 코 m / 아 ws / 아 ws - 이오 t - ゔ ぃせ - sdk 에 m 베데 d - C / 이스에 s / 85
    htps : // 기주 b. 코 m / 아 ws / 아 ws - 이오 t에서 ゔ ぃせ - sdk - 에 m 베데 d - C / 이스에 s / 183
  • 좋은 웹페이지 즐겨찾기