組み込み(C++ / ESP32) 【ESP32】OTAアップデート機能を実装して、遠隔でファームウェア更新する方法 ESP32のWiFiモジュールを搭載した猫型ロボット「ミーア」の開発を進めているが、今回は製品をユーザーに提供後に新機能をリリースした際に、開発者がリモートでファームウェアの更新を行えるようにするために、OTAアップデート機能を導入する。 2024.03.31 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
サーバー(Go) 【Flutter × Go × gRPC】OTAアップデート:Firmware更新をgRPCでアプリ通知 AWS s3のfirmwareディレクトリに新しいFirmwareバイナリを開発者がバージョン指定してアップロードする。各ユーザーのFirmwareのバージョンと開発者がアップロードした最新バージョンを比較し、異なる場合にFlutterアプリに「新しいFirmwareをインストール可能です」と通知する。 2024.04.10 2024.07.01 サーバー(Go)組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32】OTAアップデート:MQTTとAWS IoTデバイスシャドウを利用したファームウェア更新 ユーザーがアップデートを受け入れると、アプリがサーバーにAPIリクエストを送信し、サーバーがAWS IoTのデバイスシャドウに変更を反映させる。デバイスはMQTTを通じてこの変更を検知し、ファームウェアのダウンロードとアップグレードを実行する。 2024.04.17 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
アプリ(Flutter) 【ESP32 × Flutter】Wi-Fiスキャン結果をBLEでチャンク分割送信する方法 ESP32とFlutter(flutter_blue_plus)を利用してWi-Fiスキャンの結果をBLEを通じてスマートフォンに分割送信する方法を記載。BLEのNotify機能を使用して、大きなデータを小さなパケットに分け、受信したデータを再構成する。 2024.04.26 2024.07.01 アプリ(Flutter)組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32】ハードウェアトリガーでファームウェアを初期化する方法 ESP32でTTP223タッチセンサーによるハードウェアトリガーを用いたファームウェア初期化の手順を記載。PlatformIOとTFT_eSPIを活用して、セーフモードでのディスプレイを利用した状態表示やOTAアップデートの実行方法について記載。 2024.05.11 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32 × PlatformIO】設定ファイル(AWS IoT)をLittleFSからNVS領域に移動 現状、設定ファイルをdata配下に置きビルド時はSPIFFS領域に含まれているが、ダウンロードの処理の不具合などでLittleFSのストレージが溢れた際、証明書の読み込みなど失敗する可能性があるので、NVS領域への書き込みと読み取りに変更する。 2024.05.22 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32 × PlatformIO】フレームワークをArduinoとESP-IDFで併存する方法 PlatformIOでArduinoとESP-IDFのフレームワークを併用することができる。platform.iniにframework = arduino, espidf と設定することで既存の多くのArduinoライブラリを直接利用できるため、コードのポーティングや書き直しの手間を省くことができる。 2024.06.02 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
組み込み(C++ / ESP32) 【ESP32】NVS暗号化キーを作成してNVSパーティションを暗号化 ESP32のNVS暗号化機能を利用するために必要な暗号化キーを保存するための専用パーティションとして、新たにNVSキーパーティションを作成する。NVSキーパーティションとして、Typeはdata, Subtypeはnvs_keysを指定する必要がある。 2024.06.05 2024.07.01 組み込み(C++ / ESP32)開発・デザイン
アプリ(Flutter) 【Flutter × Go × ESP32】ミーアにミュート機能を追加する方法 ミーアのβ版をリリースした後、実際に使っていただいた複数のユーザから「話す頻度に「喋らないモード」が欲しい」との要望が来たので、今回は本機能の実装を記載。参考にアレクサを見てみたところ、確かにホーム画面にミュート(この場合はおやすみモード)がアイコンのトグルで表示されていた。 2024.06.30 2024.07.01 アプリ(Flutter)サーバー(Go)組み込み(C++ / ESP32)開発・デザイン