IoT アプリ開発
任意のプログラミング言語を使用してIoTアプリケーションを構築し、プロジェクト内のデバイスで利用できます。
アプリとは?
IronFlockアプリは、単にデバイス上で動作するソフトウェアではありません。フィールドでデバイスを運用するために必要なすべてを統合した、完全な自己完結型プロダクトです。
- エッジコンポーネント — コンテナ内でデバイス上で実行されるアプリケーションロジック。これはアプリの一部です。
- ボード — アプリ自体の一部として定義された、データの可視化やデバイスとのインタラクションのためにユーザーがブラウザで開くダッシュボード。
- データスキーマ — 時系列データベースに収集・保存するテレメトリをIronFlockに指示するテーブル定義。
- パラメータ — コードに触れずに、デバイスごとまたはグループごとにオペレーターが調整できる設定項目。
- リモートアクセス設定 — Node-REDやGrafanaなどのデバイス側WebUIをブラウザ上で直接公開するトンネル定義。
- AI連携 — デバイスのデータに関する質問に回答できるオプションのAIエージェント設定。
アプリがデバイスやグループに追加されると、IronFlockはエッジコンポーネントのデプロイ、データ収集の接続、ボードとリモートアクセスの有効化を一括でOTA(Over-the-Air)で実行します。
独自アプリを開発するタイミング
IronFlock App Storeには一般的なユースケース向けの既製アプリが用意されています。ただし、以下のような場合には独自アプリの開発が有効です:
- 既存のソフトウェアがある場合 — コンテナで実行可能なアプリケーションであれば、IronFlockアプリにできます。IronFlockアプリ定義でラップするだけで、ダッシュボード、データ収集、OTAアップデート、フリート管理がすぐに利用可能になります。
- ビジネスロジックを完全に制御したい場合 — カスタムセンサー処理、エッジAI推論、プロトコル変換、ドメイン固有のアルゴリズムなど。
- 独自のダッシュボードが必要な場合 — 内蔵のボードエディタで、フロントエンドコードを書くことなく、オペレーターに必要な可視化とコントロールを設計できます。
- 製品を構築している場合 — ソフトウェアをIronFlockアプリとしてパッケージ化し、有料ライセンスのオプション付きでApp Store経由で顧客に配布できます。
- フリート全体で標準化したい場合 — 1つのアプリ定義を数千台のデバイスに同一にデプロイし、パラメータを一元管理できます。
得られるもの
IronFlockでアプリを開発すると、以下が利用できます:
- OTAデプロイ — SSH不要で、ワンクリックですべてのデバイスにアップデートを配信。
- 標準搭載のデータストレージ — テーブルスキーマを一度定義するだけで、IronFlockが時系列データベースを作成し、自動的にデータ収集を開始。
- 内蔵ダッシュボード — 別途フロントエンドサービスは不要。ボードはアプリの一部であり、IronFlockがホスティング。
- 設定可能なパラメータ — APIキー、閾値、アドレスなどの設定を公開し、コードに触れずにデバイスごとまたはグループごとにオペレーターが変更可能。
- リモートアクセストンネル — デバイス上で動作するWeb UIをIronFlockのトンネルインフラを通じてブラウザ上で直接表示。
- アプリ配布 — App Storeに公開し、他のIronFlockユーザーや顧客にアプリを提供可能。
アプリアーキテクチャ
IronFlockアプリは6つのコンポーネントで構成される自己完結型パッケージです:
| コンポーネント | 設定ファイル | 説明 |
|---|---|---|
| エッジコード | Dockerfile | デバイス上で実行されるアプリケーションロジック |
| ボード | .ironflock/board-template.yml | ユーザーインターフェース / ダッシュボード |
| データストレージ | .ironflock/data-template.yml | テレメトリ用データベーステーブル |
| パラメータ | .ironflock/env-template.yml | ユーザーが設定可能な項目 |
| リモートアクセス | .ironflock/port-template.yml | Web UI用トンネルポート |
| AIエージェント | .ironflock/ai-template.yml | AIアシスタント連携 — AI機能を参照 |
.ironflock/ディレクトリ内の設定ファイルはすべてオプションです。最低限、アプリにはDockerfileとアプリケーションコードが必要です。
このセクションの内容
Last updated on