「C# だけで、Raspberry Pi にセンサーの値を表示する Web ダッシュボードを作りたい」——本連載は、その完成形まで1つのアプリを通しで育てるシリーズです。第1回は全体像として、なぜ Pi × Blazor なのか/どの構成を選ぶか/何が必要かを整理します。
Table of contents
Open Table of contents
この連載で作るもの
作るのは 温度モニタリング・ダッシュボード 1つです。空のプロジェクトから始め、同じアプリに機能を積み上げます。

連載で使うRaspberry Pi実機。ブレッドボード上のLED・ボタン・MCP3208を接続して、センサー値の取得と操作を試します。
- LED とボタンを Web から操作(GPIO入門)
- アナログ温度センサー(LM35DZ) の値を MCP3208(ADC) 経由で読む
- 温度を リアルタイムのライブグラフで表示(SignalR)
- 履歴を SQLite に蓄積して時系列で振り返る
- MQTT で他デバイスの値も集約
- 常時稼働・自動デプロイ・安全な外部公開まで

取得した温度は、Blazorのダッシュボードでライブグラフとして確認します。第5回でSignalRを使ったリアルタイム更新を実装します。
なぜ Raspberry Pi × Blazor(C#)なのか
- 言語がC#で完結:UI(Blazor)もハード制御(.NET IoT)も同じC#。WinForms/WPF/WinUIで培った資産が活きます
- Piがそのままサーバーになる:小さな常時稼働マシンとして、家庭内のどこからでもブラウザでアクセスできる
- .NETのIoTライブラリが充実:
System.Device.GpioとIot.Device.Bindingsで、GPIO・I2C・SPI・PWM をC#から扱えます
Blazor Server か WASM か(Piでは Server)
Blazor には主に Server と WebAssembly(WASM) の実行モデルがあります。本連載は Blazor Server(Blazor Web App の Interactive Server)を選びます。
| Blazor Server | Blazor WASM | |
|---|---|---|
| 実行場所 | サーバー(=Pi本体) | 各利用者のブラウザ |
| ハードへのアクセス | できる(サーバー側でGPIO/センサー) | できない(ブラウザ内で隔離) |
| Piでの向き | ◎ | △ |
ポイントは、GPIOやセンサーを触れるのはサーバー側のコードだけということ。Piがサーバーになる Blazor Server なら、System.Device.Gpio でハードを操作し、その結果を画面へリアルタイムに流せます。WASM はブラウザ内で動くため、Piのハードには直接触れません。「ハードを扱うIoTダッシュボード」では Server が自然な選択です。
必要なもの
本体・環境
- Raspberry Pi 3 / 4 / 5(または Zero 2 W)
- ⚠️ Pi Zero(無印)や Pi 1 は ARMv6 のため .NET 非対応。ARMv7以降が必要です
- Raspberry Pi OS(64bit):デスクトップ不要なら Lite でOK
- .NET(本連載の版は各回で明記)
部品(この連載で使うもの)
| 部品 | 役割 | 登場回 |
|---|---|---|
| LED + 抵抗 | Lチカ・警告灯 | 第3回・第7回 |
| 押しボタン + 抵抗 | 入力(プルダウン) | 第3回 |
| MCP3208(12bit SPI ADC) | アナログ→デジタル変換 | 第4回 |
| LM35DZ(アナログ温度センサー) | 温度取得(MCP3208経由) | 第4回 |
Raspberry Pi にはアナログ入力がありません。そのため、アナログ出力の LM35DZ を読むには MCP3208 のような ADC(アナログ-デジタル変換IC)が必須です。この「なぜADCが要るのか」は第4回で詳しく扱います。
全10回のロードマップ
- 全体像・Server/WASMの選び方(本記事)
- .NET導入+最初のBlazorアプリ(Pi OS・
dotnet new blazor・LAN内アクセス) - GPIO入門:LチカとボタンをWebから操作
- MCP3208+LM35DZでアナログ温度を読む
- SignalRで温度をライブグラフ表示
- SQLite+EF Coreで温度ログを蓄積→時系列グラフ
- MQTT連携でIoTダッシュボード
- systemdで常駐化(24時間稼働)
- GitHub Actions → Piへ自動デプロイ
- 安全に外部公開&運用(HTTPS・Cloudflare Tunnel)
各回はこの記事を起点にリンクしていきます(公開ごとに追記)。
まとめ
- 本連載は C#(Blazor Server)でRaspberry Piに温度モニタリング・ダッシュボードを作る通し企画
- Blazor Server を選ぶ理由は「サーバー=Pi本体でハードを直接扱えるから」
- 必要なのは ARMv7以降のPi(3以降推奨)+ Pi OS 64bit + .NET、そして手持ちの LED・ボタン・MCP3208・LM35DZ
- Piにアナログ入力は無いため、温度は MCP3208(ADC)経由で読むのが肝
次回(第2回)は、Raspberry Pi に .NET を入れて、最初の Blazor アプリを起動し、同じLAN内の別PCから表示するところまで進めます。
