さくらVPS上のRailsアプリのREST APIでデータを溜めてみていたが、AWS IoTを試してみたく設定をしてみる。
Raspberri Pi2 BからAWS IoTへ接続まで。
-
Raspberry PiからAWS IoTへ接続するSDKをダウンロードするが、
この画面のHTTPSエンドポイントもコピーしておく。
今回はLINUX/OSX -> Pythonを選択。Python 2.7+ or Python 3.3+に対応している。
使い方はこちらが参考になった。
https://github.com/aws/aws-iot-device-sdk-python
-
3.でダウンロードしたキーと4.でダウンロードしたSDKをRaspbery PiへSCPやFTPソフトでアップロード。
-
AWS IoT root CAは鍵と同じディレクトリに準備する。
curl https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem -o rootCA.pem
7.Raspberry Piへターミナルでログインし、SDKをインストール。
$ pip install AWSIoTPythonSDK
8.サンプルプログラムで接続の確認。
$ python basicPubSub.py -e <endpoint> -r <rootCAFilePath> -c <certFilePath> -k <privateKeyFilePath>
鍵ファイルはフルパスで記載。
2016-12-23 18:40:01,310 - AWSIoTPythonSDK.core.protocol.mqttCore - DEBUG - Publish request 2 succeeded.
Received a new message:
New Message 0
from topic:
sdk/test/Python
--------------
2016-12-23 18:40:02,315 - AWSIoTPythonSDK.core.protocol.mqttCore - DEBUG - Try to put a publish request 3 in the TCP stack.
2016-12-23 18:40:02,317 - AWSIoTPythonSDK.core.protocol.mqttCore - DEBUG - Publish request 3 succeeded.
Received a new message:
New Message 1
from topic:
sdk/test/Python
--------------
接続できた。
9.ダッシュボードでも確認できます。
前回のPythonプログラムを作り変えつつ、
LambdaでDBへ繋ぐなど全体の設計を見直してみる。