// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 #contents AWS IoTは、ラズパイなどのハードウェアなどからAWSに接続して、AWSの様々なサービスを呼び出すためのプラットフォームです。デバイスの認証認可が行え、証明書を持たないデバイスからの通信は受け付けないとか、その辺がいい感じみたいですね。 *** AWS IoT の設定追加 [#c50493bc] -[[AWS IoTとRaspberry PiではじめるIoT超入門 (1/4):CodeZine(コードジン)>http://codezine.jp/article/detail/9530]] この記事をひたすらトレース。。とても参考になりました。。 ここまでで、topic/sns というTopicにメッセージを送信すると、所定のアドレスにそのメッセージがメールされるようになりました。 *** Mosquitto Clientsのインストール [#re82a64b] ラズパイに MQTT をしゃべらせるためのライブラリを入れます。 sudo apt-get install mosquitto-clients これでインストールは完了なんですが、どうも疎通確認をしたところバージョンが古くてダメらしく、、 [[Installing MQTT Broker(Mosquitto) on Raspberry Pi>http://www.instructables.com/id/Installing-MQTT-BrokerMosquitto-on-Raspberry-Pi/]] を参考にしながら最新版に差し替えました。 *** 証明書の配置 [#ue133270] さて、IoTの設定画面から - xxxx-certificate.pem.crt - xxxxx-private.pem.key をダウンロードしてカレントディレクトリに配置しておきます。また [[Getting Started with AWS IoT on Raspberry Pi and the AWS IoT Device SDK for JavaScript - AWS IoT>http://docs.aws.amazon.com/iot/latest/developerguide/iot-device-sdk-node.html]] のDownload a root CA certificate from here から、CAの証明書をダウンロードして rootCA.pem として配置しておきます。 ***疎通 [#x59fc681] さいごに下記のコマンドで、メールが送られてくれば成功です。 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から呼び出し [#u0c85ff4] SDKをインストールします sudo pip install AWSIoTPythonSDK つぎにGithubから -[[SDKs | The Internet of Things on AWS – Official Blog>https://aws.amazon.com/jp/blogs/iot/category/aws-iot/sdks/]] を見ながらサンプルなどをインストール。 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>https://github.com/aws/aws-iot-device-sdk-python/issues/23]] によると、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の秒数は替えて実行したほうがよいですのでご注意を。 **関連リンク [#tbed3c0d] -[[Installing MQTT Broker(Mosquitto) on Raspberry Pi>http://www.instructables.com/id/Installing-MQTT-BrokerMosquitto-on-Raspberry-Pi/]] デフォルトのMosquittoではうまく動かなかったので、最新版に差し替える件 -[[AWS IoT Device SDK for PythonをRaspberryPiで動かす - Qiita>http://qiita.com/YamauchiHideki/items/13e1e6a28d4b71f7d159]] Python版のIoT SDKを説明 -[[SDKs | The Internet of Things on AWS – Official Blog>https://aws.amazon.com/jp/blogs/iot/category/aws-iot/sdks/]] Python版SDKの公式Web - https://github.com/aws/aws-iot-device-sdk-python/issues/23 Python3でSDKを使う場合はさらにこれ。 -[[AWS IoTとRaspberry PiではじめるIoT超入門 (1/4):CodeZine(コードジン)>http://codezine.jp/article/detail/9530]] 設定が詳しく書いてある -[[AWS IoTを使って、 Intel Edisonで取得した光センサデータがしきい値を下回った際にメール通知する。 - Qiita>http://qiita.com/akinchu/items/ff6ceea076785d84bf31]] JavaScript SDKや、先のデフォのMosquittoのバージョンじゃダメな件が書いてある ---- この記事は #vote(おもしろかった[0],そうでもない[1]) #vote(おもしろかった[0],そうでもない[2]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}