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
SwitchBot温湿度計のデータ取得を Web Bluetooth API でやろうとしたら...
Search
you(@youtoy)
PRO
June 15, 2021
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwitchBot温湿度計のデータ取得を Web Bluetooth API でやろうとしたら思ったより苦労した話 / IoTLT vol.76
you(@youtoy)
PRO
June 15, 2021
More Decks by you(@youtoy)
See All by you(@youtoy)
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
280
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
240
AI時代だけど、わりと力業で追いかけている技術情報収集の話 / 20260518
you
PRO
0
21
最近の技術系の話題で気になったもの色々(IoT系以外も) / IoTLT 花見予定会(たぶんBBQ) @都立潮風公園バーベキュー広場
you
PRO
1
390
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
490
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
320
Deno・Bunの標準機能やElysiaJSを使ったWebSocketサーバー実装 / ラーメン屋を貸し切ってLT会! IoTLT 2026新年会
you
PRO
0
370
M5Stack Chain DualKey を UIFlow 2.0 + USB接続で試す / ビジュアルプログラミングIoTLT vol.22
you
PRO
2
230
Other Decks in Technology
See All in Technology
“それは自分の仕事じゃない"を越えて行け
yuukiyo
0
210
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
100
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
270
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
1
360
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
380
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
310
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
0
120
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
290
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
410
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Designing for humans not robots
tammielis
254
26k
Balancing Empowerment & Direction
lara
6
1.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
280
Become a Pro
speakerdeck
PRO
31
6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
300
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The Spectacular Lies of Maps
axbom
PRO
1
850
GitHub's CSS Performance
jonrohan
1033
470k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Transcript
SwitchBot温湿度計のデータ取得を Web Bluetooth API でやろうとしたら 思ったより苦労した話 2021年6月15日 (火) IoT縛りの勉強会! IoTLT
vol.76 @オンライン 豊田 陽介 ( @youtoy )
豊田陽介(@youtoy) 自己紹介 普段は、某通信会社の研究所勤務 自宅にたくさん ビジュアルプログラミングIoTLT 共同主催、その他にも複数主催 ガジェット好き その他 IT系イベント主催、登壇や運営なども 子ども向けの活動いろいろ(IT系以外も)
プライベートでの活動
いきなり余談からw ⇒ 紹介したいJavaScriptネタ (Google I/O 2021絡み)
【余談1】MediaPipeで人物と背景の分離 これまでブラウザ上での「両手の認識」 や「両手+顔+体の認識」に使っていた JavaScript版 MediaPipe。 「MediaPipe Selfie Segmentation (人物と背景の分離)」という機能 が増えた!
バーチャル背景的なこともできるし、 自分と背景の間へのオブジェクト描画や 背景のみ・人物のみへのエフェクトも!
【余談2】TFJS Task API モバイル向けの TensorFlow Lite のモデルを JavaScript で使える 30行未満の
HTML+JavaScript でカスタムモデルを使った画像分類 ができてしまった!(機械学習処理はそのごくごく一部) API を使うための読み込み 1行 カスタムモデルの読み込みと推論
余談に関する関連リンク MediaPipe Selfie Segmentation のデモ動画の URL 記事1: TensorFlow Lite の
モデルを Web で扱えるという 話についてのざっくりなメモ 記事2: 30行未満の HTML+ JavaScript でカスタムモデル を使った画像分類を試す (TFJS Task API を利用)
本題に戻ります
本日の主役 SwitchBot温湿度計
Web Bluetooth API で 温湿度を取得しようとして 温度 25.1℃ 湿度 56%
いろいろ想定と違った... サクッとできると 思ってたのに...
背景などを少し補足 ・SwitchBot温湿度計を持っていた ・BLE で温湿度のデータを取得した方の事例多数 (Python、Node.js、Go など) ⇒ Web Bluetooth API
の例はないかも? ・サクッと終わると思ってた 「Web Bluetooth API はよく使ってたし、 今までと同じ感じでやれば大丈夫だろう」 危険信号だった のかも?
障壁がいろいろ...
Web Bluetooth API を使ってた話 ・ブラウザから BLE 対応デバイスとやりとりするもの ・toio・M5Stack・micro:bit 等の制御で使ってた 手の動きに連動した
6台の toio の同時制御 toio の姿勢角 (ロール・ピッチ・ ヨー)のグラフ化 M5Stack Core2 へ 文字送信・表示、 画面の色変更
これまでと同じやり方 で値がとれてない!?
想定と大きく違った... これまでと同じやり方 navigator.bluetooth.requestDevice 別のやり方が必要 navigator.bluetooth.requestLEScan chrome://flags/#enable- experimental-web-platform- features を Enable
に
これで勝てる! 違う処理を使えば よかったのか
自分の環境のせいかもしれないけれど Mac:スキャン結果にデバイスが出ない... Windows:スキャン結果は出た! でもめっちゃ不安定... 環境変更
残る候補はAndroidのみ Safariは 未対応だし... 発表後、 ラズパイもある? と思ったので追記 (試せてはないけど)
安定してそう! Androidで進めよう!
AndroidとPCを連動 させて楽にやりたい はるか昔に試したような...
AndroidからPCにlocalhostでアクセス PC から Android が見える 【PC側の Chromで】 chrome://inspect/#devices 【PC側の Chromで】
ポートフォワーディング https か localhost なら動く API を証明書なしに localhost で
PCでAndroidのChromeのコンソール表示 PC の Chrome側で操作をして PC の Chrome側の表示で Android の Chrome
の画面 Android の Chrome の 開発者ツールの画面 PC からデバッグ
仕様にそってバイナリデータから値を取得 取得できたバイナリデータに ビット演算をしたりなど
ようやく成功! できた!!
知見はいろいろ得られた!
詳細はQiitaの記事に この他にも 2つ
登壇後の追加分 これまでよく使ってるやり方 navigator.bluetooth.requestDevice 今回試したもの navigator.bluetooth.requestLEScan 安定版でデフォルトで 使えて、各種BLE対応 ガジェットを制御する のに良い感じ! Chrome
のベータ等でも 実験的機能っぽいので 時期尚早なだけ、という 感じかな... 手軽に使える Web Bluetooth API 楽しいです!
終わり!