PCからAWS IoTへ接続する方法〜その2〜

前回の記事でAWSに関する設定を行いました。

PCからAWS IoTへ接続する方法〜その1〜
AWS IoTをサクッと利用する方法を紹介しています。ラズパイなしで利用することができます。この記事は主にAWSの設定について書いています。

今回でAWS IoTへ接続を行ったりしたいと思います。

使用する言語はPythonです。

AWS IoT Device SDK for Pythonのインストール

以下のコマンドを入力し、AWS IoT Device SDK for Pythonをインストールしてください。

pip install AWSIoTPythonSDK

GitHubに詳しい情報が載っています。

aws/aws-iot-device-sdk-python
SDK for connecting to AWS IoT from a device using Python. - aws/aws-iot-device-sdk-python

メッセージの送信

以下のコードでメッセージが送信できます。

from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient

myMQTTClient = AWSIoTMQTTClient('myClientID')
myMQTTClient.configureEndpoint('YOUR.ENDPOINT', 8883) # 設定画面のエンドポイントの値
myMQTTClient.configureCredentials("YOUR/ROOT/CA/PATH", "PRIVATE/KEY/PATH", "CERTIFICATE/PATH")
myMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec

myMQTTClient.connect()
myMQTTClient.publish("myTopic", "myPayload", 0)
myMQTTClient.disconnect()

エンドポイントの入力

こちらの情報は、設定画面にエンドポイントの値があるので入力します。

myMQTTClient.configureEndpoint('YOUR.ENDPOINT', 8883) # 設定画面のエンドポイントの値

証明書の入力

AWSの設定時にダウンロードした証明書のパスをそれぞれ入力します。

myMQTTClient.configureCredentials("YOUR/ROOT/CA/PATH", "PRIVATE/KEY/PATH", "CERTIFICATE/PATH")

テストを行う

IoT Coreに戻り、「テスト」を選択します。
トピックのサブスクリプションに「myTopic」と入力し、「トピックのサブスクライブ」を選択します。

以下の画面が表示されたと思います。

プログラムを実行すると、メッセージが送信されていることが確認できます。

メッセージの受信

以下のコードでメッセージが受信できます。

from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
import time

def customCallback(client, userdata, message):
    print('Received a new message: ')
    print(message.payload)
    print('from topic: ')
    print(message.topic)
    print('--------------\n\n')

myMQTTClient = AWSIoTMQTTClient('myClientID')
myMQTTClient.configureEndpoint('YOUR.ENDPOINT', 8883) # 設定画面のエンドポイントの値
myMQTTClient.configureCredentials("YOUR/ROOT/CA/PATH", "PRIVATE/KEY/PATH", "CERTIFICATE/PATH")
myMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec

myMQTTClient.connect()

while True:
    myMQTTClient.subscribe("myTopic", 1, customCallback)
    time.sleep(1)

テストを行う

プログラムを実行しておきます。

送信時と同様に「テスト」を選択します。
発行の欄に「myTopic」と入力し、「トピックに発行」を選択します。

メッセージが受信できたことを確認できました。

ラズパイがなくても簡単にAWS IoTを触れることができました。

こちらの記事を参考にさせていただいています。

AWS IoTにPythonでMQTTイベントの送信、受信するまで
AWS IoTにPythonでメッセージのやり取りを行ってみます。こちらがとても参考になりました。AWS IoTをPythonで簡単に始めるまで必要最低限の設定AWSコンソールで「IoT Core」の設定画面を表示します。 - を選択し、「モノの登録」をクリックします。「モノ」を登録するウィザードが始まります。「単一の...

コメント

タイトルとURLをコピーしました