*

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

関連記事

eclipse_oxygen

苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用いたRaspberryPi3の

記事を読む

RasPi_Qt

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

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

記事を読む

raspberry-pi

RaspberryPiで物体検出(2)-白線検出への挑戦(2):輪郭検出による白線検出(実機編)

どもです。 今回は、前回に引き続きOpenCvを用いて道路の白線検出について、です。 1.今

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(1):ためしに時計を作ってみた

どもです。 また更新の間隔が空いてしまいました。 久しぶりの更新です。 前回のエントリーで

記事を読む

eclipse_oxygen

Eclipse/CrossCompile環境でプロジェクトをクリーンできない

どもです。 今回は、Eclipseでクロスコンパイル環境を作成した場合、を実行すると「指定されたフ

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

OpenCvLogo

RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です。 1.今回の環境 O

記事を読む

toppers

C言語でEV3開発(16)-TOPPERS/HRP2 EV3 で Bluetooth割込み

どもです。 今回は、EV3 の環境をTOPPERS/HRP2 EV3RT で作成したアプリをPC上

記事を読む

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
外部からMariaDbにアクセスする(2)-C#からMariaDbにアクセスする。

どもです。 前回のエントリで、外部からMariaDbにアクセスす

c_sharp_eye_catch
外部からMariaDbにアクセスする(1)-データベースの設定

どもです。 今回は、Linux上のMariaDbにWindows

think_about_utest
middle_unit
最小…よりも(ほんの)少し大きいテストフレームワーク

どもです。 今回は、単体テストのフレームワークについて書きます。

iot_at_home_eye_catch
IoT開発(14)
ESP-WROOM-02の稼働時間を延ばす工夫をしてみる

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

iot_raspberrypi_gateway_001_eye_catch
IoT開発(13)
RaspberryPiをIoTゲートウェイにする(VI)
flaskでGET/POSTの受信処理

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

→もっと見る

PAGE TOP ↑