*

IoT開発(1)-ESP-WROOM-02のセットアップ

公開日: : 最終更新日:2020/07/23 Arduino, 開発, 電子工作

どもです。
前回までのエントリで、「DHT11の測定結果をクラウドで見える化する」という内容を書いてきました。
ここで紹介している方法は、「RaspberryPi3でデータを収集してクラウドにアップロードする」というものでした。
「RaspberryPi3」を使用しており、電源の取り方やネットワークの接続の関係で、ユニットを配置できる場所が制限されてしまいます。
そこで今回から、この「制限」を解消して、より色々な場所のデータを測定できるようにする方法について書いていきます。

1.ESP-WROOM-02

前述の「制限」を解消するデバイスとして、「ESP-WROOM-02」があります。
「ESP-WROOM-02」は、ESP8266EXというチップを搭載した、wifi通信が可能なwifiモジュールです。
加えて、「ESP-WROOM-02」は「arduinoのプログラムを書き込んで実行できる」という特徴を持っています。
そのため、外部にセンサーをつなぐだけで、「センサーの値を取得」して「データをクラウドにアップロードする」ことができます。

2.デバイス

今回は、Wi-Fiモジュール ESP-WROOM-02 DIP化キットを購入しました。
また、ESP-WROOM-02にarduinoのプログラムをダウンロードするためのシリアル変換ユニットも購入しました。
新規に購入したモノの一覧を、下記に書きます。

購入したモノ一覧
モノ 概要
ESP-WROOM-02 Wi-Fiモジュール ESP-WROOM-02 DIP化キット
ESP8266EXを搭載したwifiモジュールのDIP化キットです。
使用する際には、はんだ付けが必要です。
シリアル変換 FT232RL USBシリアル変換モジュールキット
ESP-WROOM-02にプログラムを書き込む際に使用します。
使用する際には、はんだ付けが必要です。
はんだ付け済みのキットも販売されています。
価格もそんなに変わらないので、「安心を買う」と考えればこっちの方がオススメです。

3.回路

まず、arduinoのプログラムをESP-WROOM-02に書き込む際には、回路を以下のように配線します。
iot_at_home_001_esp_wroom_02_001
回路図は、下記の通りです。
iot_at_home_001_esp_wroom_02_002
「肝」になるのは、ESP-WROOM-02の「IO0」の接続です。
ESP-WROOM-02にプログラムを書き込む際には、「IO0」のレベルを「Low」に設定する必要があります。
そのため、「IO0」はGND側に接続しています。
(なお、書き込んだプログラムを動作させるためには、「IO0」のレベルを「High」に設定します。)
そのため、「IO0」はVCC(3.3v)側に接続します。

4.プログラムの書き込み

4.1.準備(ボード情報のインストール)

まず、Arduino IDEの設定を行います。
メニュ[ファイル]-[環境設定]を選択して、環境設定画面を開きます。
iot_at_home_001_esp_wroom_02_setup_001
開いた画面上の「追加のボードマネージャのURL:」欄に、下記のアドレスを設定します。

入力したら、[OK]ボタンを押します。
iot_at_home_001_esp_wroom_02_setup_002
次に、「ボード情報」のインストールを行います。
メニュ[ツール]-[ボード]-[ボードマネージャ]を選択して、ボードマネージャ画面を表示します。
iot_at_home_001_esp_wroom_02_setup_003
「検索」欄に「ESP8266」を入力します。
「esp8266」が表示されるので、「インストール」を押します。
すると、ボード情報のインストールが始まります。
iot_at_home_001_esp_wroom_02_setup_004
(2020年6月28日現在では、インストールされるボード情報は、ver.2.7.1 です。)
ボードのインストールが完了したら、対象のボードを「ESP8266」に設定します。
メニュ[ツール]-[ボード]で、「ESP8266 Modules」が表示されている(と思います)ので、これを選択します。
次に「ESP8266」に属するボードの一覧が表示されるので、この中から「Generic ESP8266 Module」を選択します。
iot_at_home_001_esp_wroom_02_setup_005

4.2.初めてのプログラム:L-チカ

ここまでで、プログラムを書き込む準備は整いました。
さっそくプログラムを書き込みます。
書き込むプログラムは、L-チカです。
プログラムのコードは、下記です。

画面左上の矢印アイコンを押すことで、プログラムが書き込まれます。

4.3.うまくいきません

最新版のボード情報(2020年6月28日現在では、ver.2.7.1)をインストールした場合、プログラムの書き込みは失敗します。
しかしながら、エラーになった際に表示されるメッセージなどの記録を残し忘れてしまいました(すみません…)。
そのため、具体的な症状、および詳細な原因が分かりません。
ここでは「問題を解決した方法」のみを記載します。
なお、「問題なく動作した」という場合は読み飛ばしてください。

4.3.1.ボード情報の変更

「ESP8266にプログラムが書き込めない」という現象は、arduino IDEにインストールしているボード情報を古いバージョンに変更することで解決できました。
私の環境では、ボードのバージョンを「ver.2.7.1」から「ver.2.3.0」まで戻しました。
戻すボードのバージョンは、ボードマネージャ画面の「バージョンを選択」というドロップダウンリストから選択します。
今回は、「2.3.0」を選択して[インストール]ボタンを押すことで、選択したバージョンのボード情報をインストールしました。
iot_at_home_001_esp_wroom_02_setup_006

4.3.2.書き込み設定

書き込みの際には、「ver.2.3.0」のボード情報を下記のように設定します。

書き込み設定
項目
Flash Size 4M(3M SPIFFS)
Flash Mode QIO
Reset Method ck
シリアルポート ※環境に合せて設定

画面上では、下図のようになるかと思います。
iot_at_home_001_esp_wroom_02_setup_007
これらの設定を行って書き込みを実行、正常に完了した場合、Arudino IDEのログ画面は以下のようになるかと思います。
iot_at_home_001_esp_wroom_02_setup_008
※Arduino IDEの設定如何では、少し表示内容が変化するかと思います。

5.プログラムの実行/L-チカ

プログラムの書き込みが完了したら、「IO0」の配線を「High」に変更して、ユニットをリセットします。
変更後の配線図は、下記のようになります。
iot_at_home_001_esp_wroom_02_003
※リセットは、FT232RLのUSBケーブルを抜き差しで実施しました。
プログラムが正常に書き込めていれば、「IO13」に接続したLEDがチカチカします。
なお、L-チカの回路図は下記の通りです。
iot_at_home_001_esp_wroom_02_005

6.まとめ

今回は、ESP-WROOM-02をセットアップして、にarduinoプログラムでL-チカする方法について書きました。
このL-チカさせるだけでも、ハマりドコロは結構あるかと思います。
特に、ESP-WROOM-02にプログラムを書き込むところが一番のハマりどころでした。
このハマりどころ/問題は、

  • ESP-WROOM-02のボード情報を古いバージョン(今回は、ver.2.3.0)に戻すことで対応可能。
  • 問題の原因/原因個所が、書き込みツールのエラーメッセージからでは特定も対応もできなかった。

という2点かと思います。
これらの問題の対応については、このエントリに記載した内容で対応ができるかと思います。
これでESP-WROOM-02は動かせるようになりました。
次回からは、ESP-WROOM-02の本当の使い方であるWiFiモジュールとして使う方法を書いていきます。

ではっ!

続きます

続きは、以下の記事で書いています。
併せて読んでいただけると幸いです。
IoT開発(2)-ESP-WROOM-02で気温測定
IoT開発(3)-ESP-WROOM-02でデータを送信
IoT開発(4)-ESP-WROOM-02を電池で駆動
IoT開発(5)-ESP-WROOM-02をDeepSleepで長時間駆動させる

関連記事

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

no image

Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

toppers

C言語でEV3開発(20)-超音波センサと安全状態

どもです。 前回は、BluetoothでPCとEv3を接続してコマンドの送受信について書きました。

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

ADT7310_DHT11_eye_catch

温度センサの出力値の比較

どもです。 今回は、センサーの性能、測定結果を比較してみたので、それについて書きます。 1.

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単体テストの効率化について書いて

記事を読む

toppers

C言語でEV3開発(24)-APIの実行時間を測定してみた。

どもです。 今回、以前から気になっていた、開発環境/プラットフォームであるTOPPERS HRP2

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(4):イベントハンドラの設定

どもです。 前回のエントリーで、「タッチスクリーンを買った」と書きました。 今回からは、このタッ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

iot_raspberrypi_gateway_001_eye_catch
IoT開発(12)
RaspberryPiをIoTゲートウェイにする(V)
nginxとuWSGIの連携

どもです。このエントリは、以下のエントリの続きです。 IoT開発(6

iot_at_home_eye_catch
IoT開発(11)
ESP-WROOM-02を長時間駆動させた

どもです。この記事は、下記の記事の続き、「測定可能な期間」の結果発表で

iot_raspberrypi_gateway_001_eye_catch
IoT開発(10)
RaspberryPiをIoTゲートウェイにする(IV)
Appサーバーのセットアップ

この記事は、下記の記事の続きです。 IoT開発(6) Raspb

iot_raspberrypi_gateway_001_eye_catch
IoT開発(9)
RaspberryPiをIoTゲートウェイにする(III)
MariaDBのセットアップ

どもです。今回のエントリは、以下のエントリの続きです。 IoT開発(

iot_raspberrypi_gateway_001_eye_catch
IoT開発(8)
RaspberryPiをIoTゲートウェイにする(II)-ex
MariaDBにPHPからアクセス

どもです。 このエントリは、前回のエントリの追加項目です。 前

→もっと見る

PAGE TOP ↑