ブログ
ESP32 S3 と C3 と旧型はどれを選べばいい?
「どの ESP32 を買えばいいの?」という疑問に答えます。画面や機械学習なら S3、安い電池駆動センサーなら C3、Bluetooth Classic と最大のチュートリアル数なら旧型 ESP32。ラベルを読むまではどれも同じように見えますが、実はまったく別物です。
どの ESP32 を買えばいい?
画面、カメラ、機械学習系のアイデアなら S3、電池駆動センサーなら C3、Bluetooth Classic と一番豊富なチュートリアルが欲しいなら旧型 ESP32 がおすすめです。3つとも同じ Arduino コードが動きます。違うのは計算能力とメモリ。旧型は 240MHz のデュアル LX6 コア、S3 はベクトル命令と USB OTG を備えた新しい LX7、C3 は 160MHz のシングル RISC-V コアで、性能は半分ながら価格は4分の1です。
ESP32 S3 とは?
Espressif の2021年フラッグシップです。240MHz のデュアルコア Xtensa LX7、Wi-Fi 4、BLE 5、45 本の GPIO、最大 8MB の PSRAM を搭載。特筆すべきは無線ではなく計算能力で、ベクトル命令により本格的な機械学習のスループットが得られます。USB OTG のおかげで CH340 や CP2102 も不要です。ただし Bluetooth Classic は切り捨てられました。画面、カメラ、オーディオ用途ならこれ一択です。
ESP32-C3 とは?
160MHz のシングルコア RISC-V チップで、Wi-Fi と BLE 5.0、約 22 本の GPIO、ディープスリープ時は約 5µA という低消費電力が特徴です。ESP32-C3 の使い道は?電池駆動センサー、リモコン、単一の仕事しかしない端末全般です。ベアモジュールなら 2 ドル以下。セカンドコアも PSRAM もありませんが、仕事が1つなら十分すぎる性能です。
自分の ESP32 がどれかを確認する方法は?
モジュールのシールドに刻印された型番を読みます。ESP32-WROOM-32 なら旧型、ESP32-S3-WROOM-1 なら S3、ESP32-C3FH4 なら C3 です。刻印が無い場合のモデル特定方法は、115200 baud でシリアルモニターを開いてリセットすると、ROM が「Chip is ESP32-S3 (revision v0.1)」と表示します。それ以外の見分け方としては、ピン数を数えるか、USB チップを確認する方法があります。私もかつて BLE のバグに1時間悩んだことがありますが、実は C3 のシングルコアが原因でした。名前はずっと基板に印刷されていたのに、です。
自分の ESP32 の基板はどれ?
基板とチップは別の質問です。基板がどのモジュールを使っているか(WROOM、WROVER、MINI)は PSRAM の有無に関わり、プログラミングには影響しません。基板名はシルク印刷に書かれていて、DevKitC、NodeMCU-32S、LOLIN32、ESP32-CAM などです。刻印が無い場合の基板の見分け方は、ピン数を数えます(旧型 30 ピン、DevKitC は 38 ピン、C3 mini は 24 ピン)。さらに USB チップも確認します。ピン配置を調べたい場合は、これらの手がかりを Arduino IDE のボード一覧と照合してください。
ESP32 の選び方は?
ESP32 の選び方は、結局2つの質問に集約されます。どの無線を使うか、どれだけの計算能力が要るか。Bluetooth Classic が要るなら旧型(S3 と C3 は非対応)、画面・カメラ・機械学習なら S3、とにかく安い電池駆動ノードなら C3。それ以外なら、チュートリアルの数の時点で旧型の勝ちです。S3 と C3 のどちらにするかは、データシートよりプロジェクトが決めます。迷ったら2つとも買いましょう。合計で6ドルですから。
最初の1枚に買うべき ESP32 は?
約 5 ドルの 30 ピン旧型 devkit です。地球上で最もドキュメントが充実したハードウェアで、覚えたことはすべて他のボードに流用できます。画面を使う予定があるなら、最初から S3 DevKitC-1 に飛びましょう。「最高の ESP32 基板はどれか」と聞かれることがありますが、「最高」は機能であって、基板の名前ではありません。
旧型 ESP32 はもう古いの?
いいえ。今も量産中で、ESP-IDF や Arduino、MicroPython の基準として現役です。Bluetooth Classic に対応しているのは旧型だけなので、オーディオ系プロジェクトでは今も第一候補です。恐竜を買っているわけではありません。電源の FAQ では電池持ちの話をまとめています。
価格に本当に差はあるの?
みんなが思う以上にあります。まとめ買いなら、C3 モジュールは約 1.5 ドル、旧型 WROOM-32 は約 2〜3 ドル、S3 は約 3〜5 ドル。devkit は互換品が 4〜12 ドル、正規品は 12〜25 ドル。私が最後に買った C3 super-mini 20 個は、送料込みで1個 1.80 ドルでした。この差で予算が変わるなら、そもそもプロジェクトはそこまで要求の高いものではないでしょう。
電池駆動と BLE ならどの ESP32?
基本は C3 です。一番安くて消費電力も最小。S3 は BLE 5 と優れたスリープ設定で余裕を持てます。どちらもスリープ時は一桁 µA 台、旧型は約 10µA です。実際の選び方は、チップよりデューティサイクルで決まります。99% スリープしているノードなら、どちらでも数ヶ月動きます。無料の ESP32 シミュレーター なら、まず消費電流の確認ができます。
この記事のテーマのプロジェクトは、sensbench の無料シミュレーターでそのまま実行できます。回路は配線済み、ファームウェア同梱、アカウントもインストールも不要です。