Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウドを活用して家電をハックしてみた
Search
KMiura
July 13, 2024
Technology
0
150
クラウドを活用して家電をハックしてみた
2024/07/13 Cloud in the Camp 2024 札幌 Horippa
https://connpass.com/event/315715/
KMiura
July 13, 2024
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
50
Pythonでルンバをハックしてみた
miura55
0
120
あなたの知らないクラフトビールの世界
miura55
0
300
Storage Browser for Amazon S3を触ってみた + α
miura55
0
180
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
180
あのボタンでつながるSORACOM
miura55
0
110
Postman Flowsで作るAPI連携LINE Bot
miura55
0
350
Lambdaと共に歩んだAWS
miura55
3
760
Other Decks in Technology
See All in Technology
Project Referencesを活用した実行環境ごとのtsconfig最適化
itatchi3
1
240
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
850
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
130
プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
3
140
大事なのは、AIの精度だけじゃない!〜1円のズレも許されない経理領域とAI〜
jun_nemoto
9
4.9k
初めてのGoogle Cloud by AWS出身者
harukasakihara
1
720
AIオンボーディングとAIプロセスマイニング
nrryuya
5
1.1k
他チームへ越境したら、生データ提供ソリューションのクエリ費用95%削減へ繋がった話 / Cross-Team Impact: 95% Off Raw Data Query Costs
yamamotoyuta
0
170
RDRA3.0を知ろう
kanzaki
2
380
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.1k
GigaViewerにおけるMackerel APM導入の裏側
7474
0
370
テストを実施する前に考えるべきテストの話 / Thinking About Testing Before You Test
nihonbuson
PRO
12
1.9k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
6
580
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Done Done
chrislema
184
16k
Six Lessons from altMBA
skipperchong
28
3.8k
RailsConf 2023
tenderlove
30
1.1k
The World Runs on Bad Software
bkeepers
PRO
68
11k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Being A Developer After 40
akosma
91
590k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
Transcript
クラウドを活用して家電をハックして みた KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋, Cloudflare
Meetup 名古屋 運営 • 北海道で好きなところ:小樽、支笏湖、 余市蒸留所 @k_miura_io koki.miura05
時は2024年3月
会社辞めました
入社直前に人生初の北海道へ
そして入社
4年ぶりのフルリモート ※画像はイメージです
こいつの出番!
在宅勤務あるある? • 作業に集中してコーヒーの存在を忘れる • せっかく淹れたコーヒーが渋くなる • 良い豆ほど損した気分 ↑2500円のコーヒーメーカーと 4000円のコーヒー豆のツーショット
今回はこれをIoTで解決する話
システム構成
デバイスの通信 • デバイスの通信はすべてSORACOMを駆使したセルラー通信を使用 • 在宅勤務に支障をきたさないようになるべくWifiで接続するデバイスの数は減らしたい • SORACOM Beamを使うことでSORACOMのプラットフォームにデータ転送して暗号 化を行いAWSにPublish •
デバイスの通信量が減る&デバイスにAWSの認証情報を持たなくて済む • 用途:コーヒーメーカーにつけたセンサーデータの送信、信号灯の操作 https://soracom.jp/services/beam/
デバイスの通信その2 • SORACOM Funkを使ってサー バーレスなAPIを実装 • AWS、Azure、GCPのFaaSの実 行権限を与えるだけでエンドポ イントを叩くだけで実現できる •
もちろんSORACOMのSIM・バー チャルSIMのアクセスだけ受け 付けるのでAPI Gatewayに認証 つける必要なし • 用途:QRコードスキャナを使っ たチェックイン https://soracom.jp/services/funk/
センサーデータを送信 してからのロジック • IoT Rulesを使ってデバイス から送信されたセンサー データをそのまま別のサー ビスに転送サービスにでき る •
転送先の中にはStep Functionsも含まれる • トピックのデータがJSON だったときはよしなにJSON に変換してStep Functions に入力される
メインのビジネス ロジック • 待ち時間が長いのでStep FunctionsでLambdaの処 理を分割 • Step Functionsでもできる ような処理はStep
Functionsに逃がすことで 一つのLambdaのコード量 を減らせる • IoTのPublishはLambdaで しかできない…
ハードウェアの全体像
ハードウェア(コーヒーメーカー) • 電流センサーでコーヒーメーカーが通電したことを検知して MQTTでデータを飛ばす • SORACOMのSIMを仕込んでSORACOM Beamを飛ばすこ とでマイコンの消費電力、メモリ使用量を抑えられる • センサー自体はアナログ信号なのでジャックプラグで信号を受
け取ったらADコンバータをかましてマイコンにデータを送信 • センサーの特性上、ノイズが乗りやすいので抵抗を挟むと抑え られる • センサーのドキュメントがなにもない&付属品のジャックが初 期不良で辛かった…
ハードウェア(チェックイン&通知) • チェックインには某T様系企業製のQRコードリー ダーを使用 • 結構古い機種なのによう動く • シリアル通信 • 通知に使用する信号塔はネットワークライトを使用
• HTTP通信で操作できるので結構便利 • ブザーも鳴らせる • 制御にはそれっぽい筐体付きのRaspberry Pi model Bを使用 • 1年前に秋葉原で購入 • 無線モジュールがないのでモデムを使って SORACOMのぷらっとフォームに接続
デモ動画
まとめ • SORACOMはクラウドとの相性バツグンでアプリ屋さんでも手軽にIoT を楽しめる • AWSのサービスを使うことでIoT連携にマッチしたシステムをサーバー レスで構築できる • 課題解決でIoTプロトタイピングしていくのは楽しい
宣伝 https://discovery.soracom.jp/2024/index.html
宣伝2 https://jawspankration2024.jaws-ug.jp/ja/
END