
電子工作をしていると、携帯を使ってLEDやモータを動かしたい。
Wi-fi、Bluetoothを使った電子工作をしてみたいといった悩みが出てくると思います。
このページでは、これまで使っていたArduinoボードではなく、ESP32-WROOMというボードを使用します。そのため、はじめにESP32のメリット、デメリットの紹介から、Wi-fiを使った遠隔操作方法までを紹介します。また、Blynkという非常に便利な携帯アプリのインストール方法から使用方法を紹介します。
わたしもArduinoボードから始めましたが、ESP32とBlynkを使って容易に遠隔操作することができるようになりました。そのため、ESP32、Blynkの設定方法等を詳細に説明いたします。

Wi-Fi+BLE無線モジュールESP32-WROOM-32搭載開発ボード【ESP32-DevKitC-32D-F】とは Arduinoとの違い
ESP-32-DevKitCはWi-fiとBLE通信が可能な無線通信モジュールESP-32-WROOM-32を搭載した開発ボードです。Arduinoと比較し、非常に安価・高機能なボードとなっています。
ESP32-DevKitCを使用するメリットを3点紹介します
①安価かつ高機能
Arduinoと基本的に同じコードで開発ができます。また、Wi-Fi機能が搭載され価格は1000円程度と、非常に安くなっています。また、サンプルコードも多数用意されているため、これらを切り貼りして使うことで様々なことができます。
②Wi-Fi+BLE無線モジュールが搭載されている
Arduino では、BLEモジュール等を別途準備する必要があり、手間とコストがかかりますが、ESP32では、ボードに搭載されているため、プログラム上でライブラリを呼び込むことで、すぐに無線化することができます。
③Arduino UNOと比較し、コンパクト
Arduino UnoはW70mm✕L55mm程度のサイズに対して、ESP32はW55mm✕L30mm程度であり、非常にコンパクトとなっています。ピンタイプとなっていますので、ブレッドボードにさして製作ができます。
ESP32のデメリットをあえて挙げるなら
実用上あまり出てきませんが、あえて挙げるとすると、次の二つが個人的に戸惑いました。
①出力電圧がArduinoと異なる
ESP32では、電源電圧が2.2V~3.3Vであるため、Arduino Unoの5Vと比較し、低くなっています。そのため、モータドライバが共通のものを使えないことが後で気づき、苦労しました。モータを動かす際は、電圧を要確認です。
②analogWrite関数が使えない
ArduinoではanalogWrite関数がありましたが、ESP32ではこの関数は使うことができません。その代わりに、ledcSetup、ledcAttachPin、ledcWrite関数を使用することが、PWM出力が可能となります。
大した話ではないので、問題なく使えると思います。それよりも、無線化の手間が省けるので、ぜひ一度使うことをおすすめします。
携帯アプリで操作可能なBlynkの使い方 (for I-Phone)
Blynkという非常に便利な携帯アプリがあり、このアプリを用いて、ESP32を動かすことができます。このアプリの使い方を紹介します。
まずApp StoreでBlynkをインストールしてください。Blynkをインストールしましたら、I-phoneでBlynkを起動し、New Projectを選択してください。

New Projectの画面で、名称(今回はTest)を入力します。また、ボードをタブから選択してください。今回は、ESP32 Dev Boardになります。またBlynkとの接続方法は今回WiFiを使用します。選択したら、Create Projectを選択します。

Create Projectを入力すると、Auth Tokenがメールアドレスに送付されてきます。これがパスワードみたいなものとなります。

OKを選択すると、画面が画面が表示されますので、右上の設定タブ(Project Settings)を開きます。

Project Setingsを開くと、AUTH TOKENが表示されます。プログラム作成時にこのAUTH TOKENが必要となります。また、1000と記載されているものが、エネルギー量となります。Blynkでは、サインインした段階で2000ポイントのエネルギーが無償で提供されます。このエネルギーを使用して、スイッチボタンなどを配置します。

OKボタンを押すとまた最初の画面に戻ります。この画面で左にスワイプしてください。

スワイプすると、Widget Boxが開かれます。ここでボタンやJoystick Sliderなどのボタンを選択することで、画面上に配置できます。ここで記載されている数値がエネルギーの使用量になります。でははじめにButtonを選択してみます。

選択すると左上にボタンが設置されます。これをドラッグすることで配置を変えることができます。

まずは、ボタンのセッティングを行いましょう。ボタンの上でクリックしてください。すると、Button Settings画面が開かれます。ここで、GP5と記載されている部分に、出力端子番号を選択してください。今回は、出力端子を5番ピンに設定します。下にON, OFFと記載されていますが、こちらは後で設定で問題ありません。

以上で、携帯側のBlynkのセッティングは完了です。次のページで回路製作とプログラム作成方法を説明いたします。このプログラムでは、携帯上のボタンを押すと、ESP32の5番ピンと接続されたLEDが点灯するプログラムとなります。
以上で、携帯側のBlynkのセッティングは完了です。次のページで回路製作とプログラム作成方法を説明いたします。このプログラムでは、携帯上のボタンを押すと、ESP32の5番ピンと接続されたLEDが点灯するプログラムとなります。