ソーラーパネル出力電力測定器とHOME Assistant接続計画(実装検討)

目次

はじめに

下記の記事で、複数の自作装置をHome Assistantへ接続する構想を紹介しました。

本記事では、Arduino MEGAで製作した「ソーラーパネル出力電力測定用データロガー」をHome Assistantへ接続する方法を、ChatGPT-5.6 Solの力を借りて、より具体的に検討します。Home Assistantへ接続することにより、データロガーからの情報をダッシュボードに表示したり、データロガーからの情報をトリガーに組み込んだオートメーションの実現や、データロガーからの情報に基づく通知をiPhoneに送付することが可能になります。

現在のデータロガーは、ソーラーパネルの電圧・電流・電力・温度を測定し、OLEDへ表示するとともに、microSDカードへCSV形式で保存しており、すでに測定装置として動作しているため、Home Assistantへ接続するために装置全体を作り直すのではなく、現在の機能を残したまま通信機能を追加する方針とします。

この記事は、実際の実装過程を説明する記事ではなく、まず、下図に示す現在の自作装置を改良してどのように構成するかを整理した「実装検討」の記録です。

現在のデータロガー構成
最大出力電力、最小出力電力、平均出力電力(W)

注)本記事の内容は正確性を保証するものではない。

(2026年8月4日 追記)YouTube動画を追加しました。 https://youtu.be/d9PrCDd9bkQ

1.改良の出発点とするスケッチ

今回、改良の出発点とするスケッチは、次のファイルです。

MEGA_SD_DISPLAY_CORRECT_V6.ino

このスケッチは、Arduino MEGAを使ったソーラーパネル出力電力測定用データロガーとして、主に次の処理を行っています。

  • ソーラーパネルの電圧測定
  • ソーラーパネルの電流測定
  • 電圧と電流から電力を計算
  • 温度センサーDS18B20による温度測定
  • RTCによる日時取得
  • OLEDへの測定値表示
  • microSDカードへのCSV保存

測定は約1秒間隔で行われます。

CSVファイルは日付ごとに作成され、ファイル名には、例えば次のような形式が使われます。

20260803.csv

CSVには、おおむね次の項目が保存されます。

Date,Time,Temperature,Voltage,Current,Power

また、現在のスケッチでは、午前6時から午後5時59分59秒までの時間帯を記録対象としています。

使用している主なセンサーと接続先

現在のスケッチから読み取れる主な構成は、次のとおりです。

機能使用部品・接続先
電圧測定0~25V電圧センサーモジュール、Arduino MEGAのA0
電流測定ACS712-20A、Arduino MEGAのA1
温度測定DS18B20、デジタル端子D3
日時取得DS3231 RTC
画面表示SSD1306 OLED、I²Cアドレス0x3C
データ保存microSDカード、CS端子D10

電圧は、電圧センサーモジュールの分圧比に合わせて換算されています。

電流はACS712-20Aの出力電圧から算出し、電圧と電流を掛け合わせて電力を求めています。

現在のスケッチについて

MEGA_SD_DISPLAY_CORRECT_V6.inoは、測定、表示、CSV保存というデータロガーの基本機能をすでに備えています。

一方で、現在のスケッチには次の機能がありません。

  • Wi-Fiへの接続
  • MQTTによるデータ送信
  • Home Assistantとの通信
  • 通信障害時の再接続処理
  • Home Assistant用センサーの自動登録
  • SDカード容量の管理

したがって、現在のArduino MEGAを測定・表示・記録装置として残し、Home Assistantとの通信を担当するESP32を新たに追加する構成が適していると判断しました。


2.推奨する全体構成

今回考えている全体構成は、次のようなものです。

ソーラーパネル
      ↓
電圧センサー・電流センサー・温度センサー
      ↓
Arduino MEGA
      ↓ シリアル通信
ESP32-S3Wi-Fi/MQTT
Mosquitto MQTT Broker
      ↓
Home Assistant

Arduino MEGAの役割

Arduino MEGAは、今までどおり測定装置の中心として使用します。

担当する処理は次のとおりです。

  • 電圧の測定
  • 電流の測定
  • 電力の計算
  • 温度の測定
  • RTCからの日時取得
  • OLEDへの表示
  • microSDカードへのCSV保存
  • ESP32-S3への測定データ送信

Wi-FiやMQTTの処理は、Arduino MEGAには追加しません。

Arduino MEGA側の処理をできるだけ変更しないことで、Home AssistantやWi-Fiに障害が発生しても、測定、OLED表示、SDカード保存を継続できるようにします。

ESP32-S3の役割

ESP32-S3は、Arduino MEGAとHome Assistantの間をつなぐ通信装置として追加します。

担当する処理は次のとおりです。

  • Arduino MEGAからシリアルデータを受信
  • 受信データを解析
  • Wi-Fiへの接続
  • MQTT Brokerへの接続
  • 測定値をMQTTで送信
  • Wi-Fi切断時の再接続
  • MQTT切断時の再接続
  • Home Assistant用MQTT Discovery情報の送信
  • ESP32-S3自身の稼働状態の送信

測定処理と通信処理を分けることで、どちらか一方の不具合が装置全体へ影響する可能性を小さくできます。


3.追加するハードウェア

今回の改良では、現在のArduino MEGAや各センサーをそのまま使用し、主に通信部分の部品を追加します。

ESP32-S3開発ボード

ESP32-S3はWi-Fi機能を内蔵したマイコンです。

Arduino MEGAから測定値を受け取り、Home Assistantへ送信する通信ブリッジとして使用します。

ESP32-S3側では測定を行わないため、Home Assistantとの通信が停止しても、Arduino MEGA側の測定とSDカード保存には影響しません。

電圧レベル変換回路

Arduino MEGAの信号電圧は5Vですが、ESP32-S3のGPIOは3.3Vで動作します。

Arduino MEGAのTX端子をESP32-S3のRX端子へ直接接続すると、ESP32-S3の入力端子へ過大な電圧が加わる可能性があります。

そのため、次のいずれかを使用して、5Vの信号を3.3V付近まで下げます。

  • 抵抗2本による分圧回路
  • 5V・3.3V対応ロジックレベル変換モジュール

初期構成ではArduino MEGAからESP32-S3への一方向通信を想定しているため、抵抗分圧でも対応できます。

例えば、1kΩと2kΩ程度の抵抗を組み合わせる方法があります。ただし、実際に使用する抵抗値と配線は、ESP32-S3開発ボードの仕様を確認したうえで決定します。

今回は、後述する5V・3.3V対応ロジックレベル変換モジュールを使用することにした。

配線用部品

追加で必要になる可能性がある部品は次のとおりです。

  • ジャンパーワイヤー
  • ブレッドボードまたはユニバーサル基板
  • ピンヘッダー
  • 抵抗分圧用の抵抗
  • USBケーブル
  • ESP32-S3用の安定した電源
  • 必要に応じて収納ケース

試作段階ではブレッドボードを使用し、動作確認後にユニバーサル基板などへ移す方法が安全です。

シリアル通信の配線

Arduino MEGAには複数のハードウェアシリアルポートがあります。

USB接続やスケッチ書き込みに使用する通常のシリアルポートとは別に、Serial1をESP32-S3との通信用として使用します。

想定している基本配線は次のとおりです。

Arduino MEGA D18(TX1)
        ↓
5Vから3.3Vへの抵抗分圧またはレベル変換
        ↓
ESP32-S3のRX端子

Arduino MEGA GNDとESP32-S3 GNDを接続

初期段階では、ESP32-S3からArduino MEGAへ命令を送る必要がないため、Arduino MEGAのRX1は接続しない一方向通信とします。

4.ソフトウェア構成

ソフトウェアは、Arduino MEGA側、ESP32-S3側、Home Assistant側の3つに分けて考えます。

Arduino MEGA側

Arduino MEGAでは、現在のスケッチを基に、測定値をシリアル通信で送信する処理を追加します。

既存の測定、OLED表示、CSV保存の処理は、できるだけ変更しません。

ESP32-S3へ送るデータは、JSON形式にすると項目を識別しやすくなります。

例えば、次のような形式です。

{
  "timestamp": "2026-08-03T12:34:56",
  "temperature": 32.4,
  "voltage": 18.6,
  "current": 2.15,
  "power": 39.99,
  "sd_status": "ok"
}

実際のシリアル通信では、1回分のJSONを1行として送信します。

ESP32-S3は改行を受信した時点で、1件分のデータとして処理します。

Arduino MEGA側では、シリアル送信に失敗しても測定処理を止めないことが重要です。

ESP32-S3側

ESP32-S3では、次の処理を行う専用スケッチを作成します。

  1. Wi-Fiへ接続する
  2. MQTT Brokerへ接続する
  3. Arduino MEGAからシリアルデータを受信する
  4. JSONデータとして解析する
  5. 各測定値をMQTTへ送信する
  6. 接続が切れた場合は再接続する

ESP32-S3は、例えば次のようなMQTTトピックへデータを送信します。

solar/logger/state
solar/logger/availability

stateには測定値を送り、availabilityには装置がオンラインかオフラインかを示す情報を送ります。

Mosquitto MQTT Broker

MQTT Brokerは、ESP32-S3とHome Assistantの間でメッセージを中継します。

Home Assistant OSを使用している場合は、Mosquitto brokerアドオンを利用する方法が一般的です。

ESP32-S3はMosquittoへ測定値を送り、Home AssistantはMosquittoからその値を受信します。

この構成では、ESP32-S3がHome Assistantへ直接データを書き込むのではなく、MQTT Brokerを介して通信します。

Home Assistant側

Home Assistantでは、受信したデータから次のようなセンサーを作成します。

  • ソーラーパネル電圧
  • ソーラーパネル電流
  • ソーラーパネル出力電力
  • パネル付近の温度
  • データロガーのオンライン状態
  • SDカードの状態
  • 最終データ受信日時

ESP32-S3からMQTT Discoveryの設定情報を送信すれば、これらのセンサーをHome Assistantへ自動登録できます。

手作業でMQTTセンサーをYAMLへ追加する方法もありますが、今回の構想では、設定変更を容易にするためMQTT Discoveryを使用する予定です。

5.Home Assistantでできるようになること

測定値をHome Assistantへ送信できるようになると、現在値を表示するだけでなく、長期間の変化も確認できるようになります。

例えば、次のような利用方法が考えられます。

ダッシュボードへの表示

Home Assistantのダッシュボードに、電圧、電流、電力、温度を表示できます。

その時点の値だけでなく、時間ごとの変化をグラフで表示することもできます。

発電量の積算

Arduino MEGAからは瞬時電力を送信し、Home Assistant側で時間積分することで、WhまたはkWh単位の積算電力量を求められます。

初期段階ではArduino MEGA側に積算処理を追加せず、Home Assistantの積分センサーなどを使って算出する方が、既存スケッチへの影響を抑えられます。

異常の通知

次のような条件を設定し、通知を送ることもできます。

  • 日中なのに発電電力が極端に低い
  • 一定時間データが届かない
  • ESP32-S3がオフラインになった
  • SDカードでエラーが発生した
  • 温度が設定値を超えた

ただし、曇天や日没による発電低下と装置の異常を区別する必要があるため、通知条件は実際のデータを確認してから調整します。

6.SDカードがいっぱいになった場合の対策

現在のデータロガーは、日付ごとにCSVファイルを作成します。

このまま長期間使用すると、いつかSDカードの空き容量がなくなる可能性があります。

そこで、SDカードの容量が一定以下になった場合、古い日付のCSVファイルから削除する処理を追加することを検討しています。

想定している処理は次のとおりです。

  1. SDカードの空き容量を確認する
  2. 空き容量が設定値を下回っていないか判定する
  3. SDカード内のCSVファイル名を調べる
  4. YYYYMMDD.csvの日付が最も古いファイルを探す
  5. 当日のファイルを除外する
  6. 最も古いファイルを削除する
  7. 必要な空き容量になるまで繰り返す

ただし、使用しているSDカードライブラリによっては、空き容量の取得が簡単ではない場合があります。

その場合は、次のような方法も考えられます。

  • CSVファイルを一定日数だけ保存する
  • ファイル数が設定値を超えたら最古のファイルを削除する
  • 書き込みに失敗した場合に最古のファイルを削除する

安全性を考えると、単純に書き込み失敗後に削除するよりも、保存日数またはファイル数に上限を設け、余裕を持って古いファイルを削除する方法が適しています。

削除処理を追加する際は、次の点にも注意する必要があります。

  • 当日のCSVファイルを削除しない
  • CSV以外のファイルを削除しない
  • ファイル名が日付形式でない場合は削除対象にしない
  • RTCの日時が正しいか確認する
  • 削除したファイル名をシリアルモニターへ表示する
  • SDカードエラーが起きても測定処理を停止させない

この機能はHome Assistant接続に必須ではありませんが、長期間無人で運用するためには重要な改良です。

7.段階的に実装する理由

測定、SDカード保存、シリアル通信、Wi-Fi、MQTTを一度に変更すると、不具合が発生したときに原因を特定しにくくなります。

そのため、次のように段階を分けて実装します。

第1段階:Arduino MEGA側の整理

MEGA_SD_DISPLAY_CORRECT_V6.inoを基に、現在の測定、表示、CSV保存が正しく動作することを確認します。

あわせて、SDカード容量管理と古いCSVファイルの削除処理を検討します。

第2段階:シリアルデータの追加

Arduino MEGAのSerial1から、測定値をJSON形式で出力します。

この段階ではESP32-S3を接続せず、USBシリアル変換器や別の確認方法を使って、出力内容が正しいことを確認します。

第3段階:ESP32-S3で受信

ESP32-S3を接続し、Arduino MEGAから送られたJSONデータを正しく受信、解析できることを確認します。

この段階では、まだMQTT送信を行わなくても構いません。

第4段階:Wi-FiとMQTTの追加

ESP32-S3をWi-Fiへ接続し、Mosquitto MQTT Brokerへ測定値を送信します。

Home AssistantのMQTT機能やMQTTクライアントを使い、データが届いていることを確認します。

第5段階:Home Assistantへセンサー登録

MQTT Discoveryを追加し、電圧、電流、電力、温度などのセンサーをHome Assistantへ登録します。

第6段階:ダッシュボードと自動化

測定値のグラフ、積算電力量、異常通知などを作成します。

8.この構成の利点

Arduino MEGAとESP32-S3を分ける構成には、次の利点があります。

現在のデータロガーを活用できる

測定回路やセンサーを作り直す必要がありません。

Arduino MEGA側の変更を最小限に抑えられるため、これまでの測定結果や調整内容を引き継げます。

Home Assistantが停止しても記録を継続できる

Home Assistant、MQTT Broker、Wi-Fi、ESP32-S3のいずれかに問題が発生しても、Arduino MEGAは測定、OLED表示、SDカード保存を継続します。

不具合の切り分けがしやすい

測定値がおかしい場合はArduino MEGA側、Home Assistantへデータが届かない場合はESP32-S3やMQTT側というように、問題の範囲を切り分けやすくなります。

将来の拡張がしやすい

将来的には、ESP32-S3から次のような情報を追加で送ることもできます。

  • Wi-Fiの受信強度
  • ESP32-S3の稼働時間
  • 最終受信日時
  • SDカードの異常状態
  • Arduino MEGAからのデータ途絶
  • センサー値の異常判定結果

9.今後検討する項目

今回の構想を実装へ進める前に、次の項目をさらに検討する必要があります。

  • 使用するESP32-S3開発ボードの機種
  • ESP32-S3の電源供給方法(後述)
  • Arduino MEGAとESP32-S3の具体的な配線
  • シリアル通信速度
  • JSONの正式な項目名
  • MQTTトピックの命名規則
  • MQTT Discoveryの設定内容
  • SDカードの古いファイルを削除する条件
  • Arduino MEGAが再起動した場合の処理
  • Wi-FiやMQTTが切断した場合の再接続処理
  • Home Assistantで積算電力量を計算する方法
  • ダッシュボードの表示方法

これらは、実際の部品やHome Assistantの環境を確認しながら、一つずつ決定していく予定です。

まとめ

今回の構想では、現在使用しているArduino MEGAのデータロガーをそのまま測定・表示・記録装置として残し、ESP32-S3を通信専用装置として追加します。

役割分担は次のとおりです。

Arduino MEGA
測定・計算・OLED表示・SDカード保存
        ↓
ESP32-S3
シリアル受信・Wi-Fi接続・MQTT送信
        ↓
Home Assistant
履歴保存・グラフ表示・積算・通知

この構成であれば、Home Assistantやネットワークに問題が発生しても、データロガー単体で測定と記録を継続できます。

まずはMEGA_SD_DISPLAY_CORRECT_V6.inoを基に、Arduino MEGA側の処理を整理し、SDカードの容量管理とシリアル出力を追加するところから始めます。

その後、ESP32-S3との通信、MQTT送信、Home Assistantへのセンサー登録へ段階的に進める予定です。

今回は実装検討の段階の整理ですが、今後は実際の配線、購入部品、スケッチの修正内容、Home Assistant側の設定について、さらに具体的に検討していきます。

追記1:Arduino MegaとESP32-S3の間に入れるロジックレベル変換モジュール

今回の構成では、Arduino Megaがソーラーパネルの測定、OLED表示、SDカードへの記録を担当し、ESP32-S3がWi-FiやMQTTを利用してHome Assistantへデータを送信します。

この2つのマイコンをUARTで接続するときに注意しなければならないのが、信号電圧の違いです。

Arduino Megaのデジタル信号は5Vですが、ESP32-S3のGPIOは3.3Vで動作します。そのため、Arduino Megaの送信端子をESP32-S3の受信端子へ直接接続することはできません。

ASIN「B0GL16RXWN」の変換モジュールは使用できるか

検討したASIN「B0GL16RXWN」の製品が、一般的なBSS138などを使用した「5V・3.3V対応の双方向ロジックレベル変換モジュール」であれば、今回の装置にも使用できます。

基本的な接続は、次のようになります。

  • Arduino Megaの5Vを変換モジュールの「HV」へ接続
  • ESP32-S3の3.3Vを変換モジュールの「LV」へ接続
  • Arduino Mega、ESP32-S3、変換モジュールのGNDを共通化
  • Arduino MegaのD18(TX1)を、変換モジュールのHV側チャンネルへ接続
  • 対応するLV側チャンネルを、ESP32-S3のUART RX端子へ接続

初期段階では、Arduino MegaからESP32-S3へ測定データを送る一方向通信を想定しています。
そのため、使用する変換チャンネルは1つだけです。

Arduino MegaのD19(RX1)は、この段階では接続しません。

今回の構成で使いやすい変換モジュール

信頼性や製品情報の分かりやすさを重視する場合は、次の製品が候補になります。

SparkFun Logic Level Converter – Bi-Directional(BOB-12009)

これは、5V系と3.3V系の信号を変換できる4チャンネルの双方向ロジックレベル変換基板です。

今回使用するのは1チャンネルだけですが、将来、ESP32-S3からArduino Megaへ設定情報や時刻情報を送り返す双方向通信へ拡張する場合にも対応できます。

安価なBSS138搭載4チャンネル変換モジュールも、基本的には同じ用途に使用できます。
ただし、端子表示、回路構成、基板の品質が製品によって異なるため、HV、LV、GNDの位置を確認してから配線する必要があります。

8チャンネルのTXB0108やTXS0108Eを搭載した変換基板もありますが、今回の一方向UART通信にはチャンネル数が多く、構成が複雑になります。今回の用途では、1~4チャンネル程度の変換モジュールで十分です。

抵抗分圧との違い

Arduino MegaからESP32-S3へ送るだけの一方向通信であれば、抵抗2本を使った分圧回路でも、5Vの信号を3.3V付近まで下げられます。

そのため、最小限の部品で構成するなら抵抗分圧、将来の双方向通信や配線の分かりやすさを重視するならロジックレベル変換モジュール、という選び方になります。

今回は今後の拡張性と配線の確認しやすさを考え、ロジックレベル変換モジュールを使用する構成が適していると考えています。

なお、変換モジュールは信号電圧を変換するための部品です。
ESP32-S3を動作させるための電源を供給するものではありません。
ESP32-S3の電源は、別途安定して供給する必要があります。

追記2:Arduino Megaの3.3V端子と、装置全体の電源構成

Arduino Mega 2560には3.3V端子があり、3.3Vの電圧を取り出すことができます。

ただし、この端子から供給できる電流は最大50mA程度です。
そのため、小型センサーやロジックレベル変換モジュールの基準電圧などには使用できますが、ESP32-S3本体の電源としては使用できません。

Arduino Megaの3.3V端子からESP32-S3へ給電できない理由

ESP32-S3は、Wi-Fi通信を行うときに大きな電流を必要とします。

動作状況によって異なりますが、通信時には200~500mA程度の電流が必要になることがあり、瞬間的な電流も考慮しなければなりません。

Arduino Megaの3.3V端子から供給できる最大50mAでは不足するため、ESP32-S3を接続すると、次のような問題が発生する可能性があります。

  • ESP32-S3が起動しない
  • Wi-Fi接続時に再起動する
  • 通信が不安定になる
  • Arduino Mega側の3.3V電源回路へ負担がかかる
  • 測定値やSDカードへの記録に影響が出る

したがって、Arduino Megaの3.3V端子からESP32-S3へ直接給電する構成は採用しません。

推奨する電源構成

今回の「ソーラーパネル出力電力測定器+Arduino Mega+ESP32-S3」という構成では、装置全体に余裕を持って電力を供給できる、安定化された5V・3A程度の電源を用意する方法が適しています。

5V電源を途中で分岐し、Arduino Mega側とESP32-S3側へ、それぞれ電源を供給します。

基本構成は、次のとおりです。

Arduino Mega側

Arduino Megaには5Vを供給し、既存の測定回路、OLED、RTC、SDカードなどを動作させます。

USB-B端子から5Vを供給する方法であれば、接続が分かりやすく、試作時にも扱いやすくなります。

既存の測定器が現在使用している電源構成はできるだけ維持し、ESP32-S3を追加したことによってArduino Mega側の測定やSDカード記録が不安定にならないようにします。

ESP32-S3側

ESP32-S3開発ボードには、分岐した5VをUSB端子または基板の5V/VIN入力へ供給します。

一般的なESP32-S3開発ボードには、5Vを3.3Vへ変換する電源回路が搭載されています。
そのため、開発ボードを使用する場合は、5V入力から給電する方法が分かりやすくなります。

ESP32-S3の3.3V端子は、ロジックレベル変換モジュールのLV側基準電圧として利用します。

つまり、この3.3V端子はArduino Megaから供給するのではなく、ESP32-S3開発ボード自身の3.3V出力を使用します。

裸のESP32-S3モジュールを使用する場合

電源回路を搭載していない裸のESP32-S3モジュールを使用する場合は、5Vから3.3Vへ変換するDC-DCコンバーターまたは3.3Vレギュレーターが必要です。

この場合は、余裕を持って500mA~1A以上を供給できる3.3V電源回路を用意します。

ただし、今回の装置ではUSB端子や5V入力端子を備えたESP32-S3開発ボードを使用する方が、配線や電源管理が簡単になります。

GNDは必ず共通化する

Arduino MegaとESP32-S3を別々の経路で給電する場合でも、UART通信を行うためにはGNDを共通にする必要があります。

次のGNDをすべて接続します。

  • Arduino MegaのGND
  • ESP32-S3のGND
  • ロジックレベル変換モジュールのGND
  • 5V電源のマイナス側
  • 必要に応じて既存の測定回路のGND

GNDが共通になっていないと、Arduino Megaが送信した信号の基準電圧をESP32-S3が正しく判断できず、文字化けや通信失敗の原因になります。

ロジックレベル変換モジュールへの電源接続

変換モジュールには、次の基準電圧を接続します。

  • HV側:Arduino Megaの5V
  • LV側:ESP32-S3開発ボードの3.3V
  • GND:装置全体の共通GND

HVとLVは、ESP32-S3本体を動かすための電源ではありません。
変換モジュールが5V側と3.3V側の信号電圧を判断するための基準電圧です。

今回の推奨構成

今回の装置では、次の構成を基本とします。

  1. 安定化された5V・3A程度の電源を用意する
  2. 5VをArduino Mega側とESP32-S3側へ分岐する
  3. Arduino MegaにはUSB-Bまたは適切な5V入力から給電する
  4. ESP32-S3開発ボードにはUSBまたは5V/VIN端子から給電する
  5. ESP32-S3開発ボード上で5Vを3.3Vへ変換する
  6. ESP32-S3の3.3V端子を変換モジュールのLVへ接続する
  7. Arduino Megaの5V端子を変換モジュールのHVへ接続する
  8. Arduino Mega、ESP32-S3、変換モジュールのGNDを共通化する

この構成であれば、Arduino Megaの3.3V端子に負担をかけず、ESP32-S3のWi-Fi通信に必要な電流も確保できます。

また、通信処理を担当するESP32-S3で一時的な再起動やネットワーク障害が発生しても、Arduino Mega側の測定、表示、SDカードへの記録を継続できるという、今回の構想の基本方針にも合っています。

今回の実装検討により、具体的な部品構成がほぼ決まったので、HOME Assistantに接続できる目処がたった。
本記事の冒頭で紹介した「構想編」の記事では、Claudeから、Arduino MEGAを流用するのではなく、ESP32でデータロガーを作り直す案も提案されていた。その方法であれば信号線のレベル変換は不要なので、ESP32で作り直す利点の1つがこの点であることに初めて気が付いた。ただし、今回の構成の方が問題の切り分けを行いやすい。

目次