*

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

公開日: : 最終更新日:2020/10/10 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)側に接続します。

(2020/10/10:修正)
ESP-WROOM-02にプログラムを書き込むためには、「Download mode」で起動する必要があります。
そして、「Download mode」で起動するためには、「IO0」のレベルが「LOW」に設定された状態でESP-WROOM-02を起動する必要があります。
そのために、「IO0」に接続されたスイッチ(回路図では「S1」)を押した状態で「S2」(回路図では「S2」)をON、OFFして「RST」を「LOW」/「HIGH」と変化させます。
これで、Arduino IDEからプログラムを書き込めるようになります。

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の設定如何では、少し表示内容が変化するかと思います。

(2020/10/10:修正)
プログラムの書き込みが完了すると、ESP-WROOM-02は自動で「Download mode」から抜けて「Flash Boot mode」(要は、フツーのモード)で起動して動作を開始します。

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で長時間駆動させる

関連記事

iot_at_home_eye_catch

IoT開発(3)-ESP-WROOM-02でデータを送信

どもです。 この記事は、IoT開発(1)-ESP-WROOM-02のセットアップ、IoT開発(

記事を読む

Arduino_Logo

Arduino nano(中華版)をセットアップしてみた

どもです。 突然ですが、「Arduino nano」互換(なのか?)の中華ボードを手に入れました。

記事を読む

iot_at_home_eye_catch

IoT開発(4)-ESP-WROOM-02を電池で駆動

どもです。 この記事は、以下の記事の続きです。 IoT開発(1)-ESP-WROOM-02の

記事を読む

Arduino_DHT11

温度(湿度)センサを使ってみた(1)-ArduinoでDHT11

どもです。 今回は、久しぶりにセンサーを購入して使ってみたので、それについて記載します。 1.使

記事を読む

toppers

C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

Rasp_DHT11

温度(湿度)センサを使ってみた(2)-RaspberryPi/pigpioでDHT11

どもです。 前回は、DHT11をAdrudinoにつないで温度/湿度を測定してみました。 そこで

記事を読む

ADT7310_DHT11_eye_catch

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

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

記事を読む

c_sharp_eye_catch

セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセルのセル内の文字列から 「取り

記事を読む

cygwin_my_image

Windows10/cygwinの音を消す

どもです。 最近、Windows10/cygwinで作業をする場面がありました。 このcyg

記事を読む

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="">

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

→もっと見る

PAGE TOP ↑