Armadillo-IoT G3에서 AWS IoT 실행

9522 단어 armadilloawsIoTAWS
Armadillo-IoT G3(이하 Armadillo)에서 AWS IoT에 연결하기 전까지의 단계를 소개합니다.

AWS IoT는 인터넷에 연결된 디바이스와 AWS 간의 양방향 통신을 가능하게 하는 서비스입니다.

AWS IoT에 사물 등록



AWS IoT는 '사물' 단위로 디바이스를 관리합니다.

사물로 Armadillo를 등록하면 Armadillo에서 AWS IoT를 사용할 수 있습니다.

실제로 등록하는 순서를 기재합니다.
  • AWS Management Console에 로그인한 후 htps : // 아 ws. 아마존. 코 m / 이오 t으로 이동합니다.
  • 왼쪽 창에서 관리를 선택합니다.
  • 페이지에서 만들기를 클릭한 후 전환된 페이지에서 단일 사물 만들기를 선택합니다.
  • 사물의 이름을 입력하고 페이지 하단의 다음을 클릭합니다.
  • 인증서 만들기를 클릭합니다.
  • 세 개의 파일을 모두 다운로드합니다. 그런 다음 인증서를 활성화합니다. 그런 다음 페이지 하단의 '완료'를 선택합니다.
  • 왼쪽 창의 안전에서 정책을 선택합니다.
  • 정책 이름과 작업(iot:*)을 입력한 후 권한을 확인하고 만들기를 클릭합니다.
  • 왼쪽 창의 안전성에서 인증서를 선택합니다.
  • 방금 만든 인증서의 오른쪽 상단에있는 "..."을 클릭하고 정책 연결을 선택합니다.
  • 방금 만든 정책을 선택하고 연결을 클릭합니다.
  • htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 이오 t / ㅁ st / ゔ ぇぺぺ ぐ い で / 마나 긴 g에서 ゔ ぃ せ rts. html # 세르 r ぇ에서 Amazon 루트 CA 1을 다운로드하고 root-CA.crt로 이름을 바꿉니다.

  • 이것으로 AWS IoT에 사물 등록이 완료됩니다.

    Armadillo에서 준비


  • Armadillo에 Python3을 설치합니다.
  • [Armadillo ~]# apt update
    [Armadillo ~]# apt install python3
    
  • pip를 사용하여 AWS IoT Python SDK를 설치합니다.
  • [Armadillo ~]# pip install AWSIoTPythonSDK
    
  • Armadillo에 작업 폴더를 준비합니다.
  • [armadillo ~]# mkdir AWSIoT
    [armadillo ~]# mkdir AWSIoT/certs
    
  • certs 폴더에 "AWS IoT에 사물 등록"6. 및 12.에서 다운로드한 인증서를 ftp 등을 사용하여 복사합니다.

  • 샘플 코드



    아래 샘플 코드는 Armadillo의 기능을 사용하여 CPU 온도를 얻고 AWS IoT의 "그림자"라는 위치에 업로드합니다.

    Armadillo의 AWSIoT 디렉토리에 다음 코드를 넣으십시오.
    from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTShadowClient
    import time
    
    # Callback function
    
    def callback(payload, status, token):
        if status == "accepted":
            print("Connection accepted. token: " + token)
        elif status == "rejected":
            print("Connection rejected. token: " + token)
        elif status == "timeout":
            print("Connection timeout. token: " + token)
        else:
            print("Unknown error. token: " + token)
    
    # Configure
    rootCAPath = "Root CA path"
    certificatePath = "Your certicifate key path"
    privateKeyPath = "Your private key path"
    thingName = "Name of your thing"
    endPoint = "Your endpoint"
    
    clientId = "AWSIoTGettingStarted"
    port = 8883
    
    tempFile = "/sys/class/thermal/thermal_zone1/temp"
    
    # Create a client
    client = AWSIoTMQTTShadowClient(clientId)
    client.configureEndpoint(endPoint, port)
    client.configureCredentials(rootCAPath, privateKeyPath, certificatePath)
    
    # Client configuration
    client.configureAutoReconnectBackoffTime(1, 32, 20)
    client.configureConnectDisconnectTimeout(10)
    client.configureMQTTOperationTimeout(5)
    
    # Connect to AWS IoT
    client.connect()
    
    # Create a deviceShadowHandler
    handler = client.createShadowHandlerWithName(thingName, True)
    
    # Delete the shadow document
    handler.shadowDelete(callback, 5)
    
    # Write the temperature of the CPU on shadow
    while True:
        try:
            fileHandler = open(tempFile)
            temp = str(int(fileHandler.read().strip()) / 1000.0)
            json = '{"state":{"desired":{"property":"' + temp + '"}}}'
        except Exception as e:
            print(e)
            json = '{"state":{"desired":{"property":"Client threw an Exception"}}}'
        finally:
            handler.shadowUpdate(json, callback, 5)
            time.sleep(1)
    

    17행부터 20행째는, 증명서등의 패스등을 입력해 주세요.

    21행에는 다음 단계에서 사용 가능한 엔드포인트를 입력하십시오.
  • 왼쪽 창에서 관리를 선택합니다.
  • 방금 만든 물건을 선택합니다.
  • 왼쪽 메뉴에서 작업을 선택합니다.

  • 다음 위치에 엔드포인트가 있습니다.



    샘플 코드를 다시 작성한 후에 실행할 수 있습니다.
    Connection accepted. 가 표시되면 연결에 성공한 것입니다.
    Connection rejected Connection timeout 가 표시되면 연결에 실패했습니다. 다시 절차를 확인하십시오.

    좋은 웹페이지 즐겨찾기