// 下階層用テンプレート
#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;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS