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

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

https://lifetime-engineer.com/pc-aws-iot-connection-part1/

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

使用する言語はPythonです。

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

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

pip install AWSIoTPythonSDK

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

https://github.com/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を触れることができました。

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

https://symfoware.blog.fc2.com/blog-entry-2224.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA