raspberry_pi:aws_iot
**以前のリビジョンの文書です**
aws チュートリアル
Raspberry Pi の接続
-
-
AWS Iot コンソールにサインインする
done モノを作る
done REST APIエンドポイント ag7srsxum1sn0.iot.us-west-2.amazonaws.com
done 証明書の発行
done ポリシーの作成
done 証明書にポリシーをアタッチ
done 証明書にモノをアタッチ
-
証明書の名前を変更しておく?
ディレクトリに証明書番号
private.pem.key, public.pem.key, certificate.pem.crt, root-CA.crt
done これで、Raspberry Pi は AWS IoT Device SDK for C を使用して AWS IoT に接続されました。
ルールを作成する
-
iot
client.jsが動かない。nodojsが分からないのでエラーの原因が分からん。古そう。
- here pythonでやってみる。
- AWS IOT SDK
- できた!! 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'}
raspberry_pi/aws_iot.1508994069.txt.gz · 最終更新: 2017/10/26 05:01 by fifi