Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS IoT CoreとRaspberry Piに触れてみた
Search
Ryotaro Harada
October 22, 2024
450
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS IoT CoreとRaspberry Piに触れてみた
Ryotaro Harada
October 22, 2024
More Decks by Ryotaro Harada
See All by Ryotaro Harada
あるけみー式LTスライド作成術
alchemy1115
2
220
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
1
650
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
480
30代、何を"諦める"か
alchemy1115
1
790
ADOTで始めるサーバレスアーキテクチャのオブザーバビリティ
alchemy1115
3
350
AgentCore RuntimeをVPCにデプロイして 開発ドキュメント作成AIエージェントを作った
alchemy1115
5
1.3k
バズる!アウトプット
alchemy1115
1
620
社外コミュニティと「学び」を考える
alchemy1115
2
250
雑に疎通確認だけしたい...せや!CloudShell使ったろ!
alchemy1115
0
1k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Become a Pro
speakerdeck
PRO
31
6.3k
Paper Plane
katiecoart
PRO
4
53k
Google's AI Overviews - The New Search
badams
0
1.6k
Un-Boring Meetings
codingconduct
0
420
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Making the Leap to Tech Lead
cromwellryan
135
10k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
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の存在が⼤きい • メトリクスフィルターを活⽤したログデータのメトリクス化 • これから寒くなりますが、適度に換気をしましょう︕