2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【現在地】ESP32-S3 IO プラットフォーム「esp32io」でできること(2026年7月時点)

2
Last updated at Posted at 2026-07-24

ESP32-S3を使って、Python・Excel・Node-RED・Home Assistantなど、好きなソフトから制御できる汎用I/Oデバイス「esp32io」シリーズを個人開発しています。

この記事は、「今このプロジェクトで何ができるか」を最短で把握できるハブ記事です。開発の詳しい経緯は本文後半の「なぜこの形になったか」に、実際に試した活用例は「活用例」にまとめています。


📦 何ができるか

  • USB / Wi-Fi(HTTP) / MQTT、好きな通信方式でESP32-S3のI/Oを制御
  • DI×6 / DO×6 / ADC×2 / PWM×2 / I2C(BME280・MPU6050・VL53L1X・OLED対応)
  • Python・Node-RED・Excel VBA・curlなど、JSONさえ扱えれば何からでも制御可能
  • MQTT版はHome AssistantのMQTT Discoveryに対応。配線するだけでYAML設定なしにエンティティが自動登録される
  • 工場の24V機器(オムロンLYシリーズ相当のリレーなど)を想定した絶縁・保護回路つきのハードウェア設計も公開

image.png


🏠 Home Assistantでの見え方

初回セットアップは、http://<device_ip>/ または http://ESP32IO-MQTT-XXXXXX.local(mDNSホスト名)で設定ポータルにアクセスし、Wi-Fi情報とMQTTブローカーの接続先を入力するだけです。詳しくは esp32io-mqtt-firmware のREADMEを参照してください。

image.png

電源を入れてこの設定をするだけで、以下のようにDI/DO/ADC/PWMが個別エンティティとして登録できます。複数台を同一ネットワークに追加しても、デバイスIDがデバイス固有の値のためトピックが衝突せず、それぞれ別デバイスとして認識されます(実機2台で確認済み)。

image.png


🔀 HTTP版・MQTT版、どちらを使うか

こんな人におすすめ 選ぶべきもの
Home Assistantで自動検出したい、非同期でイベント駆動したい MQTT版esp32io-mqtt-firmware
シンプルなHTTPリクエストで叩きたい、ブローカーを立てたくない HTTP版esp32io-firmware
Excel VBA・curlなど軽量な環境から使いたい どちらでも可(生JSON API)

Pythonクライアントは両版ともPyPI公開済みです(pip install esp32io / pip install esp32io-mqtt)。工場の24Vリレー・センサーを安全に接続したい場合は esp32io-hw を参照してください。


🚀 はじめに

  1. まずはESP32-S3-DevKitC-1などの開発ボードに、用途に応じて esp32io-firmware または esp32io-mqtt-firmware を書き込み
  2. 3.3V〜5Vのロジックレベルで使う場合は、開発ボードだけでそのまま利用可能です(esp32io-hw は不要)
  3. 工場の24V機器など、絶縁・保護回路が必要な環境で使う場合は esp32io-hw のハードウェアを追加で用意
  4. Pythonから使う場合は pip install esp32io または pip install esp32io-mqtt
  5. Node-REDからは標準のHTTPリクエストノード、またはMQTTノードでそのまま接続可能

🧰 動作環境をまだお持ちでない方へ

MQTT版を試すには、MQTTブローカー(Mosquitto等)とHome Assistantの環境が必要です。お持ちでない場合は、以下の記事で一括構築できます。

👉 Raspberry Pi 4 で Node-RED / Mosquitto / Home Assistant を Docker Compose で一元管理する


📚 活用例

今後、Node-REDやExcelからの制御など、他の活用例も順次追加していきます。


📖 なぜこの形になったか

最初は「シリアル通信でPythonから制御したい」という小さな動機から始まりました。JSONでコマンド・応答をやり取りする設計にしていたことが、その後の展開でそのまま活きています。

  • USB(シリアル)版 → 配線の制約をなくすためWi-Fi(HTTP)版へ
  • HTTP版 → ポーリング特有の不安定さ(応答待ちのタイムアウト、状態変化の取りこぼし)が気になり、MQTT版へ
  • MQTT版 → Home Assistantとの相性の良さから、Discovery対応・Pythonクライアント公開
  • ハードウェアも、家庭用途から工場の24V機器を扱う産業用途まで見据えた絶縁・保護回路つきの設計に発展

各段階の詳しい技術的な経緯は、以下にまとめています。


🗺️ プロジェクト全体像

リポジトリ構成やライセンス、最新情報はGitHub organization側にまとめています。

👉 github.com/noritama-lab


⚠️ ご利用される場合

個人開発のプロジェクトなので、認証や第三者検証などは受けていません。特に工場設備など実運用で使う場合は、事前にご自身の環境や負荷条件に合うか確認をお願いします。詳しい注意事項はesp32io-hwのREADMEにまとめています。


質問・要望があれば、お気軽にコメントください。今後も機能追加や活用事例を公開していく予定です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?