Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウドを活用して家電をハックしてみた
Search
KMiura
July 13, 2024
Technology
0
170
クラウドを活用して家電をハックしてみた
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
1.1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
95
Pythonでルンバをハックしてみた
miura55
0
180
あなたの知らないクラフトビールの世界
miura55
0
370
Storage Browser for Amazon S3を触ってみた + α
miura55
0
230
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
230
あのボタンでつながるSORACOM
miura55
0
150
Postman Flowsで作るAPI連携LINE Bot
miura55
0
390
Lambdaと共に歩んだAWS
miura55
3
870
Other Decks in Technology
See All in Technology
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
380
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
250
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
270
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.4k
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
110
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
10
420
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
5分で知るMicrosoft Ignite
taiponrock
PRO
0
390
品質のための共通認識
kakehashi
PRO
4
360
.NET 10の概要
tomokusaba
0
120
regrowth_tokyo_2025_securityagent
hiashisan
0
250
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building Applications with DynamoDB
mza
96
6.8k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Speed Design
sergeychernyshev
33
1.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Six Lessons from altMBA
skipperchong
29
4.1k
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