ミーア

開発・デザイン

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

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

【Flutter】Apple HealthKit API から行動ログを取得し、Gemini APIを元にアドバイス文を生成:実装編

今回は、Flutterアプリからサーバーにヘルスデータを送信し、Gemini APIを通じてアドバイスのテキスト(例:昨日はよく眠れたみたいですね。この調子!)を生成する部分を実装したい。1日の総歩数と総運動時間を出力するように計算ロジックを追加。
開発・デザイン

【TTP223】静電容量式タッチセンサーの仕組みとESP32との配線

タッチセンサーモジュールを調べたところ、専用のドライバICを搭載した、静電容量式のタッチセンサー基板のTTP223に行き着いた。 指によるタッチ入力状態を1ビットのON/OFF信号として取得できるとのこと。センサー範囲は5mmまで対応可能。
開発・デザイン

【ESP32】スリープモード(Deep / Light sleep)選択基準。消費電力の最適化と実装

ESP32は高度な省電力機能を備えており、その中心となるのがスリープモード。主にDeep-sleep modeとLight-sleep modeの2つのスリープモードがある。特筆すべきは、Light-sleep modeとDeep-sleep modeで消費電力がアクティブモートの時と比較すると、ほとんど誤差みたいな差であること。
開発・デザイン

【Go】タスクキューとクーロンを使った並列処理の実装

今回は、本日の天気情報を音声でお知らせするという機能に関して、ユーザーがアプリで設定した天気お知らせ時刻の1時間前に、該当の天気情報の音声ファイルを生成してAWS S3に保存するという機能を作成。go言語でタスクキューを使った並列処理で実装を進める。
開発・デザイン

【Flutter × Go】眠りモードに至るまでの時間をアプリで設定して、サーバーに反映させる。

以前、ESP32のlight sleep mode機能を使って、ミーアをおやすみモードに移行する部分のコードを作成した。この時は、PlatformIOに直接スリープモードへの移行時間を設定していたが、ユーザーのアプリで移行時間を設定できるように変更する。
開発・デザイン

【ESP32】OTAアップデート機能を実装して、遠隔でファームウェア更新する方法

ESP32のWiFiモジュールを搭載した猫型ロボット「ミーア」の開発を進めているが、今回は製品をユーザーに提供後に新機能をリリースした際に、開発者がリモートでファームウェアの更新を行えるようにするために、OTAアップデート機能を導入する。
開発・デザイン

【ESP32】電源回路にラッチングスイッチを取り付ける

ラッチングスイッチを一度押すと、そのスイッチは押された状態(ON)を保持し、電流を流し続ける。スイッチを再度押すと、スイッチは元の状態(OFF)に戻り、電流を遮断する。垂直マウントできるラッチングスイッチをLCSCで探す。
開発・デザイン

【Flutter】トップ画面に日替わりのGIF画像とテキストを表示する。

Flutterプロジェクトで画像やその他のアセットを使用する際には、それらをpubspec.yamlに記載してFlutterに知らせる必要がある。assets/images配下にGIF画像を配置して、それをpubspec.yamlに記載する。
開発・デザイン

【Go × Echo】バックエンドで天気予報情報を取得し、Flutterアプリに表示する

今までは、アプリ側のみでOpenWeatherMapのAPIを使用して、指定された緯度と経度を使用して天気情報を取得しアプリ画面に表示していたが、今回はGo言語のEchoフレームワークによるバックエンド経由に変更する。