はじめに

この記事では、Arduino IDEでESP32の開発ができるようにし、最初の動作確認としてLチカ(LED点滅)まで進めます。ESP32のボードURL追加、Boards Managerでのインストール、LEDと抵抗の配線、Board/Portの選択を順番に確認します。はじめてESP32を触る場合は、まずこの手順で「書き込める状態」を作っておくと、その後のセンサ実験やBluetooth通信へ進みやすくなります。

開発環境

私の開発環境はこちらになります。Windowsでもほとんど同じ内容でできますので、適宜読み替えてください。

項目バージョン
ESP32ボードESPRESSIF ESP32-WROOM-32D(ESP32 DevkitC V4)
Arduino IDEVersion 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ファイルでした。 https://www.arduino.cc/en/software

上記のページから macOS(Version 10.14: “Mojave” or newer, 64 bits) をダウンロードしました。Arduino IDEはWindowsやLinuxでも動かすことができます。ダウンロードする際に寄付画面が出てきますが、 無料でダウンロードする場合には「JUST DOWNLOAD」を選択 すれば大丈夫です。

「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やESP32ボードパッケージは更新されるため、作業時点の最新手順はEspressifの案内も合わせて確認してください。この記事では、まずArduino IDEにESP32のボード情報を追加し、Boards Managerからインストールする流れを押さえます。

次に、Arduino IDEのメニューからSettings...Additional Boards Manager URLsへ先ほどのボードURLを追記し「OK」を押します。

ボードURLの追記

ESP32のBoardをインストール

次にESP32のBoardをインストールを行います。

Arduino IDEのメニューから、ToolsBoardBoards Managerへと進みます。

Boards Managerの選択

表示された左メニューの検索ボックスで「esp32」を入力し、「esp32 by Espressif」をインストールします。 esp32のボードをインストール

これでArduino IDEでESP32の開発ができるようになりました!

ESP32とLEDの配線

ここからはESP32を使ってLEDを実際に点灯させていく手順を解説いたします。

まず、ESP32とLEDを下図のように配線します。GPIO13番に赤色LEDのアノード(足の長い方)を繋ぎ、1kΩの抵抗を介してGNDへ接続しました。

ESP32とLEDの配線

ESP32がブレッドボードに収まらない…

ブレッドボードを使って配線すると思いますが、ESP32の場合は通常のブレッドボードだと片側が覆われてしまうほど大きいです。ですから片側しかGPIOを使えない状態になってしまいます。そんな時は、ブレッドボードを2つ使うという方法もあります。左右のスペースも広く取れるので、電子部品を悠々と置くことができます。 ESP32とブレッドボード

実際にSAD-101を使ってESP32とLEDを配線した様子が下の写真です。左下のコンデンサーは書き込みエラーをなくす為のものです。

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のメニューから FileNew 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() 内の pinModeOUTPUT を設定して、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のメニューから ToolsBoardの一覧からESP32 Dev Moduleを選択します。

ESP32 Dev Moduleを選択

冒頭で紹介した以外のESP32ボードをお使いの場合は、各自で調べて適宜変更してください。とはいえ、 ESP32 Dev Module を選択しておけば大体は動いてしまいます。

次に、Arduino IDEのメニューから ToolsPort へ進み、ESP32のシリアルポートを選択します。 シリアルポートの名前はわかりにくいので、USB機器を抜き差ししながら検討をつけると良いです。

ポートの選択

スケッチのアップロード

それでは制作したスケッチをESP32へ書き込み(アップロード)ましょう。下図のように矢印ボタンを押すことでスケッチがコンパイルされ、ESP32へプログラムがアップロードされます。

スケッチのアップロード

下の動画のようにLEDが点滅すれば大成功です!お疲れ様でした!

ESP32でLチカしている動画

スケッチがアップロードできない!?

Arduino IDEでESP32の詳細設定は下図をご参考ください。各項目はデフォルトのままで何も変えてません。 ESP32の詳細設定

書き込みに失敗する場合は、BoardとPortの選択、USBケーブルがデータ通信対応か、電源が安定しているかを順に確認します。ESP32ボードによっては書き込み時にBOOTボタン操作が必要なこともあるため、まずはシリアルポートが見えているかを切り分けると原因を追いやすいです。

関連記事

関連アイテム