方言を話すおしゃべり猫型ロボット『ミーア』をリリースしました(こちらをクリック)

ESP32

サーバー(Go)

【Flutter × Go × gRPC】OTAアップデート:Firmware更新をgRPCでアプリ通知

AWS s3のfirmwareディレクトリに新しいFirmwareバイナリを開発者がバージョン指定してアップロードする。各ユーザーのFirmwareのバージョンと開発者がアップロードした最新バージョンを比較し、異なる場合にFlutterアプリに「新しいFirmwareをインストール可能です」と通知する。
開発・デザイン

【ESP32】開発ボードから自作プリント基板を設計し製品化するまで

猫型おしゃべりロボット「ミーア」は、ESP32 Wi-Fi Bluetooth モジュールを利用した自作基板で開発している。ESP32の開発ボードを用いた初期開発から、自作基板を作成し製品用に何回か変更を繰り返した経緯を備忘録的にまとめておく。
組み込み(C++ / ESP32)

【ESP32】OTAアップデート:MQTTとAWS IoTデバイスシャドウを利用したファームウェア更新

ユーザーがアップデートを受け入れると、アプリがサーバーにAPIリクエストを送信し、サーバーがAWS IoTのデバイスシャドウに変更を反映させる。デバイスはMQTTを通じてこの変更を検知し、ファームウェアのダウンロードとアップグレードを実行する。
アプリ(Flutter)

【ESP32 × Flutter】Wi-Fiスキャン結果をBLEでチャンク分割送信する方法

ESP32とFlutter(flutter_blue_plus)を利用してWi-Fiスキャンの結果をBLEを通じてスマートフォンに分割送信する方法を記載。BLEのNotify機能を使用して、大きなデータを小さなパケットに分け、受信したデータを再構成する。
組み込み(C++ / ESP32)

【ESP32】ハードウェアトリガーでファームウェアを初期化する方法

ESP32でTTP223タッチセンサーによるハードウェアトリガーを用いたファームウェア初期化の手順を記載。PlatformIOとTFT_eSPIを活用して、セーフモードでのディスプレイを利用した状態表示やOTAアップデートの実行方法について記載。
組み込み(C++ / ESP32)

【ESP32 × PlatformIO】設定ファイル(AWS IoT)をLittleFSからNVS領域に移動

現状、設定ファイルをdata配下に置きビルド時はSPIFFS領域に含まれているが、ダウンロードの処理の不具合などでLittleFSのストレージが溢れた際、証明書の読み込みなど失敗する可能性があるので、NVS領域への書き込みと読み取りに変更する。
組み込み(C++ / ESP32)

【ESP32 × PlatformIO】フレームワークをArduinoとESP-IDFで併存する方法

PlatformIOでArduinoとESP-IDFのフレームワークを併用することができる。platform.iniにframework = arduino, espidf と設定することで既存の多くのArduinoライブラリを直接利用できるため、コードのポーティングや書き直しの手間を省くことができる。
組み込み(C++ / ESP32)

【ESP32】NVS暗号化キーを作成してNVSパーティションを暗号化

ESP32のNVS暗号化機能を利用するために必要な暗号化キーを保存するための専用パーティションとして、新たにNVSキーパーティションを作成する。NVSキーパーティションとして、Typeはdata, Subtypeはnvs_keysを指定する必要がある。
アプリ(Flutter)

【Flutter × Go × ESP32】ミーアにミュート機能を追加する方法

ミーアのβ版をリリースした後、実際に使っていただいた複数のユーザから「話す頻度に「喋らないモード」が欲しい」との要望が来たので、今回は本機能の実装を記載。参考にアレクサを見てみたところ、確かにホーム画面にミュート(この場合はおやすみモード)がアイコンのトグルで表示されていた。