RaspberryPi와 AWS IoT Core에서 MQTT 통신을 시도했습니다.
어쨌든 AWS IoT와 RaspberryPi를 MQTT 통신하고 싶습니다. 라는 분에게 작업 내용만을 정리했습니다.
먼저 전체 작업 내용을 설명합니다. 크게 작업은 3개입니다.
1. AWS IoT에 RaspberryPi 등록
- 인증서 취득
- 정책 추가
2. RaspberryPi 프로그램 작성
3. 통신 테스트
이상입니다. 이번에는 AWS IoT 측이 데이터 전송 측입니다. RaspberryPi는 수신자.
AWS IoT에 RaspberryPi 등록
AWS 웹 페이지 ⇨ 콘솔에 로그인 ⇨ 서비스 ⇨ IoTCore
관리 → 사물 → 만들기 갑니다.
단일 사물 등록
물건의 이름을 등록(다른 항목은 자유롭게. 미기입이라도 괜찮습니다)
인증서를 얻습니다.
다운로드(사물 인증서, 공개 키, 개인 키, 루트 CA)
정책 설정
보안 기능 중 하나, 정책을 설정합니다. 정책은 작업이나 AWS의 데이터베이스와 같은 다른 리소스 액세스를 결정하는 것입니다.
아래 사진과 같이 작업 및 리소스를 설정합니다.
인증서 페이지에서 - 정책
연결을 수행하여 위에서 만든 정책을 연결합니다.
RaspberryPi 프로그램을 만듭니다.
MQTT 클라이언트는 paho mqtt을 사용합니다.
RaspberryPi에 들어가서 pip를 사용하여 paho mqtt를 넣습니다.
sudo apt-get install python-pip
pip install paho-mqtt
라즈파이 프로그램입니다.
아래 코드를 작성하십시오. XXXX.~는 각각의 파라미터를 넣어 주세요.
작성 후 scp 모듈 등으로 PC → MQTT로 전송할 수 있습니다. 인증서와 개인 키, 공개 키도 전송합니다. 같은 계층에 넣어.
paho_mqtt_test.py
import paho.mqtt.client
import ssl
import subprocess
import json
endpoint = "XXXX.amazonaws.com"#AWSのエンドポイント
port = 8883#AWSのポート
topic_to_aws ="Raspi3_to"
topic_from_aws = "Raspi3_from"
rootCA = "VeriSign.pem"#ルート証明書
cert = "XXXX-certificate.pem.crt"#デバイス証明書
key = "XXXX-private.pem.key"#keyを設定
def on_connect(client, userdata, flags, respons_code):
print("Connected")
client.subscribe(topic_to_aws)#サブスクライブする
def on_message(client, userdata, msg):
print(msg.topic)
if __name__ == '__main__':
#ここら辺はpahoのリファレンスを参照。
#https://www.eclipse.org/paho/clients/python/docs/#connect-reconnect-disconnect
client = paho.mqtt.client.Client()
client.on_connect = on_connect
client.on_message = on_message
client.tls_set(ca_certs=rootCA, certfile=cert, keyfile=key, cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
client.connect(endpoint, port=port, keepalive=60)
print("StartScript")
client.loop_forever()
통신 테스트
테스트 → 게시 주제 이름을 입력하고 "주제에 게시"를 클릭하십시오.
성공하면 RaspberryPi의 콘솔에 (소스 코드) on_message 문자열 출력된다.
이상
Reference
이 문제에 관하여(RaspberryPi와 AWS IoT Core에서 MQTT 통신을 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pega/items/93ee469103b920477f72
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(RaspberryPi와 AWS IoT Core에서 MQTT 통신을 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pega/items/93ee469103b920477f72텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)