Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS IoT CoreとRaspberry Piに触れてみた
Search
alchemy1115
October 22, 2024
0
230
AWS IoT CoreとRaspberry Piに触れてみた
alchemy1115
October 22, 2024
Tweet
Share
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Fireside Chat
paigeccino
34
3.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building Adaptive Systems
keathley
38
2.3k
A Philosophy of Restraint
colly
203
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
KATA
mclloyd
29
14k
The Language of Interfaces
destraynor
154
24k
A designer walks into a library…
pauljervisheath
204
24k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
AWS IoT Coreと Raspberry Piに触れてみた JAWS-UG東京 ランチタイムLT会#16 2024/10/22 KDDI株式会社 原⽥涼太郎
⾃⼰紹介 • KDDI株式会社 コア技術統括本部 IoT技術本部 IoT技術部 • 2024 Japan AWS
All Certifications Engineer • DEA/AIF取得済み • MLA勉強中 • LT初登壇 • 好きなAWSサービス︓AWS Certificate Manager(ACM)、Amazon ECS
背景 • IoT関連部⾨に所属しているにも関わらず、IoTのことをよく知らない • AWS認定試験であまり出ないサービスを勉強したい • ⼩型コンピュータのRaspberry Piに興味があった • テレワーク中、ついつい換気を忘れてしまう
→部屋のCO2濃度を測定し、閾値を超えたら通知する仕組みを作りたい
⽤意したモノ • Raspberry Pi Zero 2 W • 安価で⼩型かつ無線LAN接続可能 •
CO2センサーモジュール「MH-Z19C」 • Pythonライブラリ有り • ラズパイとセンサーを接続するジャンパーワイヤ • AWSアカウント
構成図 AWS Cloud 自宅 Raspberry Pi AWS IoT Core Amazon
CloudWatch Amazon Simple Notification Service (Amazon SNS) Email notification CO2センサーモジュール センサー値送信 集計 閾値超過 AWS IoT Device SDK for Python
AWS IoT Coreとは • IoTデバイスをAWSサービスや他のデバイスとの接続を可能とするマネージドサービス • AWS IoT デバイス SDKを使うことでMQTT(Message
Queueing Telemetry Transport)や HTTPSなどのプロトコルでデータを送信できる • デバイスとAWS IoT Core間で認証されたデータのみが送信される
AWS IoT Coreとは • デバイスゲートウェイ︓ デバイスデータの送信先 • 認証サービス︓ デバイス接続に利⽤する証明書管理 •
メッセージブローカー︓ pub/subモデルのメッセージ送受信 • ルールエンジン︓ メッセージブローカーのメッセージをフィルタ、 各種AWSサービスと連携 https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-IoT-Core-Message_1001_v1.pdf IoT Coreのアーキテクチャ
• IoT Coreの設定 • 管理>モノ>モノを作成>1つのモノを作成 • 設定はデフォルト • 証明書も同時に作成 AWS
IoT Coreの設定
• センサーデータの送信先ドメイン(エンドポイント)を作成 AWS IoT Coreの設定
• IoT Coreに送信されたデータをCloudWatch Logsに送信するように設定 AWS IoT Coreの設定
OSのインストール • 最新のRaspberry Pi OSをmicroSDに書き込み • SSH接続もできるように設定しておく • Wi-Fiの接続設定も書き込み可能
• 配線後、センサー値を読み取れるようにシリアル通信を有効化する • raspi-configコマンドを利⽤ • 必要なモジュール(mh-z19、AWSIoTPythonSDK)をインストール Raspberry Piの設定
プログラムの作成 • AWS IoT Device SDK for Pythonを利⽤し、アプリケーションを作成 (https://github.com/aws/aws-iot-device-sdk-python) mh_z19.read()で
CO2濃度の値を取得 publishでデータを送信 10秒間隔で送信
プログラムの実⾏ • ラズパイ上でプログラムを実⾏ python3 basicPubSub.py. --endpoint xxxxxxxxxxxxxx.iot.ap-northeast-1.amazonaws.com --rootCA cert/AmazonRootCA1.pem --cert
cert/xxxxxxxxxxxxxx-certificate.pem.crt --key cert/xxxxxxxxxxxxxx-private.pem.key endpoint: IoT Core設定時に作成したドメイン(エンドポイント) rootCA: モノ作成時に発⾏されたルートCA証明書 cert: モノ作成時に発⾏されたデバイス証明書 key: モノ作成時に発⾏されたプライベートキー
• CloudWatch上で数値を確認 • IoT Core→CloudWatchはあくまでLogとして残る CloudWatch Logsの確認
メトリクスフィルターの利⽤ • メトリクスフィルターを利⽤し、メトリクスとしてみれるようにする センサーの仕様で計測できる濃度の下限値が 400 ppmのためデフォルト値を400に
アラームの設定 • 10秒間隔で6連続(=1分間) CO2濃度が1000ppmを超えたらアラームを出すように
SNSとメール通知の設定 • アラームをトリガーにSNS経由でメールを出すように設定
メトリクスとメール内容 アラーム発生 & 換気開始
余談 • スマホアプリからもみれる
まとめ • 想像よりも簡単にIoT Coreにデータを送信できた • SDKの存在が⼤きい • メトリクスフィルターを活⽤したログデータのメトリクス化 • これから寒くなりますが、適度に換気をしましょう︕