ブログ
ESP32とは?完全初心者向けのやさしい解説
初心者向けに「ESP32とは何か」と、最初に浮かぶ疑問へやさしく答えます。基板がまだ届いていない人のために書きました。
ESP32とは何ですか?
ESP32は、Wi-FiとBluetoothを内蔵した低価格のマイコンで、Espressif Systems(エスプレッシブ・システムズ)が製造しています。プロセッサーもメモリーも1つのチップに丸ごと収まった小さなコンピューターで、モジュール1個あたり2〜5ドル。この価格で、ものづくりの世界の「標準の頭脳」になったのです。スマートプラグやロボット掃除機、無数の趣味の工作に使われ、Arduino IDEでC/C++を動かせるほか、MicroPythonやEspressif純正のESP-IDFにも対応しています。正直に一言でまとめるなら、ものをインターネットにつなぐ、最も安い方法。それがESP32です。
ESP32とは?チップと基板のどちら?
この質問をする人は、たいていチップそのものではなく開発ボードのことを指しています。ベアのモジュール(一般的なのはESP32-WROOM-32)には、電圧レギュレーター、USBインターフェース、アンテナが別途必要です。そこで誰もが、それらを実装済みの開発ボードを買います。開発キットはUSBに挿すだけで使え、ピン配置も基板に印刷されています。チップと基板はよく混同されるので、ここで整理しておきましょう。
ESP32とは何ですか?(Arduinoユーザー向け)
「a ESP32」という書き方は、同じ質問のスペル違いで、たいていArduinoから移ってきた人が使います。答えは、Wi-Fiが内蔵されていてArduinoのスケッチが動く基板、です。Arduino IDEではESP32が標準ボードとして登録されているので、Unoのコードもピン番号を直す程度でほぼ移行できます。ESP32はArduinoそのものではありませんが、同じエコシステムの中に住んでいます。
ESP32は何に使われますか?
一言で言えば、ものをインターネットにつなぐことです。実際の用途は、データロガー、スマートホームのコントローラー、扉の監視、ロボットカー、LED照明、ウェアラブル、産業用の試作など多岐にわたります。無線がチップに内蔵されているため、マイコン+別売りのWi-Fiモジュールという組み合わせを1チップで置き換えられます。Espressifは年間数千万個を製品に搭載しています。最初の工作には、作例ページに配線とコードをまとめています。
ESP32の初心者向けの使い道は?
初心者編として現実的な最初の工作は、土が乾いたら通知してくれる自動水やり、ガレージの扉オープナー、温度ダッシュボード、Wi-Fi対応コンセントなどです。パターンはいつも同じで、センサーを読み、ボタンに反応し、サーバーと通信する。はんだごてを握る前に、無料シミュレーターで試してみるのがおすすめです。
ESP32は誰が作っているの?
Espressif Systemsです。上海に本拠を置くファブレスの半導体メーカーで、シリコンの設計は自社、製造は外注しています。ESP8266や、新しいESP32-S3、C3、C6、P4ファミリーも同社の製品です。このチップが広まった理由は開発体験にあります。無料のツールチェーン、充実したドキュメント、安価な基板。この3つが揃っているからです。
ArduinoとESP32の違いは何ですか?
一方はプラットフォームで、もう一方はチップです。Arduinoはエコシステム、つまり基板、簡素化されたC++フレームワーク、IDEの総称で、ESP32はそのフレームワークを動かすシリコンです。定番のUnoは8ビットのAVRプロセッサーでネットワーク機能がありません。一方ESP32は32ビット、デュアルコア、Wi-FiとBluetooth内蔵。Unoができることはすべてできて、さらにワイヤレスも付いてきます。
ESP32のBOOTボタンは何をするもの?
GPIO0に繋がれたただのボタンで、電源投入時にだけ意味を持ちます。リセット中に押したままにすると、チップはブートローダーモードに入り、新しいファームウェアを受け付けます。それ以外のときは、単にアプリを起動するだけです。実行中の押しても何も起きません。基板によってはBOOTと印刷され、IO0と印刷されることもあります。アプリが動き始めたら、このボタンは無料の入力として流用できます。私はセンサー工作で再調整スイッチとして使ったことがあります。
ESP32 Marauderとは何ですか?
ESP32をWi-Fi・Bluetoothの監査ツールに変えるコミュニティ製ファームウェアです。ネットワークのスキャン、クライアントの調査、活動の記録ができます。これは自分自身のネットワークを許可のもとでテストするためのセキュリティ研究プロジェクトであり、通常の開発用ではありません。コーディングを学んでいる間は触らないほうがよいでしょう。