[Arduino ESP32]ESP32開発ボードを使ってArduinoデビューする その1

今まで食わず嫌いなものの興味はあった電子工作関係でしたが、ついに一式道具を揃えました。Wifiを使った機能を作りたかったので一発目からArduino本家ではなくESP32開発モジュールを選択。参考になるかはわかりませんがメモを残しておきます。

購入物たち

今回はすべてAmazonで購入しました。有名なサイトがあったりしますが銀行振り込みのみ対応だったり、送料が意外と負担だったりで、AmazonPrimeに加入している我が家ではAmazonですべて買った方がお得度高かったです。

waves ESP32 DevKitC V4 ESP-WROOM-32 ESP-32 WiFi BLE

メインとなる開発ボード。本来ならArduino本体とWiFiモジュールであるESP32が必要なのですが、ESP32でもArduinoは動くため単体で開発できるように強化されたもの。。。という認識です。

waves ESP32 DevKitC V4 ESP-WROOM-32 ESP-32 WiFi BLE

新品価格
¥1,180から
(2024/2/7 23:37時点)

※ちなみにMicroUSBで接続するタイプなので、ケーブルを持っているかどうかも確認しておいてくださいね。

サンハヤト SAD-101 ニューブレッドボード

配線をわざわざはんだ付けしたり結束したりしないで済む、プロトタイプ作成に欠かせないボード。とのこと。下記の配線材と組み合わせて使う。
また、ESP32開発モジュールが横幅大きめなため、対応しているこれを選択。

サンハヤト SAD-101 ニューブレッドボード

新品価格
¥319から
(2024/2/7 23:36時点)

ジャンパーワイヤー

配線材。銅線みたいなタイプとホッチキスの芯みたいなタイプの2種類。とりあえず揃えとけの精神。

サンハヤト ジャンプワイヤキット SKS-100 単線タイプでよく使用する短めジャンプワイヤのセット品

新品価格
¥873から
(2024/2/7 23:36時点)

ブレッドボード用 ジャンパーワイヤー 65本セット

新品価格
¥450から
(2024/2/7 23:34時点)

抵抗

これがないと各パーツが許容できる電力を超えてしまい壊れてしまうことがあるとのこと。怖いのでとりあえずいろんな容量の抵抗が詰まった大容量パックを購入。

抵抗器キット 抵抗セット 金属皮膜抵抗器 電子工作の基本部品 10R-1M抵抗 定格1/4W 30種各20本 【600pc】高精度 DIY 電子工作 電子実験用基本部品セット

新品価格
¥599から
(2024/2/7 23:34時点)

デバッグ用モニタ

初心者はLチカから入るのが定石みたいですが、モニタにHelloWorldの方が心躍りそうなのでモニタを購入しました。私が購入した時点では2枚で999円でしたし。

VKLSVAN 2個 0.96" iic i2c ホワイトOLEDモジュール128×64 OLED LCDディスプレイArduinoに対応

新品価格
¥999から
(2024/2/7 23:32時点)

Arduinoインストールから初期設定まで

IDEのインストールはこちら。

https://www.arduino.cc/en/software

OSにあったインストーラをダウンロードしてください。ダウンロード後はインストール。特に設定等はありません。

インストール後に起動すると各コンポーネントのインストールも走りますので、それぞれ許可したりインストールしたりしてください。

IDEが開いたら、[file]-[preference]と進み、言語を日本語に設定しましょう。

また、追加のボードマネージャのURLに以下を追加。

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

続いてIDEの左カラム2段目にあるアイコンを選択してボードマネージャを開き、「ESP32 dev」と検索して出てきたものをインストール。

さて、この段階でPCと開発モジュールを接続しますが、このままではPC(今回はWindows)にESP32開発モジュールのドライバが入っていないためCOMポートが認識されていない状態になっています。
デバイスマネージャで確認したところ、

となっています。
調べてみると、どうもCP2102に対するドライバは以下のサイトで入手できるようです。

https://jp.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
これを選択。ダウンロードしたら解答してください。

デバイスマネージャにて三角マークが出ているデバイスで右クリックしドライバをインストールします。[コンピュータを参照してドライバを検索]を選択し、先ほど解凍したフォルダを選択しサブフォルダまで検索にチェック。

右下の[次へ]を選択してください。

これで今回はCOM3として認識されました。

ArduinoIDEに戻り、左上の[ボードを選択]-[他のボードとポートを選択]に進みます。

ボード検索欄に[esp 32 dev]と入力し選択、ポート側も先ほど出てきたCOMポートを選択してください。

続いてサンプルプログラムを呼び出します。

[ファイル]-[スケッチ例]-[ESP32]-[ChipID]-[GetChipID]と進みます。

すると新しいウインドウが開くので、左上の丸いアイコンのうち、右矢印をクリック。書き込みが走ります。
※私の環境では無事に書き込みできましたが、開発モジュールによっては本体にあるBootスイッチを押したままENスイッチを押すことで書き込みモードにする必要があるようです。

書き込みに完了した際のログを載せておきます。

最大1310720バイトのフラッシュメモリのうち、スケッチが263001バイト(20%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が21388バイト(6%)を使っていて、ローカル変数で306292バイト使うことができます。
esptool.py v4.5.1
Serial port COM3
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 78:21:84:c0:81:dc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00050fff...
Compressed 18992 bytes to 13110...
Writing at 0x00001000... (100 %)
Wrote 18992 bytes (13110 compressed) at 0x00001000 in 0.3 seconds (effective 571.2 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1097.6 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2046.9 kbit/s)...
Hash of data verified.
Compressed 263360 bytes to 145936...
Writing at 0x00010000... (11 %)
Writing at 0x0001c534... (22 %)
Writing at 0x0002499f... (33 %)
Writing at 0x00029dc7... (44 %)
Writing at 0x0002f19d... (55 %)
Writing at 0x00034d1d... (66 %)
Writing at 0x0003ef9e... (77 %)
Writing at 0x00045d49... (88 %)
Writing at 0x0004b291... (100 %)
Wrote 263360 bytes (145936 compressed) at 0x00010000 in 2.0 seconds (effective 1071.2 kbit/s)...
Hash of data verified.

書き込みが完了すると、ESP32はloopに書かれている処理を繰り返し実行する状態になります。

[ツール]-[シリアルモニタ]を選択し、出力内容を確認します。このタイミングでモニタ内が文字化けしている場合、右側にある数値を[115200baud]に変更してください。

これで無事プログラムの書き込み確認までできました!

まとめ

これで最低限の開発環境は整いました。次回はより電子工作らしいことをやっていきたいと思います。

追記:次回はこちら。