ESP32でLチカするまでの設定
この記事では、Arduino IDEでESP32の開発ができるようにするまでの手順を詳しく解説します。Arduino IDEのインストール方法と、はじめてESP32を使う方のために簡単なサンプルプログラムとして、Lチカ(LED点滅)をやってみます。
はじめに
私の開発環境はこちらになります。Windowsでもほとんど同じ内容でできますので、適宜読み替えてください。
項目 | バージョン |
---|---|
ESP32ボード | ESPRESSIF ESP32-WROOM-32D(ESP32 DevkitC V4) |
Arduino IDE | Version 2.1.2-nightly-20230815 |
パソコン | macOS Ventura 13.5 |
ESP32とは、上海に拠点を置くEspressif Systems社が開発したSoC(チップ)になります。下の写真の銀色の四角部分とWiFiアンテナ部分が本来のESP32になります。それ以外の部分は各社で自由に作られてます。
またESP32はWi-FiとBluetoothの無線通信を標準で備えてます。クロックス周波数も240MHzと高速で、ハイスペックながら低価格で購入できるマイコンボードです。ちなみにArduino Uno R3のクロック周波数が16MHz、Raspberry Pi Pico W が133MHzです。
ESP32はESP-IDFというツールで開発することができますが、Arduino IDEを使ってArduino言語でも開発が可能となってます。Arduinoをやったことある人でしたら、ESP32の開発もすんなりできるはずです。ここら辺がESP32が人気な理由でもあるでしょう。
さて、Amazonなどで検索しますとESP32のボードは種類が豊富でどれを選べば良いか分からないという方も多いと思います。結論から言いますと、技適が通っていて38ピンある「ESP32 DevkitC」をおすすめします。下記の製品どちらも技適が通っていてESP32 DevkitCとして開発できるのでトラブルが少ないと思います。実際私の仕事でも多用しているボードです。
Arduino IDE のインストール
それでは実際にESP32の開発を進めていきましょう。Arduino IDEをお持ちでない場合は、下記ページからダウンロードします。184.3MBのdmgファイルでした。 Software | Arduino
上記のページから macOS(Version 10.14: “Mojave” or newer, 64 bits) をダウンロードしました。Arduino IDEはWindowsやLinuxでも動かすことができます。ダウンロードする際に寄付画面が出てきますが、無料でダウンロードする場合には「JUST DOWNLOAD」を選択すれば大丈夫です。
Arduino IDEの設定
はじめにArduino IDEでESP32を開発するために、いくつかの設定が必要になります。難しそうに思うかもしれませんが、手順通り進めれば大丈夫ですので頑張りましょう。
ESP32のボードURLを追加
こちらのサイト から、最新のESP32のボードURLを調べます。
Stable release link:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
※ 2023年8月16日現在
次に、Arduino IDEのメニューからSettings... → Additional Boards Manager URLsへ先ほどのボードURLを追記し「OK」を押します。
ESP32のBoardをインストール
次にESP32のBoardをインストールを行います。
Arduino IDEのメニューから、Tools → Board → Boards Managerへと進みます。
表示された左メニューの検索ボックスで「esp32」を入力し、「esp32 by Espressif」をインストールします。
これでArduino IDEでESP32の開発ができるようになりました!
ESP32とLEDの配線
ここからはESP32を使ってLEDを実際に点灯させていく手順を解説いたします。
まず、ESP32とLEDを下図のように配線します。GPIO13番に赤色LEDのアノード(足の長い方)を繋ぎ、1kΩの抵抗を介してGNDへ接続しました。
ESP32がブレッドボードに収まらない...
ブレッドボードを使って配線すると思いますが、ESP32の場合は通常のブレッドボードだと片側が覆われてしまうほど大きいです。ですから片側しかGPIOを使えない状態になってしまいます。そんな時は、ブレッドボードを2つ使うという方法もあります。左右のスペースも広く取れるので、電子部品を悠々と置くことができます。
▼ またはサンハヤトのSAD-101を使うという手もあります。私はESP32の実験では、こちらのブレッドボードを使ってます。横幅が広いためESP32をブレッドボードへ刺しても左右に空きがあります。
実際にSAD-101を使ってESP32とLEDを配線した様子が下の写真です。左下のコンデンサーは書き込みエラーをなくす為のもので、詳しくは こちらの記事 をご覧ください。
LEDの色と順方向電圧
LEDは色の種類によって順方向電圧(VF)が異なります。つまりLEDに繋げる抵抗値を場合によっては変える必要が出てきます。一般的に、赤、橙、黄、緑ではVFは1.8~2.2V程度なのでESP32でも問題ないです。しかし白、青のLEDではVFが3.2V前後になります。Arduinoのデジタルピンは電圧が5Vですが、ESP32では3.3Vですので抵抗値を上手に設定しないと光らないかもしれないので注意してください。
ESP32でLチカさせてみよう
それでは最後となりますが、プログラミングを作ってESP32でLEDを点滅させてみましょう。
スケッチの新規作成
Arduino IDEのメニューから File → New Sketch を選択してください。command + s を押して、 esp32_blink_led としてスケッチを保存しておきます。
Lチカ(LEDを点滅)させるソースコード
次は、ESP32でLチカ(LEDを点滅)させるソースコードです。スケッチへコピペしてください。
#define LED_PIN 13
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
スケッチの内容を少し解説します。LED_PIN にはESP32でLEDを繋げたGPIO番号を指定します。setup() 内の pinMode で OUTPUT を設定して、0Vまたは3.3Vの電圧をオンオフできるようにします。setup() はESP32起動時に一度だけ呼び出される関数で、初期設定などを記述します。 loop() 内で digitalWrite 関数を使って13番ピンを交互に HIGH または LOW へと変更します。このことによって、13番ピンの電圧が0Vまたは3.3Vになりますから、LEDが点滅するというわけです。loop() 関数は高速で何度も繰り返し呼び出されますから、そのままだとLEDの点滅が速すぎて常時点灯しているように見えてしまいます(蛍光灯と同じ原理ですね)。そこで delay(500) で時間を待たせてあげます。500 はミリ秒です。1000ミリ秒が1秒ですから、つまり1秒間に1回の周期で点滅を繰り返すプログラムになります。
BoardとPortの選択
スケッチの準備ができましたら、ESP32とパソコンをUSBケーブルで繋いでください。
Arduino IDEのメニューから Tools → Boardの一覧からESP32 Dev Moduleを選択します。
冒頭で紹介した以外のESP32ボードをお使いの場合は、各自で調べて適宜変更してください。とはいえ、 ESP32 Dev Module を選択しておけば大体は動いてしまいます。
次に、Arduino IDEのメニューから Tools → Port へ進み、ESP32のシリアルポートを選択します。シリアルポートの名前はわかりにくいので、USB機器を抜き差ししながら検討をつけると良いです。
スケッチのアップロード
それでは制作したスケッチをESP32へ書き込み(アップロード)ましょう。下図のように矢印ボタンを押すことでスケッチがコンパイルされ、ESP32へプログラムがアップロードされます。
下の動画のようにLEDが点滅すれば大成功です!お疲れ様でした!
スケッチがアップロードできない!?
Arduino IDEでESP32の詳細設定は下図をご参考ください。各項目はデフォルトのままで何も変えてません。
実は私の使っているM2コアのMacBook Airですと、ESP32ヘのスケッチの書き込みエラーが発生しました。下記の記事にあります通り、ESP32のENピンにコンデンサを付けることで書き込みエラーが解消されますのでご参考ください。
▼ コンデンサを追加して書き込みエラーをなくしたESP32を販売中です!