連載一覧
- 第1回:プロジェクト概要
- 第2回:ESP32-S3 の環境構築
- 第3回:I/O の実装(ADC / PWM / DIO)
- 第4回:通信プロトコル(JSON コマンド)
- 第4.5回:デバイス化対応
- 第5回:Python アプリの API 実装
- 第6回:デバイスとしてまとめる(設計編)
- 第7回:実装編・応用編(GUI / アプリ化 / 拡張の可能性)
はじめに
中小企業の“ちょっとした困りごと”を解決したい
中小企業の現場では、ちょっとした設備の制御やデータ取得をしたい場面がよくあります。
しかし、専用機器は高価で、Visual Studio などの商用開発環境を導入するのもコストがかかります。
「もっと手軽に、もっと安く、必要な I/O を扱える仕組みが欲しい」
そんな現場の声に応えるために、
ESP32‑S3 と Python を組み合わせた “小型I/Oデバイス” を自作するプロジェクト を始めました。
なぜ ESP32‑S3 なのか
ESP32‑S3は安価で入手しやすく、USB シリアルを標準搭載しているため、
追加の変換基板なしで PC と通信できます。
ADC / PWM / デジタル I/O も豊富で、小型 I/O デバイスのベースとして最適です。
- 低コスト
- USB 直結
- I/O が豊富
- Wi‑Fi / BLE に拡張可能
- 無償の開発環境(Arduino / ESP-IDF)
今回は ESP32‑S3‑WROOM‑1 モジュールを搭載した開発ボード「ESP32‑S3‑DevKitC‑1(互換品)」を使用します。

なぜ Python なのか
中小企業では Visual Studio の導入コストがネックになることがあります。
そこで今回は、すべて無償で揃えられる VS Code + Python を採用しました。
- VS Code:無料
- Python:無料
- シリアル通信が簡単
- GUI やロギングまで Python だけで作れるので、将来的にアプリとしてまとめやすい。
- コードが読みやすく、引き継ぎやすい
現場で「ちょっと動かしたい」「手軽にデータ収集したい」というニーズに非常に向いています。
このプロジェクトで目指すもの
最終的には、以下のような 扱いやすい小型 I/O デバイス を完成させます。
ハードウェア、通信プロトコル、Python API まで一貫して設計します。
| 項目 | 内容 |
|---|---|
| ベース MCU | ESP32‑S3 |
| アナログ入力 | 2 ch |
| PWM 出力 | 2 ch |
| デジタル入力 | 6 ch |
| デジタル出力 | 6 ch |
| 通信方式 | USB シリアル(Wi‑Fi/TCP に拡張可能) |
| 制御方法 | Python アプリから読み書き可能 |
「安くて、簡単で、現場で使える」
そんな I/O デバイスを自分で作れるようになるのが、このシリーズのゴールです。
全体アーキテクチャ
Python アプリ
↓(USB シリアル通信 / JSON コマンド)
ESP32-S3
↓(I/O 制御)
ADC / PWM / デジタル入出力
Python 側は「Device クラス」を用意し、
ESP32 側は JSON コマンドを受け取って処理するだけのミニマル構成にします。
今後の連載予定
第1回:プロジェクト概要(この記事)
・目的とコンセプト
・全体アーキテクチャ
・最終ゴール(小型 I/O デバイス)
第2回:ESP32‑S3 の環境構築
・開発環境の準備(Arduino / ESP-IDF)
・ファームウェア書き込み
・USB シリアル接続
・最小動作確認(LED 点滅など)
第3回:I/O の実装(ADC / PWM / DIO)
・ピンマップ
・ADC / PWM / デジタル I/O の実装
・動作テスト
第4回:通信プロトコル(JSON コマンド)
・JSON コマンド仕様
・ESP32‑S3 側の受信ループ
・レスポンス形式
・デバッグ方法
第5回:Python アプリの API 実装
・Device クラス設計
・read_adc / set_pwm / read_dio / write_dio
・例外処理とタイムアウト
・簡易テストツール
第6回:デバイスとしてまとめる(設計編)
・ケース設計(3D プリントなど)
・配線と固定
・基板設計と回路のまとめ
第7回:実装編・応用編(GUI / アプリ化 / 拡張の可能性)
・基板の実装(はんだ付け・ケース組み込み)
・Python API を使った I/O 動作確認
・簡易 GUI(PySide)での制御アプリ作成
・拡張の可能性(Wi‑Fi / TCP、ロギング)
次回予告
次回は、ESP32‑S3 に最小限のファームウェアを書き込み、
USB シリアル経由で PC と通信できるところまで動作確認します。
・開発環境の準備
・ファームウェア書き込み
・USB シリアル接続
・簡単な I/O 動作テスト(LED 点滅など)
📘 ESP32-S3 IO デバイス連載のまとめ記事はこちら
👉 https://qiita.com/Noritama-Lab/items/cae87dc4cd67fe438c82