AWS IoTは、ラズパイなどのハードウェアなどからAWSに接続して、AWSの様々なサービスを呼び出すためのプラットフォームです。デバイスの認証認可が行え、証明書を持たないデバイスからの通信は受け付けないとか、その辺がいい感じみたいですね。
topic/sns というTopicにメッセージを送信すると、所定のアドレスにそのメッセージがメールされるようになりました。
ラズパイに 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"}'
SDKをインストールします
sudo pip install AWSIoTPythonSDK
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秒に一回、サーバにメッセージが送信されます*1。
この記事は
現在のアクセス:4087