はじめに
プロジェクト概要
ZimaCubeの7th Bayは、フラッグシップデバイスに必要なSSD拡張機能を提供するだけでなく、カスタマイズ可能な照明を通じて家庭のコンピューティングにより活力をもたらすように設計されています。カスタマイズ可能な照明の統合により、システムのステータスを示すため、データ転送速度を表示するため、ダウンロードの進行状況を示すため、ローカルAIの活動を知らせるため、さらにはデスクトップの音楽と同期させるために、7th Bayのライトストリップを使用するという無限の可能性が広がります。
これらのアイデアを実現するために、ZimaCube 7th BayはEspressif SystemsのESP32マイクロコントローラを基盤にしています。オンボードのBluetoothおよびWiFi機能により、ZimaOSやその他のIoTデバイスを介して照明を独立して制御できます。ESP32は照明制御専用であり、ZimaCubeのすべてのネットワークおよびストレージ機能から隔離されています。さらに、ESP32は小さなWebサーバーとして機能し、照明効果をカスタマイズするためのOTA(Over The Air)ファームウェア更新を提供します。
ZimaCube 7th Bay照明のカスタマイズ
ZimaCube 7th Bayの照明効果をカスタマイズする方法は2つあります。
- 公式ファームウェアプロトコルを使用して、ZimaOS上でスクリプトを書くことによってDIY照明制御を行う。
- 7th Bayのライトストリップを完全に制御するために独自のESP32ファームウェアとプロトコルを開発する。
各手法の利点と欠点:
手法1:
- 利点:シンプル、迅速な実装、既存の機能を利用、リスクが低い。
- 欠点:機能とパフォーマンスが制限される。
手法2:
- 利点:完全な制御、高い柔軟性、独立した動作、最適化されたパフォーマンス。
- 欠点:開発の難易度が高い、開発サイクルが長い。
照明制御用スクリプトの書き方
7th Bayファームウェアプロトコルの紹介
WiFi接続:ESP32は、ZimaOSが接続してリモート制御およびOTA更新を行うためのWiFiネットワークを作成します。
JSON制御:JSONコマンドを使用して照明効果を制御し、柔軟性と簡単なカスタマイズを提供します。
OTA更新:OTA更新をサポートし、デバイスへの物理的アクセスなしにファームウェアの更新を可能にします。
さまざまな照明効果:呼吸効果、常時点灯モード、カスタムモードなど、複数の定義済み照明効果をサポートします。
照明制御方法
ZimaCubeのWi-Fiに接続
- Wi-Fiネットワークに接続:
- Wi-Fi名:”ZimaCube”
- Wi-Fiパスワード:”homecloud”
カラーピッカーの使用
色の選択を容易にするために、以下のオンラインカラーピッカーツールを使用します:オンラインカラーピッカー。
手順:
- オンラインカラーピッカーを開く。
- マウスを使用して希望の色を選択する。
- 対応するHSV(色相、彩度、明度)値がカラーピッカーインターフェイスに表示されます。
- これらのHSV値を記録し、JSONデータに適した範囲に変換します:
- **色相 (H)**:h = (色相値 / 360) * 255
- **彩度 (S)**:s = (彩度値 / 100) * 255
- **明度 (V)**:v = (明度 / 100) * 255
例:
カラーピッカーでオレンジを選択すると、次のHSV値が得られます:
- **色相 (H)**:30
- **彩度 (S)**:100
- **明度 (V)**:100
変換後の値:
- **色相 (H)**:h = (30 / 360) * 255 ≈ 21
- **彩度 (S)**:s = 255
- **明度 (V)**:v = 255
これらの値を照明制御のためのJSONデータに適用します。
制御モード
モード1:呼吸モード
呼吸モードでは、ライトストリップは単一の色のグラデーション効果を表示します。速度や色パラメータを調整して効果を制御します。
- 速度:範囲0〜10
- 色パラメータ:
- **色相 (H)**:範囲0〜255
- **彩度 (S)**:範囲0〜255
- **明度 (V)**:範囲0〜255
例のJSONデータ:
{ |
*** ESP32へのデータ送信:***
- ESP32は、ZimaOSが接続するデフォルトのWiFiネットワークを作成します。接続を確認するには:
ping 172.16.1.1
- JSONデータを使用して、
172.16.1.1
にHTTP POSTリクエストを送信します:curl -X POST -H "Content-Type: application/json" -d @yourfile.json http://172.16.1.1/post
- 照明効果をチェックしてください。
モード2:常時点灯モード
常時点灯モードでは、ライトストリップは単一の色を保持します。
色パラメータ:
- **色相 (H)**:範囲0〜255
- **彩度 (S)**:範囲0〜255
- **明度 (V)**:範囲0〜255
例のJSONデータ:
{ |
*** ESP32へのデータ送信:***
- ESP32は、ZimaOSが接続するデフォルトのWiFiネットワークを作成します。接続を確認するには:
ping 172.16.1.1
- JSONデータを使用して、
172.16.1.1
にHTTP POSTリクエストを送信します:curl -X POST -H "Content-Type: application/json" -d @yourfile.json http://172.16.1.1/post
- 照明効果をチェックしてください。
モード3およびモード4
- 開発中です。
モード5:カスタムモード
カスタムモードでは、各ライトの色と明るさを個別に制御できます。
- 色パラメータ:
- 色相 (H):範囲0〜255
- 彩度 (S):範囲0〜255
- 明度 (V):範囲0〜255
例のJSONデータ:
{ |
*** ESP32へのデータ送信:***
ESP32は、ZimaOSが接続するデフォルトのWiFiネットワークを作成します。接続を確認するには:
ping 172.16.1.1
JSONデータを使用して、
172.16.1.1
にHTTP POSTリクエストを送信します:curl -X POST -H "Content-Type: application/json" -d @yourfile.json http://172.16.1.1/post
照明効果をチェックしてください。
自分の7th Bayファームウェアを開発する方法
はじめに
Windowsコンピュータを使用して、独自のESP32ファームウェアと照明効果の開発方法、および新しいファームウェアのアップロード方法を説明します。
ハードウェア要件
- ZimaCubeの7th Bay
- Type-Cデータケーブル
- Windowsコンピュータ
ハードウェア情報
- LEDの数:13
- GPIO 2:WS2812B LEDストリップのデータラインに接続
- 5VおよびGND:ESP32開発ボードの電源およびグラウンドに接続
ESP32の詳細:
使用ガイド
システム要件
- オペレーティングシステム:Windows 10
- 必要なツール:Arduino IDE
インストール手順
Arduino IDEをインストール: ダウンロード
ESP32ボードをインストール
ライブラリをダウンロードしてインストール:
- Adafruit_NeoPixel
- ArduinoJson
- Metro
- これらをArduino IDEインストールのライブラリフォルダーに配置します。
開発構成
- Arduino IDEを開く。
- ボードを選択:ツール -> ボード -> ESP32 -> ESP32C3 Dev Module
- 正しいポートを選択:ツール -> ポート
- コードをESP32にコンパイルしてアップロード:アップロードボタンをクリック
- アップロード成功の結果:
OTA更新チュートリアル
- WiFiに接続
- コンピュータをWiFiネットワークに接続:
- 名称:”ZimaCube”
- パスワード:”homecloud”
- URLにアクセス
- ブラウザを開いて
172.16.1.1
にアクセスします。
- ブラウザを開いて
- ファームウェアをアップロード
- ファームウェアは次のアドレスから入手します:ファームウェアダウンロード