Arduino IDEでESP32を使う

Arduino IDEを使って、ESP32のプログラミング環境を構築し、LEDを光らせたいと思う。
![H001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/eb93f77d-089e-e38c-eb8b-31210575873f.jpeg)

#はじめに
皆様「**Arduino**」というものをご存知だろうか。Arduinoは簡単に扱うことができるマイコンボードで、センサや各種モジュール類を配線し、プログラムで制御すると言った使い方が可能である。また、Arduino IDEという開発環境でプログラミングすることができる。

それを踏まえて**ESP32**とは、ArduinoにWifiとBluetooth機能を追加したようなもので、Arduino単体(※)ではできなかった、ネットワークを構築し遠隔で物を操作することができたりする。(※ただし、Wifiに対応しているArduinoもある。)
最近ではESP32を搭載した**M5Stack**というデバイスにも搭載されている。

このESP32もArduinoと同じくArduino IDEで開発することができるが、**環境構築**が必要になるため、今回はESP32をArduino IDEでプログラミングするための環境構築をして、軽くプログラミングをしていきたいと思う。

#ESP32の環境設定
###①Arduino IDEをインストールする
[ここ](https://www.arduino.cc/en/software)からインストールできる。使っているOSをクリックしてインストーラをダウンロードして、実行すればインストールできるはず。![H228.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/1bed4b65-2691-81a3-e15d-e9246ca8aedb.png)



###②ESP32のボード情報を追加する
Arduino IDEには**ボードマネージャ**というArduino以外のマイコンの開発環境を管理することができる機能がある。この機能にESP32の情報を追加する。
Arduino IDEの左上の項目から、「ファイル」>「環境設定」を開く。すると環境設定のウィンドウが開くので、この中の下の方にある「追加のボードマネージャのURL」とあるところに、以下のURLを入力する。
![H230.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/84ad2e86-b033-288d-832c-ca5810c39d97.png)

```
https://dl.espressif.com/dl/package_esp32_index.json
```

これでOKを押すと、ESP32のボード情報を上記アドレスから収集し、必要なファイルをインストールできるようになる。
![H229.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/9b1fe0d6-cfc6-1455-e008-6f25ddb5ae10.png)

###③ESP32を使えるようにする
メニュー欄から「ツール」>「ボード」>「ボードマネージャ」を開く。
![H231.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/d46fc874-639a-9e7c-a082-2b029283e840.png)

別ウィンドウでボードマネージャが開くので、検索ボックスに「ESP」と入力し、浮上してきた「ESP32」をインストールする。
インストールが終わったら、バージョンの横に「INSTALLED」と表示されるので、ウィンドウを閉じる。
![無題233_20220113232053.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/9f5a21fd-311c-6c87-36fb-ac577f6a072b.png)


###④ESP32のボードを選択する
「ツール」>「ボード」>「ESP32 Arduino」と進み、今回使うESP32のボードを選択する。
![H234.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/13644da7-d41a-120e-09d7-44691ba83db1.png)

私はESP32-Devkitを購入したので、「**ESP32 Dev Module**」を選択する。
M5Stackなどの場合はここでそれぞれ個別に選択する必要があるので注意が必要である。

以上でESP32を使うための環境構築は完了した。

#ESP32を使ってLEDを光らそう
##今回用意したもの
* PC(Windows11)
* ESP32-DevkitC(amazonで購入)
* USB-AとmicroUSB-Bの通信ケーブル
* 赤と青の2色LED(カソード共通)
* 抵抗(今回は330Ωを使用したがもうちょっと小さくてもいいと思う)
* ジャンパ線3本
* ブレッドボード1個

##配線
以下の通りである。
![H235.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/f5b7d28e-8218-1859-6a37-58e7e0da0abc.png)
配線はこのような感じになった
![H1500.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/acf799ac-853b-9342-ddf2-e74e8ad9b135.jpeg)

##LEDを光らせるプログラム
このプログラムは、青点灯→赤点灯→青消灯→赤消灯→(以下ループ)を0.5秒間隔で繰り返すという単純なものである。

```ruby:RandB.ino
#define BLUE 32
#define RED 33

void setup() {
  pinMode(BLUE, OUTPUT);
  pinMode(RED, OUTPUT);
}

void loop() {
  digitalWrite(BLUE, HIGH);
  delay(500);
  digitalWrite(RED, HIGH);
  delay(500);
  digitalWrite(BLUE, LOW);
  delay(500);
  digitalWrite(RED, LOW);
  delay(500);
}
```

![P1130056.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386155/b1ed23c7-df97-c881-edca-d7639cc6debd.jpeg)


#今回のまとめ
* ESP32の環境構築を行った。
* LEDを実際に光らせた。

#次回予告
今回はESP32の良さである無線通信系があまり出ていなかったので、次回はESP32をWebサーバーにしてLEDを遠隔でON/OFFする予定である。

#参考文献
藤本壱、「ESP32&Arduino 電子工作 プログラミング入門」(技術評論社 2020年)