このプロジェクトについて
SIMUT(Sistema Integrado de Monitoramento Universal e Telemetria)は、最大16個のセンサーで温度・湿度・気圧を監視し、ネットワークの有無にかかわらず動作するRaspberry Pi Pico W向けIoTファームウェアです。1つのソースツリーから3つの公開デバイスをビルドします。タッチパネルモニター(320×240 TFT)、キャラクタLCDモニター(16×2、alpha)、測定間に休止するバッテリーロガー(Air、experimental)です。
これらは1つのコアを共有します。オンデバイスのバイナリ履歴とチャネルごとのアラーム、13個の権限ビットを持つ32のユーザーアカウント、組み込みWebインターフェース、HTTP(S)またはMQTT(S)経由のテレメトリ(アラーム用の別回線付き)、Home Assistant MQTT Discovery、Prometheus /metricsエンドポイント、リモートsyslog(RFC 5424)、OTA更新、シリアルコンソールです。
プロジェクト状況:現行リリースv2.8.0(2026-09-30)。SIMUTはv2.7.0でベータを卒業しました。測定結果は、8.18時間の連続稼働で再起動0回、6回中6回のOTA更新で損失なしです。v2.8.0では、更新が途中で切断されても設定を保持し、カスタムテレメトリ形式がサーバーの期待するContent-Typeを送信できるようにしました。公開イメージ:3つのイメージをそれぞれ.uf2と.binで提供:release(TFTタッチパネル)、alpha(Bluetoothコンソール付き16×2 LCD)、air(ヘッドレスバッテリーロガー)。pt-BRとes-ESの言語パック、OTAマニフェストも同梱されます。成熟度:releaseは安定、alphaは公開済みでベンチテスト済み、airは実験的。すべてのプルリクエストで8スイート426件のホストテストケース、60秒のファジングと静的解析を実行し、コールドキャッシュから6つのファームウェアイメージすべてをビルドします。
既知の制限は文書化されています。OTAはファイルシステムを再フォーマットします(Wi-Fi、アカウント、センサースロットは引き継がれるが、履歴、キャリブレーションファイル、言語パックは引き継がれない)。ファームウェアスロットは1つでロールバックなし。ベンチイメージで原因不明のリセットが3回発生。アイドル接続でストリームが切断されることがある。チャンク応答が時々壊れる。ユーザーリストの保存でデバイスが再起動。テレメトリカーソルは単一のタイムスタンプ。認定計測器ではない。
SIMUTを選ぶ理由:ディスプレイ付きでスタンドアロン、規制環境(監査証跡、ユーザーRBAC)、コールドチェーン(−50 °Cまでのプローブ)、オフライン動作、OTA更新、セキュリティ(HMAC-SHA256、13ビットRBAC、ロックアウト、オプションのHTTPS)、Home Assistant、Prometheusメトリクス、リモート監査ログ。典型的な用途:研究室、薬局、血液銀行、ワクチン保管、食品コールドチェーン。
アーキテクチャ:デュアルコア(Core 0がメインループ、Core 1がディスプレイループ)。Core 0にAppManager、SensorManager、WebManager、TelemetryManager、CommandManager、StorageManager、NetworkManager。Core 1にDisplayManager、TouchPriority、DMAキャンバスレンダラー、Themes、i18n。ハードウェアインターフェース:SPIでILI9341 TFT 320×240 + XPT2046タッチ(alpha:HD44780 16×2 LCD、Air:ディスプレイなし)。GP0~GP15で16のユニバーサルセンサースロット(DS18B20 1-Wire、DHT22、BMP280/BME280 I2C)。USB CDCシリアルコンソール(alpha/AirではBluetoothも)。WiFi(CYW43439)でHTTP(S)サーバー + テレメトリ。
主な機能:
- センシングとアラーム:16のユニバーサルセンサースロット、温度・湿度・気圧チャネル、センサーごとのキャリブレーションオフセットと曲線、ゼロトラストセンサーパイプライン(DS18B20 ROM検証、エラーヒステリシス、範囲外拒否)、全チャネルのアラーム(下限/上限付き)、障害アラーム、120秒のサイレンス、グローバルミュート、ブザーメロディ、最大30日のメンテナンスウィンドウ。
- タッチパネル(release):320×240 ILI9341、ダッシュボード、最小/最大バンド付き履歴グラフ、統計、カレンダー、設定。パネル上での本人確認(32アカウント、各PIN付き、設定可能なPINポリシー、タップごとにキーパッドを再配置、アカウントごとのロックアウト)。ガラス上での管理。トップパネルジェスチャー。DMAレンダリング高速パス。4 pxセーフエリア。テーマ(LittleFSから最大8つ読み込み、11同梱)。クラスごとに6メロディのサウンドシステム。
- キャラクタLCD(alpha):アクティブなスロットとチャネルを3秒ごとに巡回表示、大きな数字、セットアップアクセスポイントがアドレス/SSID/キーを表示、Bluetoothコンソール、保留中テレメトリ数。
- Webインターフェース:11ページをgzip圧縮、ライト/ダークテーマ、ファイルマネージャー、15分アイドルで期限切れになるマルチユーザーセッション。ライブパネルミラー(release)は1フレーム213 ms。変更はドライランで分類(Test/Apply now/Save and restart)。保存せずに再起動。ログインページにバージョン。Wi-Fiスキャン。ブラウザーでの履歴グラフとCSVエクスポート。62ルートのHTTP API。
- テレメトリと統合:4つのトランスポート(HTTP、HTTPS、MQTT、MQTTS)、JSON/CSV/カスタムテンプレートのペイロード、証明書チェック付きTLS 1.2。数量によるバッチ処理(t_int最小バッチ、t_batリクエストあたり最大、適応バッチサイズ)。独自キューと確認応答を持つ別のアラーム回線。Home Assistant MQTT Discovery、Prometheus /metrics、リモートsyslog。フリートフック(X-SIMUT-*ヘッダー、mDNS _simut._tcpサービス、Bearerトークン、設定可能なCORSオリジン)。
- ネットワークと時刻:Wi-Fiの再試行ラダー(5秒から倍増して120秒)、隠しSSID、静的IP、2つのDNSサーバー、カスタムNTPまたは手動時計、設定可能なWebポート。セットアップアクセスポイント(WPA2、デバイスごとのキー、http://192.168.4.1のキャプティブポータル)に5つの入り方。NTP再試行バックオフは20秒から15分、pool.ntp.orgへのフォールバック付き。
- ストレージと履歴:コンパクトなバイナリ履歴(V5)、デルタ+アンカー符号化で5.38バイト/レコード(1 MBファイルシステムで約116日)、CRC付き60レコードのブロック、レコードごとにオープンブロックを保存、86%満杯を超えると最古の日を削除。設定はCRC32チェック、一時ファイルに書き込んでリネーム、.bakフォールバック、シークレットは難読化。イベントログ2×800レコードと155のイベントコード。
- セキュリティ:32アカウント、13の権限ビット、自分が持たないビットは誰も付与できない。パスワードはHMAC-SHA256 5000ラウンド、8バイトのハードウェア乱数ソルトとボード結合ペッパー。工場出荷時はランダムな8文字の管理者パスワードを生成し、USBコンソールに一度だけ表示。ブルートフォース制限(クライアントごとのログインロックアウト2~300秒、IPごとのスロットリング、Bluetoothコンソールの指数ロックアウト)。セッションはHttpOnly SameSite=Strict CookieまたはBearerトークン。アップロードはパストラバーサル、パーセントエンコーディング、制御バイト、予約名を拒否。オプションのHTTPS(release)と証明書インストール。監査はクローズ済み、最後の指摘V-09はv2.7.0で修正。
- 復元力とフォレンジック:起動ごとのクラッシュ検死(ウォッチドッグスクラッチレジスタが停止モジュールを特定)、デュアルコアフラッシュ規律(フラッシュ書き込み中はCore 1を一時停止)、ファイルシステム操作の周囲でウォッチドッグを給餌。
- 更新、バックアップ、復旧:WebページからのOTA(管理者のみ、コミット前にイメージをチェック)、ファイルシステム全体のバックアップと復元(CRC32チェック、チップにバインド)、BOOTSEL、picotool、1200 bpsパスを含む復旧ガイド。
- SIMUT Air(実験的):2つのモード(M0覚醒、M1スリープサイクル)、レコード待ちのときのみ無線、充電器検出ピン、フルコンソール。
- 国際化:3つのインターフェース言語(英語は組み込み、ポルトガル語pt-BRとスペイン語es-ESは.lngパック)。
クイックスタート:前提条件はPlatformIO Core 6.x、オプションのzopfli、Raspberry Pi Pico W。pio run -e pico_w_releaseでビルド、pio run -e pico_w_release -t uploadで書き込み、初回書き込み時のみuploadfsでLittleFSデータをアップロード(警告:パーティションを再フォーマット)。ビルド済みリリースには.uf2と.binファイルが同梱。初回起動:USBシリアルコンソールから管理者パスワードを取得し、セットアップアクセスポイントまたはコンソールコマンドでネットワークに参加し、Webインターフェースを開き、センサーを追加し、タッチパネルで設定。
ハードウェア:Raspberry Pi Pico W(RP2040デュアルコア)、ILI9341 320×240 TFT(SPI DMA)またはHD44780 16×2 LCD、XPT2046抵抗膜タッチ、GP0~GP15の16ユニバーサルセンサースロット、パッシブピエゾブザー(PIO駆動)、2 MB内部フラッシュ(1 MBファームウェア + 1 MB LittleFS)。SIMUT PCBレイアウト(KiCad)がダウンロード可能です。
ドキュメントには配線ガイド、復旧ガイド、セキュリティノート、カスタムイメージ用のビルドコンフィギュレーターが含まれます。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.