この記事では、ESP32-S3 を使った 24V 対応 I/O デバイス「ESP32IO」の完成版アップデート内容をまとめています。
- DI/DO の絶縁化(フォトカプラ方式)
- ADC の安定化(オペアンプバッファ)
- I2C センサ対応(BME280 / MPU6050 / VL53L1X / OLED)
あらゆるソフトから制御できる I/Oプラットフォーム として完成しました。
これまでの開発記事はこちらにまとめてあります
👉 https://qiita.com/Noritama-Lab/items/cae87dc4cd67fe438c82
📸 完成品の外観
※今回から ESP32-S3-DevkitC-1 を ESPRESSIF の正規品に変更しています。設計した基板は 44 ピンのものなら互換品にも対応しています。使用する場合は、ファームウェア(Config.h)のピン番号だけ開発ボードに合わせて変更してください。
- ファームウェアはこちら
👉 https://github.com/noritama-lab/esp32io-firmware - 基板データはこちら(3Dプリンタのデータは未更新。完成版には使用できません)
👉 https://github.com/noritama-lab/esp32io-hw - テスト用のUIはこちら
👉 https://github.com/noritama-lab/esp32io-test-ui/releases/tag/t-v0.1.4
🔄 以前からの変更点(最終版で改善したポイント)
今回の完成版では、試作段階から以下の 3 点を大きく改善しました。
1. DI/DO の絶縁化(フォトカプラ方式へ変更)
従来はトランジスタベースの簡易回路でしたが、産業用 24V I/O を安全に扱うため、フォトカプラによる絶縁方式に変更しました。
2. ADC の安定化(オペアンプバッファ追加)
0–10V 入力の安定性を高めるため、オペアンプによるバッファ回路を追加しました。
3. I2C 機能の追加(センサー連携が可能に)
完成版では I2C デバイスを直接扱える機能を追加しました。
以下のセンサは接続するだけでデータ取得が可能になります。
| 機能 | センサ名 |
|---|---|
| 温湿度・気圧センサ | BME280 |
| 3軸加速度センサ | MPU6050 |
| レーザー距離センサ | VL53L1X |
| OLEDディスプレイ | SSD1306 |
Python API からは以下が利用できます:
- i2c_scan
- i2c_write(汎用センサ用)
- i2c_read(汎用センサ用)
- get_sensors
- set_oledx
これにより、I/O デバイス+I2C センサーの複合利用が可能になりました。
📐 最終仕様まとめ
■ I/O 構成
| 種類 | チャネル | 電圧 | 備考 |
|---|---|---|---|
| DI | 6ch | 3.3~24V | フォトカプラ絶縁 |
| DO | 6ch | 3.3~24V / 50mA | フォトカプラ絶縁 |
| ADC | 2ch | 0–10V | バッファ回路により安定化 |
| PWM | 2ch | 3.3V | ESP32-S3直結 |
| i2c | 1ポート | - | BME280, MPU6050, VL53L1X, SSD1306対応※ |
※ i2c_write / i2c_read に JSON を送ることで、汎用的な I2C センサも制御できます。
■ 通信
- USB CDC(仮想COM):ローカルPCから高速・安定制御
- Wi‑Fi(HTTP API):LAN内のどこからでもアクセス可能
- 対応環境:Python / Node‑RED / VBA / PowerAutomate / Webブラウザ etc...
■ 電源
- USB給電(I/O は外部 3.3~24V)
🎁 まとめ
ESP32IO は 「ソフトウェアと現実世界をつなぐリモート I/O プラットフォーム」 として完成しました。
USB または Wi-Fi で接続するだけで、統一された JSON API を通して、Python・Node‑RED・VBA・Power Automate・Webブラウザなど、さまざまなソフトウェアから 24V 対応のデジタルI/O、アナログ入力、PWM、I2C センサを制御できます。
今回の完成版では、
- フォトカプラによる 24V I/O の絶縁化
- オペアンプバッファによる ADC の安定化
- I2C センサ・OLED への対応
を追加しました。
今後は、Python・Node‑RED・Excel VBA・Power Automate などを使った具体的な活用例やチュートリアルも順次公開していく予定です。
「この I2C センサにも対応してほしい」「こんな使い方ができないか」といった要望や質問がありましたら、お気軽にコメントください。
今後も ESP32IO の機能追加や活用事例を公開していきますので、気に入っていただけましたら、ぜひフォローをお願いします。




