この記事ではESP-WROOM-32の基本的な使い方について解説します。
ESP-WROOM-32は低価格(1000円以下)で買うことができるWiFi/Bluetoothモジュールです。
上の画像は今回使用したESP-WROOM-32の開発ボードで、銀色の四角いものがESP-WROOM-32本体です。開発ボードとはこのESP-WROOM-32を扱いやすいようにDIP化したものです。販売しているメーカーによって端子数が違ったり、リセットボタンがついていたりして、形は違いますが、仕様や使い方は基本的にはどれも同じです。
ちなみに、以前記事を書きましたが、このESP32にカメラが付いたESP32-camというモデルもあります。
目次
必要なもの・実行環境
- ESP-WROOM-32
(今回のメインである格安マイコン)
- USBシリアルコンバータ
( ESP32-CAM に書き込みを行うための機器)
- LED
- 抵抗(基本的には何Ωでも大丈夫です。)
- パソコン(Windows 10, 64bit)
手順
- USBシリアルコンバータのセットアップ
- Arduino IDE のインストール
- Arduino IDE の設定
- パソコンと ESP32の接続
- コードの書き込みと動作確認(Lチカ)
※①のUSBシリアルコンバータのセットアップ、及び、②のArduino IDE のインストールについては以下の記事を参照してください。
Arduino IDE の設定
まず、ボードの追加を行います。
「ファイル」 > 「環境設定」 へと進み、 「追加のボードマネージャのURL」の欄に https://dl.espressif.com/dl/package_esp32_index.json と入力し、OKをクリックします。
次に、 「ツール」 >「ボード」 > 「ボードマネージャ」 へと進み、検索欄に”ESP32”と入力し、出てきた項目のインストールボタンをクリックします。
最後に↓の図のようにボードの設定を行ってください。
パソコンと ESP32の接続
USBリアルコンバータとESP32を以下のように接続して、パソコンに接続してください。
ESP32 | USBリアルコンバータ側 |
3V3 | 3V3 |
GND | GND |
RX | RXD |
TX | TXD |
ここで一つ注意点ですが、esp32に書き込みを行う際は
IO0 を GND に落とし( IO0 と GND を接続)、書き込みモードにする必要があります。
逆に、書き込みモードの状態ではプログラムを実行させることはできないため、コードを書き込んだ後は、 IO0 と GND との接続を解除してあげる必要があります。
続いて、パソコンと ESP32の接続を行います。
まず、接続する前に Arduino IDE を開き 「ツール」>「シリアルポート」を確認し、何も選択されていないことを確認します。
次に、 esp32と結線したUSBシリアルコンバータをパソコンに差し込んだら、以下の手順で一度ESP32をリセット(再起動)します。
- ESP32のENピンを一度GNDに接続して、ESP32の電源を落とす。
- ESP32のENピンを3V3ピンに接続し、ESP32を再起動する。(再起動後もENピンと3V3ピンは接続したままにする。)
※このリセット操作を行わないと書き込みモードにならず、書き込みができません。
上記のリセット操作を行ったら、もう一度 「ツール」>「シリアルポート」 を開きます。
すると今度は↓の画像のように何かしらのポートが選択されているはずです。
コードの書き込みと動作確認(Lチカ)
コードの書き込み
基本的な動作の確認を行うためLチカ(LEDをチカチカ点滅させること)を行います。
Arduino IDE のスケッチに以下のコードを書き込み、左上の「➡」ボタンを押して、コンパイル及びESP32への書き込みを行ってください。
const int LED_BUILTIN = 12;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
書き込みが正常に終了すると、「画面下にボードへの書き込みが完了しました。」と表示されます。
もし、
esptool.py v2.6
Serial port COM3
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x00)
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x00)
というようなエラーが出る場合は↓こちらの記事を参考にしてください。
プログラム実行
まず、USBをパソコンに接続したままにして、IO0 と GND との接続を解除します。そして先ほどと同様の手順でesp32のリセット操作を行います。これでESP32はプログラム実行モードになります。
後は以下の画像のように
IO12 – 抵抗 – LED – GND
と配線するとLEDが1秒おきに点滅します。
※LEDには向きがあります。長い足の方が+側、短いほうが‐側となるように接続してください。
※また、抵抗を接続せずにLEDを接続するとLEDが破裂したりする危険性があるので必ず抵抗を接続してください。(抵抗が内蔵されているタイプのLEDはそのまま接続できます。)