見出し画像

ESP32のセンサデータを Next.js + Web Serial でリアルタイム表示した話|Claude Codeで作る"ブラウザ計器盤"

ESP32のセンサ値を、サーバを立てずにブラウザで直接読みたい。“Web Serial API”とNext.jsで“ブラウザ計器盤”を作ったら、旧来のWebSocket方式より身軽だった話です。

Arduino IDE のシリアルモニタは数字が流れるだけで見づらい。

そこで僕は、ブラウザで動くリアルタイムの計器盤を、Next.js と Web Serial API で作った(開発は Claude Code)。滑空機のテレメトリ(別記事)も、これで可視化している。この記事は、その構成と、これから作る人がハマりやすい点を忖度なしでまとめたものだ。


何を作ったか:ブラウザで見るリアルタイム計器盤

ESP32 を USB でPCに挿し、ブラウザのWebアプリ(Next.js)から Web Serial API で直接シリアル接続して、送られてくるセンサ値をグラフや数値でリアルタイムに表示する"計器盤"を作った。専用アプリを入れなくても、ブラウザを開くだけでデータが見える。

なぜ Web(Next.js + Web Serial)なのか

  • インストール不要:URLを開くだけで動く。人に見せる・配るのもラク。

  • UIを自由に作れる:React の資産(グラフ・レイアウト)がそのまま使えるので、既製のGUIツールより見た目を作り込める。

  • Web Serial API は、ブラウザから直接USBシリアルにつなげる仕組み。マイコンと Web の距離が一気に縮まる。

Claude Code で一気に作った

正直、Web Serial のつなぎ込みや React の UI をゼロから書くのは手間だ。ここは Claude Code に任せて、「シリアルから来たデータをパースしてグラフに流す」までを一気に実装した。ハードの実験に集中したい学生にとって、こういう"周辺のコード"をAIに任せられるのは本当に大きい。

つまずき/これから作る人へ

  • 対応ブラウザ:Web Serial は Chrome / Edge 系のみ(Safari は不可)。

  • セキュアコンテキスト必須:`localhost` か HTTPS でしか動かない。

  • 接続はユーザー操作から:ボタンのクリックなどをきっかけにポートを開く必要がある。

  • ESP32 側のボーレートと送信フォーマット(CSV や JSON)を先に決めておくと、受信側のパースがラクになる。

まとめ

ESP32 のデータは、Next.js + Web Serial でブラウザの計器盤にすると一気に見やすくなる。インストール不要で、UIも自由。そして Claude Code を使えば、周辺コードは驚くほど速く用意できる。ハードと Web の両方をやる人には、相性抜群の組み合わせだ。


買い物リスト(今回使っているもの)

▼ ESP32 開発ボード(純正 Espressif ESP32-DevKitC)

WiFi/Bluetooth内蔵で安く、USBで挿せば Web Serial からすぐ繋がる。計器盤づくりの相棒に。


関連記事

▼ 開発デスクの道具・作例を全部まとめています

ESP32で滑空機を飛ばした話(テレメトリの中身) → ESP32 自動制御滑空機

開発を任せているAIツールの使い分け → AI開発ツール(Claude Code ほか)


※本記事は実際に取り組んだ上での個人の記録・感想です。仕様や手順は環境により異なります。
※Amazonのアソシエイトとして、つくる人のデスクは適格販売により収入を得ています。

いいなと思ったら応援しよう!

つくる人のデスク ここまで読んでくれてありがとうございます。もし役に立ったら、次の実機購入・検証の燃料として応援いただけると嬉しいです ☕🔧