Armadillo-IoT G3에서 AWS IoT 실행
AWS IoT는 인터넷에 연결된 디바이스와 AWS 간의 양방향 통신을 가능하게 하는 서비스입니다.
AWS IoT에 사물 등록
AWS IoT는 '사물' 단위로 디바이스를 관리합니다.
사물로 Armadillo를 등록하면 Armadillo에서 AWS IoT를 사용할 수 있습니다.
실제로 등록하는 순서를 기재합니다.
이것으로 AWS IoT에 사물 등록이 완료됩니다.
Armadillo에서 준비
[Armadillo ~]# apt update
[Armadillo ~]# apt install python3
[Armadillo ~]# pip install AWSIoTPythonSDK
[armadillo ~]# mkdir AWSIoT
[armadillo ~]# mkdir AWSIoT/certs
샘플 코드
아래 샘플 코드는 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
가 표시되면 연결에 실패했습니다. 다시 절차를 확인하십시오.
Reference
이 문제에 관하여(Armadillo-IoT G3에서 AWS IoT 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Raclette/items/703a7c238e0722f59532텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)