組み込み(C++ / ESP32)

組み込み(C++ / ESP32)

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

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

【Switch】高温スリープエラーを自分で分解して修理する方法

Nintendo Switchの高温スリープエラーを自分で修正する手順を記載。Y字・十字ドライバーで背面カバーを取り外し、その後シルバープレートを取り外す。バッテリーコネクト・ヒートシンク・ゲームカードユニットの順に取り外したら冷却ファンを取り出すことができる。
組み込み(C++ / ESP32)

【C++】ポインタと参照の違い・値渡しと参照渡し・関数ポインタ・スマートポインター

ポインタはアドレス(メモリ空間上の位置)を格納する変数。変数宣言を行う際に、変数用のメモリが確保され、メモリ空間上に配置される。しかし、変数宣言直後はポインタには不定値が格納されており、どこを指しているか分からない状態。変数名の前に `&` 記号をつけることで、その変数のアドレスを取得できる。
アプリ(Flutter)

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

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

【ST7735】TFT LCDの描画問題解決ガイド:Green Tabの設定方法

ST7735 TFT LCDディスプレイで遭遇した描画問題とその解決策について記載。ST7735ディスプレイは同じ基本チップを使用しながらも、異なるメーカーや生産バッチによって、細かな仕様の違いがあるため、"Green Tab"、"Red Tab"、"Black Tab" など多くのバリエーションが存在する。
組み込み(C++ / ESP32)

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

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

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

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

【ESP32】ESP-IDFへの移行後に発生したMQTT通信後のスタックオーバーフローエラー対処法

スタックオーバーフローは、タスクが割り当てられたスタックメモリを使い果たしてしまう現象。MQTTメッセージの受信処理やパース処理が原因でスタックオーバーフローが発生することがある。sdkconfigファイルでスタックサイズの設定変更することで解決できることがある。
組み込み(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を指定する必要がある。