Top / Raspberry Pi / AWS IoT
AWS IoTは、ラズパイなどのハードウェアなどからAWSに接続して、AWSの様々なサービスを呼び出すためのプラットフォームです。デバイスの認証認可が行え、証明書を持たないデバイスからの通信は受け付けないとか、その辺がいい感じみたいですね。 AWS IoT の設定追加 †
ここまでで、topic/sns というTopicにメッセージを送信すると、所定のアドレスにそのメッセージがメールされるようになりました。 Mosquitto Clientsのインストール †ラズパイに MQTT をしゃべらせるためのライブラリを入れます。 sudo apt-get install mosquitto-clients これでインストールは完了なんですが、どうも疎通確認をしたところバージョンが古くてダメらしく、、 Installing MQTT Broker(Mosquitto) on Raspberry Pi を参考にしながら最新版に差し替えました。 証明書の配置 †さて、IoTの設定画面から
をダウンロードしてカレントディレクトリに配置しておきます。また Getting Started with AWS IoT on Raspberry Pi and the AWS IoT Device SDK for JavaScript - AWS IoT のDownload a root CA certificate from here から、CAの証明書をダウンロードして rootCA.pem として配置しておきます。 疎通 †さいごに下記のコマンドで、メールが送られてくれば成功です。 mosquitto_pub --cafile rootCA.pem --cert xxxx-certificate.pem.crt --key xxxxx-private.pem.key -h xxxxxx.iot.ap-northeast-1.amazonaws.com -p 8883 -q 1 -d -t topic/sns -m '{"foo":"bar"}' Pythonから呼び出し †SDKをインストールします sudo pip install AWSIoTPythonSDK つぎにGithubから
git clone https://github.com/aws/aws-iot-device-sdk-python.git cd aws-iot-device-sdk-python python setup.py install ← もしくは sudo python3 setup.py install とか。 これでサンプルを疎通しようとしたのですが、具体的には cd samples/basicPubSub/ sudo python3 basicPubSub.py ........ としようとしたところエラー。どうもpython3から実行するには、ImportError with Python 3 によると、basicPubSub?.py をすこしいじる必要があるっぽい。サイトの通りに変更したところ正しく動くようになりました。 さて実行したサンプルは以下の通り: sudo python3 basicPubSub.py -e xxxxxx.iot.ap-northeast-1.amazonaws.com -r /home/pi/aws-iot/rootCA.pem -c /home/pi/aws-iot/xxx-certificate.pem.crt -k /home/pi/aws-iot/xxxxx-private.pem.key このサンプルは初期の状態では1秒に一回、Topicにメッセージを投げるようになっています。サンプルはTopic名が上記の topic/sns とは別なのでそれを変更すると、1秒に一回の頻度でバンバンメールを飛ばして来ちゃいます。loopの秒数は替えて実行したほうがよいですのでご注意を。 関連リンク †
この記事は Top / Raspberry Pi / AWS IoT
現在のアクセス:3958 |