普段Arduinoを使った電子工作をメインで楽しんでいます。
Arduinoは電子工作初心者の方でも比較的簡単に扱うことが出来るように作られた便利なマイコンボードですが、標準でWi-FiやBluetoothといった無線機能が搭載されていません。
そのためArduinoを使い無線通信をしたい場合には、それらに対応したモジュールを外部接続して使う必要があり少し手間がかかります。
Arduinoの扱いに慣れてきてWi-FiやBluetoothを使った無線通信でのやり取りもやってみたい場合、ESP32やESP8266などESPシリーズのマイコンボードを使うと便利になってきます。
ESPシリーズの開発ボードではWi-FiやBluetoothモジュールが標準で搭載されているので、Arduinoのように無線モジュールを外部接続する必要がなく扱うことが出来ます。
しかしESPシリーズのマイコンボードはArduinoより後発で登場したマイコンボードとなり各種情報もArduinoの方が多く、ボードの種類やバージョンも多いためボード選びは非常に迷います!
ESP32の開発ボードはいくつか使っていますが、はじめてESP32を使う場合ESP-WROOM-32D開発ボード/ESP32-DevKitC-32Dあたりのボードがおすすめです!
今回はESP32の代表的な開発ボードの一つとなるESP32-DevKitC-32DにArduino IDEを使ってスケッチの書き込みを行い動作させるまでの基本的な手順をご紹介したいと思います。
目次
ESP-WROOM-32D開発ボード/ESP32-DevKitC-32Dを使ってみる![導入からスケッチの書き込み&動作確認まで]
こちらが今回ご紹介するESP-WROOM-32D開発ボード/ESP32-DevKitC-32Dです。
非常にメジャーな開発ボードとなり、初めてESP32のマイコンボードを使う場合に適していると思います。
ESP32のマイコンボードにはWi-FiやBluetoothモジュールが標準で搭載されているため、Arduinoのように無線モジュールを外部接続する必要がありません。
そのため無線通信を使ったやり取りを行う場合、Arduinoよりも便利となります。
Arduino IDEの開発環境をそのまま使うことも出来るので、Arduinoの扱いに慣れてくると便利に感じる場面は多いと思います。
そしてESP32シリーズのマイコンボードは種類が多いため、初めてだとどのボードを使ったらいいのか非常に迷ってしまいます。
ESPシリーズとは?
まずESPシリーズのマイコンボードについて簡単に見ておきます。
ESPシリーズのマイコンボードには、ESP32シリーズとESP8266シリーズがあります。
Espressif Systems社が販売するWi-FiやBluetoothモジュールが組み込まれたボード(モジュール)になります。
このようなモジュール形状のものも販売されています。
これを使うことも可能ですが、はんだ付けの事などを考えると開発環境には向いていません。
動作させるための電源回路(レギュレータ)やプログラム(スケッチ)を書き込むためのUSB-シリアル変換チップなどが組み込まれた開発ボードを使う方が当然便利となります。
そしてESPシリーズのマイコンボードには、ESP32シリーズの他にESP8266シリーズのものもあります。
大きな違いは使える無線機能です。
ESP8266ではWi-Fiモジュール(ESP8266EXチップ)が組み込まれているのでWi-Fi機能を使うことが出来ます。
またESP32ではWi-Fiに加えBluetooth機能も使うことが出来ます。
ESP32シリーズ | ESP8266シリーズ | |
Wi-Fi | ◯ | ◯ |
Bluetooth | ◯ | ー |
ESP8266シリーズのマイコンボード
今回の本題とは少し離れてしまいますが、ESP8266マイコンボードについても少し見ておきます。
先述のようにESP8266シリーズのマイコンボードにはWi-Fi機能のみ搭載されています。
小型なボードではESP-01があります。
Arduinoなど無線機能を持たないマイコンボードと接続してWi-Fi機能を持たせることができます。
またスケッチを書き込むことによりWi-Fi機能を持ったミニArduinoとして動かすこともできます。
非常に小型なボードなので用途によっては重宝します。
この投稿をInstagramで見る
またESP8266搭載の開発ボードでは、ESP-WROOM-02やWeMos D1 mini(LOLIN)なども有名です。
上記ESP-01には搭載されていないUSB-シリアル変換モジュールも組み込まれているので、PCと接続して直接スケッチの書き込みを行うことができWi-Fi機能を持ったArduinoのように扱うことが出来ます。
WeMosではESP8266モジュールが組み込まれArduino Uno形状のWeMos D1 R2やESP32が組み込まれWi-FiとBluetoothが使えるWeMos D1 R32なんていうボードもあります。
ESP32よりArduinoの方が使い慣れている私はWi-Fi/Bluetooth機能が付いたArduino Unoの感覚で使っていますが(中身はESP32です)・・・なかなか面白いボードなのでこれは別記事でご紹介できればと思います。
ESP-WROOM-32D開発ボード/ESP32-DevKitC-32D
そして今回の本題、ESP32-DevKitC-32D開発ボードです。
ESP-WROOM-32Dを搭載したボードとなります。
ESP-WROOM-32には数種類のバージョンがありますが詳しくは割愛します。(最新のものはESP-WROOM-32Eとなります)
Wi-Fi通信に加えBluetooth通信も使うことが出来るESP32開発ボードとなります。
上記写真はEspressif Systemsの正規ボードとなりますが、その他多くの互換ボード(クローン)も存在します。
Arduinoの互換ボードは安価で入手する事が出来るのでよく使っていますが、特に問題になったことはありません。
ESP32-DevKitC-32D開発ボードでもEspressif Systemsの正規ボードより互換ボードは安価で購入する事が出来るので、趣味で電子工作を楽しんでいる身としてはありがたいのですが・・・初めて使う場合は正規ボードを選んだ方がいいかもしれません。
いくつか互換ボードも使っていますが、スケッチ書き込みの際に自動書き込みが出来ないものもあります。(リセットがかからない)
もちろんボードのスイッチを押して手動で書き込むことやコンデンサを取り付けて自動書き込み出来るようにするなど対策はありますが、初めてだと面倒なのでEspressif Systemsの正規ボードを選ばれるのがいいと思います。
互換ボードと比べると正規ボードは倍近くの価格なのがネックとなりますが・・・
それではESP32-DevKitC-32Dにスケッチ(プログラム)を書き込むための開発環境です。
開発環境は大きく2つあります。
Arduino IDEを使う方法とESP-IDFを使う方法です。
今回Arduino IDEを使った方法で話を進めていきます。
私のようにこれまでArduinoを使った事がある方は簡単に導入する事が出来ます。
Arduino IDEのインストールがまだという方はこちらの記事も参考にして下さい。
Arduino IDEでの開発環境の構築
Arduino IDEでESP32マイコンボードを使う場合、対応したボード情報をインストールしておく必要があります。
Arduino IDEを使った事がある方なら非常に簡単です。
まずArduino IDEを起動して[環境設定]へと進み、[追加のボードマネージャのURL]の項目を開きます。(Mac版を使用していますがWindows版でも同様の作業となります)
以下のURLを追加します。
すでに他のボードURLが記載されている場合は改行して新たな行に追加して下さい。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
次に[ツール]→[ボード]→[ボードマネージャ]へと進みます。
検索ボックスに[ESP32]と入力すると「esp32 by Espressif Systems」が見つかると思います。
インストールボタンをクリックするとボードに必要なファイルが自動的にダウンロード&インストールされます。
これで完了です。
インストールが完了すると、[ツール]→[ボード]一覧に[ESP32 Arduino]という項目が追加されます。
この中の[ESP32 Dev Module]を選択する事によりESP32-DevKitC-32Dボードにスケッチを書き込むことが出来ます。
デフォルト設定から特に変更する必要はありません!
あとはシリアルポートを指定して通常通り[アップロード]からスケッチをボードに書き込むことが出来ます。
スケッチの書き込み
それではESP32-DevKitC-32Dにスケッチを書き込み実際に動かし動作確認をしてみます。
マイコンボードの動作確認と言えばLチカですね。
電流制限抵抗(300Ω前後)を1本使いGPIO21端子に繋いだLEDを点滅させてみます。
ちなみにGPIO端子のピン配置はこのようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 | int LED_Pin = 21; void setup() { pinMode(LED_Pin,OUTPUT); } void loop() { digitalWrite(LED_Pin,HIGH); delay(500); digitalWrite(LED_Pin,LOW); delay(500); } |
スケッチ自体は非常に簡単ですね。
0.5秒間隔でLEDが点滅すれば成功です!
Arduino IDEにESP32の開発環境を構築することができ、Arduinoを使った事がある方ならESP32の導入は簡単ですね!
今回はESP32を使う環境をArduino IDEを使って構築するということなのでここまでとしたいと思います。
Arduinoでは無線通信をする場合外部モジュールを接続する必要がありましたが、ESP32開発ボードではWi-Fi/Bluetoothモジュールが内蔵されているのでこれを使って無線通信をする事が出来ます。
この投稿をInstagramで見る
もちろん同様なことはArduinoにWi-FiやBluetoothモジュールを接続すれば出来るのですが、無線モジュール接続の手間がかからず技適が取得されているモジュールなので安心して使うことが出来ます。
Arduinoに少し慣れてくると無線モジュールが内蔵されているだけで非常に便利に感じます。
6列タイプのブレッドボードがあると便利
ESP32-DevKitC-32DはESP32の中では幅広タイプのボードとなっています。
そのため通常よく使われる片側5列タイプの400穴や830穴タイプのブレッドボードでは、ジャンパーワイヤを挿すスペースが片側に1列しか残りません。
これでは片側にワイヤーを挿すことが出来ないため、ブレッドボードを横置きで2枚使うなどの工夫が必要となってきます。
そこで便利となるのが6列タイプのブレッドボードです。
サンハヤトさんの片側6列タイプのニューブレッドボード(SAD-101)が便利に使えます。
電源レーンが片側しかありませんが、両サイド1列と2列ジャンパーワイヤを挿すスペースを取ることが出来るのでGPIO端子を上手く使うことが出来ます。
ESP32-DevKitC-32Dをブレッドボードで使う場合に便利で必須アイテムだと思います。
【追記】技適取得済みESP32開発ボード『Lolin D32』を使ってみました!
ESP8266/ESP32開発ボードの中でWeMos(Lolin)ブランドのボードは個人的に大好きで普段よく使っています。
ESP32開発ボードとなるLolin D32も技適が取得されたWi-Fi/Bluetooth無線モジュールが使える扱いやすい開発ボードです。
【追記】ESP-WROOM-32について!
今回ご紹介したESP32開発ボードとなるESP32-DevKitCに使われているコア部分となる『ESP-WROOM-32』について追記記事を書きました。
ESP-WROOM-32は技適取得済みのESP32モジュールとなり、自作基板の製作も始めたことから使う機会が多くなったので基本的な部分をまとめてみました。
起動時のモード(設定)を決定する重要なGPIO端子(IOO/IO2/IO5/IO12/IO15)や手動書き込み&実行、オートフラッシュ(自動書き込み)などの事について書いています。
こちらの記事も合わせて見て頂ければと思います。
【追記】ESP32で動かすMini RetroTVの製作!
ESP32で動かすミニレトロテレビ(Mini RetroTV)を製作しました。
この投稿をInstagramで見る
ESP32-DevKitCを使ってブレッドボードでのテストを経て、3Dプリントパーツを使い最終的にLolin D32を使って上記を製作しています!
この投稿をInstagramで見る
ESP32で動画を再生する・・・ブレッドボードで組んで動かしてみるだけでも面白いので、興味ある方はこちらの記事も見て頂ければと思います。
【追記】自作のESP32開発ボードを製作しました!
ESP32-DevKitCは最もポピュラーなESP32開発ボードとなりテスト等で使う頻度が高いのですが、リポバッテリーからの駆動などより便利に使えるようにESP32-DevKitCをベースにした自作ESP32開発ボードを製作してみました!
最後に!
ESP32開発ボードは多数ありますが、その中でもメジャーなESP-WROOM-32D/ESP32-DevKitC-32Dの導入手順を見ていきました。
Arduinoを使ったことがある方ならArduino IDEでの開発環境の構築は非常に簡単です。
ESP32のマイコンボードでは動作ロジックがArduinoの5Vと違い3.3V動作だということやボードのGPIO端子の並びなど当然Arduinoと異なるわけですが、Arduinoを使い慣れてくると対応も簡単でWi-FiやBluetoothを使い無線通信をしたい場合の開発環境ではArduinoを使うより便利に感じる場面は多いと思います。
コメントを残す