産業用センサーデバイスを統合管理するリアルタイムゲートウェイシステム。 シリアル通信・TCP・シミュレータの複数デバイスを同時に管理し、 データ収集・アラート・MQTT転送・可視化までをワンストップで提供します。
flowchart TB
subgraph DEVICES["🔌 デバイス層"]
direction LR
ARD["🔧 Arduino
Serial Device"]
SIM["🔮 Simulator
仮想デバイス"]
TCP_DEV["🌐 TCP Device
ネットワーク"]
end
subgraph GATEWAY["⚙️ Gateway 層 — FastAPI"]
direction TB
DM["📡 Device Manager
デバイス管理"]
SM["🔌 Serial Manager
シリアル通信"]
TC["🌐 TCP Transport
TCP受信"]
DD["🔍 Auto Detector
自動検出"]
subgraph PROCESSING["データ処理"]
direction LR
BUF["📦 Data Buffer"]
ALM["🔔 Alert Manager"]
WH["🪝 Webhook"]
MET["📊 Metrics"]
end
subgraph SECURITY["セキュリティ"]
direction LR
AUTH["🔒 Auth Middleware"]
RBAC["👥 API Key / RBAC"]
end
API["🌍 REST API
OpenAPI / Swagger"]
WS_SRV["⚡ WebSocket Server"]
DM --> SM
DM --> TC
DD --> DM
SM --> BUF
TC --> BUF
BUF --> ALM
ALM --> WH
BUF --> MET
AUTH --> API
RBAC --> AUTH
end
subgraph DATA["💾 データ層"]
direction LR
SQLITE["🗃️ SQLite
sensor_data.db"]
INFLUX["📈 InfluxDB
時系列DB"]
JSON_STORE["📄 JSON Store
devices.json"]
end
subgraph EXTERNAL["🌐 外部連携"]
direction LR
MQTT["📮 MQTT Broker
メッセージ転送"]
PROM["📊 Prometheus
メトリクス収集"]
GRAF["📈 Grafana
ダッシュボード"]
end
subgraph FRONTEND["🖥️ フロントエンド"]
direction LR
DASH["🌐 Web Dashboard
PWA対応"]
WS_CLI["⚡ WebSocket
リアルタイム通信"]
end
ARD -- "Serial
USB" --> SM
SIM -- "PTY" --> SM
TCP_DEV -- "TCP:6041" --> TC
BUF --> SQLITE
BUF --> INFLUX
DM --> JSON_STORE
DM -- "MQTT Bridge" --> MQTT
MET -- ":6040/metrics" --> PROM
PROM --> GRAF
API -- "HTTP :6040" --> DASH
WS_SRV -- "WS" --> WS_CLI
| 技術 | 用途 | バージョン | |
|---|---|---|---|
| 🐍 | Python | アプリケーション言語 | 3.12 |
| ⚡ | FastAPI | Web フレームワーク(REST API + WebSocket) | 0.115+ |
| 🦄 | Uvicorn | ASGI サーバー | 0.30+ |
| 🔧 | pySerial | シリアルポート通信 | — |
| 🗃️ | SQLite (aiosqlite) | ローカルデータベース | — |
| 📈 | InfluxDB | 時系列データベース | 2.x |
| 📮 | MQTT (aiomqtt) | メッセージブローカー連携 | — |
| 📊 | Prometheus | メトリクス監視 | latest |
| 📉 | Grafana | ダッシュボード・可視化 | latest |
| 🐳 | Docker / Compose | コンテナ化・デプロイ | — |
| 🤖 | Arduino | センサーデバイスファームウェア | — |