コンテンツにスキップ

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は負荷に直接電力を供給しません。制御信号を出力し、別のモジュールが電力を行います。

GPIO ピン付き 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 は入力専用です
  • GPIO1GPIO3 はファームウェアとログの UART として使用されることが多い
  • 特定の開発ボード上の LED、ボタン、またはその他の回路によって、いくつかのピンが占有される場合があります

ストラップピンは起動時のブートモードを決定します。外部回路がそのようなピンを間違った方法で引っ張る場合、ESP32 は起動できないか、ファームウェア更新モードに入る場合があります。

実践的なルール: 最初のバージョンでは、特定のボードのピンアウトからピンを使用し、役割を理解していない限り、BOOTFLASHSTRAPTX0RX0GPIO6-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 が必要で、ネットワークヒーターでは完全な安全な電力セクションが必要です。

関連資料