この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新リビジョン 両方とも次のリビジョン | ||
raspberry_pi:aws_iot [2017/10/22 03:44] fifi |
raspberry_pi:aws_iot [2017/10/26 05:02] fifi |
||
---|---|---|---|
ライン 31: | ライン 31: | ||
- [AWS IOT SDK](https://aws.amazon.com/jp/iot/sdk/) | - [AWS IOT SDK](https://aws.amazon.com/jp/iot/sdk/) | ||
- できた!! requre('sys')を消すことでうごいた! | - できた!! requre('sys')を消すことでうごいた! | ||
- | - | + | - __失敗__ DynamoDBの使い方が分からない。基本からチュートリアルをしないとだめ。一旦中断 |
- | - | + | |
+ | ## 成功方法 | ||
+ | |||
+ | - モノを作成 | ||
+ | 名前:raspi_41_1 | ||
+ | ルールを作成 | ||
+ | 名前:raspiRule_41_1 | ||
+ | メッセージのリソース | ||
+ | 属性:*, トピックフィルター:topic/sns, 条件:空欄 | ||
+ | [アクションの追加]クリック | ||
+ | 「SNSプッシュ通知としてメッセージを送信する」を選択 | ||
+ | SNSターゲット:iot-sns_test (作成する) | ||
+ | 次のページ | ||
+ | メッセージ形式:初期値のまま(JSONにした方が良かった?) | ||
+ | IAMロール名:[新しいロールの作成]クリック | ||
+ | [新しいロールの作成]クリック | ||
+ | IAMロール名:aws_iot_sns_test | ||
+ | [新しいロールの作成]クリック | ||
+ | [ルールを作成する]クリック | ||
+ | |||
+ | SNSトピックの作成 | ||
+ | SNSターゲットで[新しいリソースを作成する]クリック | ||
+ | [Create new topic]クリック | ||
+ | Topic name:iot-sns_test | ||
+ | [Create Topic]クリック | ||
+ | リストから iot-sns_test を選択 | ||
+ | [Create subscription]クリック | ||
+ | Topic ARN:初期値のまま | ||
+ | Protocol:Email | ||
+ | Endpoint:(送信先のメールアドレス) | ||
+ | [Create subscription]クリック | ||
+ | 受信したメールの Confirm Subscription をクリック | ||
+ | ポリシーの作成 | ||
+ | 名前:raspiPolicy | ||
+ | アクション:iot:* | ||
+ | リソースARN:* | ||
+ | 許可:ON | ||
+ | [作成]クリック | ||
+ | |||
+ | |||
+ | |||
+ | 証明書の作成 | ||
+ | 1-Click証明書作成の[証明書の作成]クリック | ||
+ | 生成された「このモノの証明書」「プライベートキー」をダウンロード | ||
+ | ルートCA証明書もダウンロード (名前を rootCA.pem にした) | ||
+ | [ポリシーのアタッチ]クリック | ||
+ | raspiPolicyを選択して[完了]クリック | ||
+ | 左のメニュー セキュリティ/証明書 から証明書を選択 | ||
+ | アクション - モノをアタッチする で raspi_41_1 をアタッチ | ||
+ | アクション - 有効化 | ||
+ | |||
+ | |||
+ | Raspberry Pi 3 からデータ送信 | ||
+ | Mosquittoクライアントを使用 | ||
+ | sudo apt-get install -y mosquitto-clients | ||
+ | 5分毎に気温、気圧、湿度を取得して送信 | ||
+ | |||
+ | |||
+ | import time | ||
+ | from subprocess import check_call | ||
+ | from sense_hat import SenseHat | ||
+ | sense = SenseHat() | ||
+ | |||
+ | while True: | ||
+ | t = round(sense.get_temperature(), 1) | ||
+ | p = round(sense.get_pressure(), 1) | ||
+ | h = round(sense.get_humidity(), 1) | ||
+ | |||
+ | msg = "{'message':" + "'Temperature:%s, Pressure:%s, Humidity:%s'" % (t,p,h) + "}" | ||
+ | |||
+ | check_call(["mosquitto_pub", "--cafile", "rootCA.pem", "--cert", "4f2df38695-certificate.pem.crt", "--key", "4f2df38695-private.pem.key", | ||
+ | "-h", "ajm28n1yz8oj0.iot.ap-northeast-1.amazonaws.com", "-p", "8883", "-q", "1", "-d", "-t", "topic/sns", "-m", msg]) | ||
+ | |||
+ | sense.show_message(msg, scroll_speed=0.05) | ||
+ | sense.clear() | ||
+ | |||
+ | time.sleep(300) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | -> 登録したメールアドレスにメールが送られてきた! | ||
+ | {'message':'Temperature:35.3, Pressure:1016.9, Humidity:46.6'} | ||