*

IoT開発(5)
ESP-WROOM-02をDeepSleepで長時間駆動させる

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

どもです。

この記事は、以下の記事の続きです。
IoT開発(1)-ESP-WROOM-02のセットアップ
IoT開発(2)-ESP-WROOM-02で気温測定
IoT開発(3)-ESP-WROOM-02でデータを送信
IoT開発(4)-ESP-WROOM-02を電池で駆動

本エントリでは、ESP-WROOM-02を電池で長時間させる方法について書きます。

1.DeepSleep

ESP-WROOM-02には、「DeepSleep」というモードがあります。
ESP-WROOM-02/ESP8266の仕様書によれは、このモードは以下のような場合に使用します。

  • WiFi接続を維持する必要が無い
  • データ送信の間隔が長い


具体例として、

  • 100秒ごとに温度を測定する
  • 300秒スリープし、APに接続するために0.3~1.0秒を要する

という場合が挙げられています。

1.1.復帰の方法

DeepSleepモードから復帰する方法は、ボタンでの復帰とタイマーでの復帰があります。
今回のエントリでは、「タイマーでの復帰」を採用します。

2.回路

DeepSleepモードを使用する際には、回路をこれまで使用してたものから変更する必要があります。
変更点は、「IO16」を「RST」につなげる、という点です。
「IO16」と「RST」をつなげることで、DeepSleepモードから復帰させられるようになります。
具体的な回路図は、下記になります。


iot_at_home_005_esp_wroom_02_001

3.プログラム

DeepSleepモードを使用するにあたり、コードに対して変更を行っています。
変更した後のコードは、下記になります。

3.1.コードの解説


簡単ですが、変更点を中心にコードを解説します。
これまでのコードからの主な変更点として、下記が挙げられます。

  • wifi_set_sleep_type()の削除
  • 測定結果の判定~やり直し


3.1.1.wifi_set_sleep_type()の削除

これまでのコードでは、setup()の先頭で、wifi_set_sleep_type()メソッドを削除しています。
wifi_set_sleep_type()メソッドで指定可能な引数は、以下のように定義されています。

見ての通り、DeepSleepモードに対応する値がありません。
今回の目的である、DeepSleepモードを使用するにあたり、この設定は不要なので、削除しました。

3.1.2.測定結果の判定~やり直し

これまで使用してきた温度センサーMDK001(ADT7310)の測定範囲は、-55℃~+150℃となっています。
これまでのエントリで使用してきたプログラムでは、この判定を行わず、取得できた値をそのまま出力/送信していましたが、それではまずいので、今回の機に修正を行っています。
なお、範囲外の値を取得した場合には、「正常な値が取得できるまで測定をやり直す」という動作にしています。
この処理についても、測定の再実行の回数に制限を設けるなどの対応が本来は必要です。

4.測定結果

ここまでで書いてきた回路、およびプログラムを使用して、1日気温を測定した結果をグラフ化したのが、下記です。



iot_at_home_005_esp_wroom_02_002

途中で値が「0」に落ちてしまっています。
しかしそれ以外は、温度が測定ができています。
最高気温も30℃を越えており、とても暑い一日でした。
測定結果も、その体感に一致しています。

5.まとめ

今回、ESP-WROOM-02を電池駆動させ、MDK001で気温を測定しました。
電池駆動させるので、DeepSleepモードで動作させるようにしたところ、1日以上、連続でデータが測定できるようになりました。
しかし、何日までデータが測定できるかは分かっていません。
引き続きデータを測定して、測定可能な期間を確認していきます。

ではっ!

ex.測定結果

測定結果が出ました。
以下のエントリで詳細を書いていますので、コチラもあわせて読んでいただけたら幸いです。
IoT開発(11) ESP-WROOM-02を長時間駆動させた

関連記事

MY_MFC_LOGO

MFCプログラミング(1):CFileまたはCStdioFileクラスを使用してファイル出力

どもです。 突然ですが、仕事でMFCを使用することになりました。 MFCはこれまで触ったことがな

記事を読む

think_about_utest

単体テストの効率化を考える(2)-スタブの戻り値

どもです。 「単体テストの効率化について考える」の2回目です。 (1回目はコチラ:単体テスト

記事を読む

Splash

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

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

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(8):pigpioを使用したチャタリング対策の問題の対策

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

記事を読む

no image

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

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

記事を読む

python

VisualStudioCommunityでのPython開発環境構築

どもです。 最近、VisualStudioでのPython開発を始めました。 その際の環境構築に

記事を読む

think_about_utest

単体テストの効率化を考える(5)-スタブの自動生成への入力

どもです。 「単体テストの効率化について考える」の5回目です。 1回目から4回目はコチラ:

記事を読む

Rasp_DHT11

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

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

記事を読む

iot_raspberrypi_gateway_001_eye_catch

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

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

記事を読む

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 ↑