ESP32 コントローラ¶
ESP32は、Wi-Fi、Bluetooth、および豊富なペリフェラルを備えたEspressifマイクロコントローラのファミリです。DIYデバイスでは、スタンドアロンモジュールを構築する必要がある場合に選択されることが多く、ネットワークに接続し、センサーを読み取り、ブラウザにページを表示し、シンプルな出力を制御できます。
3Dプリンタ周辺のデバイスの場合、ESP32は「別の電源ボード」としてではなく、スモールネットワークコントローラとして有用です: 温度/湿度センサー、換気モジュール、Webインターフェース付きシンプルなフィルター、独立したカメラ監視、またはスタンドアロン乾燥機です。
ESP32が有用な場所¶
典型的なタスク:
- Wi-Fi 温度・湿度センサー
- MOSFETモジュール経由のセパレートファンコントローラ
- 低電圧信号でリレーまたはSSRを制御
- I2C経由のOLEDディスプレイ
- SPI または UART 経由の RFID/NFC リーダー
- 独立した電源を備えたサーボ
- ステータスと設定のシンプルなWebページ
- MQTT、Home Assistant、または独自のローカルロジックとの統合
- Klipperの一部である必要のない自律的なプロトタイプ
ESP32は、デバイスがプリンタから独立して生活し、ネットワーク経由でデータを交換する場合に優れています。タスクが単にKlipperにピンを追加することである場合、通常はRP2040、STM32、または既成のプリンタボードを見る方が良いです。
典型的なデバイスアーキテクチャ¶
ESP32は負荷に直接電力を供給しません。制御信号を出力し、別のモジュールが電力を行います。

出典: Wikimedia Commons、Edwiyanto、CC BY-SA 4.0
実践では、これは次のようになります:
- ESP32 は開発ボード上の USB または安定した
5Vから電力を供給されます - ESP32ロジック自体は
3.3Vで実行されます - センサーは GPIO、I2C、SPI、UART、または ADC に接続されます
- ファン、LED ストリップ、DC ヒーターは MOSFET またはドライバー経由で接続されます
- ネットワークヒーターは適切な AC SSR/リレーと安全な電力セクションを通じてのみ接続されます
- サーボはセパレートな
5V/6Vソースから電力が供給されます。ESP32 は信号のみを提供します
GPIO は負荷の電源ではありません。ピンはドライバ入力を切り替えることができますが、ファン、ヒーター、リレー、サーボ、または LED ストリップに直接電力を供給することはできません。
ボード上の ESP32 とは何か¶
「ESP32」というラベルはさまざまなことを意味します:
- ESP32 チップ自体
- ESP32-WROOM などのチップ、フラッシュメモリ、アンテナを備えたモジュール
- USB、電源レギュレータ、ボタン、公開ピンを備えた開発ボード
- 新しいバリアント: ESP32-S3、ESP32-C3、ESP32-C6 など
最初のプロジェクトでは、ベアモジュールより開発ボードを使用する方が便利です。開発ボードにはすでに USB、電源レギュレータ、BOOT/EN ボタン、ブレッドボード用のピンがあります。
購入前に以下をチェック:
- ボードとチップの正確な名前
- USB-C またはマイクロ USB があるかどうか
- どの USB-UART または組み込み USB が使用されているか
- スキーマティックとピンアウトがあるかどうか
- どの GPIO が実際に公開されているか
- ボード上のどのような電源レギュレータがあるか
- 適切なアンテナと周辺スペースがあるかどうか
- ボードサイズがエンクロージャに適合するかどうか
3.3V ロジック¶
ESP32 は 3.3V ロジックで動作します。これは、GPIO 上の典型的な HIGH レベルが 5V ではなく約 3.3V であることを意味します。
重要なこと:
5Vを ESP32 GPIO に適用しないでください5Vセンサーとモジュールの場合、レベルコンバーターが必要な場合があります- I2C プルアップは、バスが ESP32 に接続されている場合、
3.3Vに向かう必要があります - 一部の既製 MOSFET/SSR モジュールは
3.3Vから確実に動作しない場合があります - 負荷電力は GPIO から取ることはできません
多くのセンサーは既に 3.3V バリアントで入手可能です。ESP32 の場合、これが最適な選択です。
電源¶
開発ボードには通常 USB 入力と 5V/VIN ピンがあり、ESP32 自体は 3.3V レギュレータによって電力が供給されます。
一般的な間違い:
- 弱い USB ケーブルから ESP32 に電力を供給する
- ボード上の
3.3Vピンからサーボ、ファン、またはリレーに電力を供給する - その電流がどこから来るのかを理解せずに
5Vピンに重い負荷を接続する - ESP32 と低電圧ドライバー間で共通 GND を接続しない
- Wi-Fi の開始時に電圧低下により ESP32 がリセットされる
Wi-Fi はパルス電流を描きます。安定した動作のために、良好なケーブル、レギュレータ、ボード上のコンデンサ、および負荷の独立した電源が重要です。
GPIO と特別なピン¶
ESP32 には多くの GPIO がありますが、すべてのピンが同等に便利なわけではありません。
古典的な ESP32 では:
- いくつかのピンはチップローディングに結び付けられており、これらはストラップピンです
GPIO6-GPIO11は通常フラッシュメモリによって占有されており、使用されませんGPIO34-GPIO39は入力専用ですGPIO1とGPIO3はファームウェアとログの UART として使用されることが多い- 特定の開発ボード上の LED、ボタン、またはその他の回路によって、いくつかのピンが占有される場合があります
ストラップピンは起動時のブートモードを決定します。外部回路がそのようなピンを間違った方法で引っ張る場合、ESP32 は起動できないか、ファームウェア更新モードに入る場合があります。
実践的なルール: 最初のバージョンでは、特定のボードのピンアウトからピンを使用し、役割を理解していない限り、BOOT、FLASH、STRAP、TX0、RX0、GPIO6-GPIO11 とマークされたピンを避けてください。
ESP32 上の ADC¶
ESP32 は ADC を介してアナログ電圧を測定できますが、これは実験室マルチメータではありません。
重要なこと:
- 古典的な ESP32 には ADC1 と ADC2 があります
- ADC2 は Wi-Fi と競合するため、Wi-Fi デバイスでは ADC1 ピンを使用する方が良いです
- 測定範囲は減衰設定に依存します
- 測定にはキャリブレーションが必要な場合があります
- GPIO セーフレベル以上の電圧を ADC に適用することはできません
- NTC サーモアセンブルは通常、電圧分圧器とファームウェア内の正しいテーブル/モデルが必要です
正確な温度センサーが必要な場合、デジタルセンサーまたは既知のライブラリを備えた既製モジュールを使用する方が簡単なことが多い。NTC サーモアセンブルの場合、ESP32 は機能しますが、回路と ADC 設定をチェックする必要があります。
PWM、I2C、SPI、UART¶
ESP32 はペリフェラルに便利です:
- LEDC 経由の PWM はファン、バックライティング、サーボ信号に適しています
- I2C は OLED ディスプレイと多くのセンサーに適しています
- SPI は RFID モジュール、ディスプレイ、高速デバイスに適しています
- UART は GPS、いくつかのセンサー、その他のコントローラ、デバッグに適しています
ESP32 は柔軟な GPIO マトリックスを備えています: 多くの信号を異なるピンに割り当てることができます。しかし、これはどのピンでも常に良い選択肢であることを意味しません。特定のボードの制限、フラッシュメモリ、ブートピン、および占有 UART を依然として考慮する必要があります。
ESP32 と Klipper¶
ESP32 は、主な MCU パスではなく、プリンタ近くの別の Wi-Fi/IoT デバイスとして見られるべきです。
Klipper はホストと 1 つ以上の MCU で構成されています。新しい追加 MCU の場合、通常はより実用的です:
- RP2040
- STM32
- 既製の 3D プリンタボード
ESP32 はプリンタシステムと別にデータを交換できます: MQTT、HTTP API、Home Assistant、独自のサーバー、または別の統合経由。しかし、これはもはや Klipper 設定に [mcu] を追加し、ピンを直接使用することと同じではありません。
購入前にチェックすること¶
ESP32 ボードを購入する前に、以下をチェック:
- 正確なモデル: ESP32、S3、C3、C6 など
- ロジック電圧
- USB があるかどうか、ボードがどのようにフラッシュされるか
- 公式ピンアウトまたはスキーマティックがあるかどうか
- GPIO に安全なピンがどれか
- 入力専用のピンがどれか
- フラッシュ/PSRAM、USB、UART、または LED によって占有されているピンがどれか
- タスク用に十分な ADC/I2C/SPI/UART があるかどうか
- ボードがどのようにパワーされるか
- エンクロージャに適合するかどうか
- シナリオ用のライブラリまたはファームウェアがあるかどうか
マーケットプレイスからのボードがスキーマティックと適切なピンアウトを持たない場合、実験に使用できますが、長時間無人で実行する必要があるデバイスには適していません。
一般的な間違い¶
5Vを ESP32 GPIO に適用する- GPIO から負荷に電力を供給する
- 弱い
3.3Vピンからサーボまたはリレーに電力を供給する - MOSFET/ドライバーとの共通 GND を忘れる
- センサーの ADC2 ピンを選択し、その後 Wi-Fi を有効にする
- ESP32 が起動しないようにブートストラップピンを使用する
GPIO34-GPIO39を出力として使用する- ピンアウトとスキーマティックなしでモジュールを購入する
- 「Wi-Fi を備えた ESP32」が自動的に安全なネットワークヒーター制御を意味すると思う
- パワーエレクトロニクスをファームウェアに置き換えようとする
キーポイント¶
ESP32 は自律的な Wi-Fi デバイスの良い選択です: センサー、Web インターフェース、シンプルな換気制御、フィルター、ディスプレイ、およびペリフェラル。
しかし、ESP32 は 3.3V ロジックで動作し、特別なピンを備えており、負荷に直接電力を供給するべきではありません。電力回路では、MOSFET、ドライバー、リレー、または SSR が必要で、ネットワークヒーターでは完全な安全な電力セクションが必要です。
関連資料¶
- Espressif: ESP32 Wi-Fi & Bluetooth SoC — ESP32 ファミリ、モジュール、開発ボード、およびドキュメントへのリンクの公式概要
- Espressif: ESP32 Series Datasheet — チップの特性、ペリフェラル、ADC、PWM、UART、I2C、SPI、ピン制限
- ESP-IDF Programming Guide: GPIO & RTC GPIO — GPIO テーブル、ストラップピン、入力専用ピン、フラッシュ/PSRAM ピン、および Wi-Fi による ADC2 制限
- Espressif: ESP32 Hardware Design Guidelines — パワー、ストラップピン、GPIO、ADC、およびボード設計の推奨事項
- Arduino-ESP32: LED Control API — ファン、バックライティング、その他の PWM 信号の Arduino-ESP32 の PWM/LEDC
- Klipper: Code overview — MCU の Klipper アーキテクチャコンテキストおよびソースツリーでサポートされているマイクロコントローラバックエンドのリスト