らいふぷろせす

たまーに、できごときろく

ESP-WROOM-02 と GY-BME280 で温度、湿度、気圧のデータを Ambient に送る。

2018-08-16 14:58:06 | ESP-WROOM-02

盆休み中に何か作りたい!ということで・・

記録的と言われている猛暑と、台風も次々と発生しているのでちょっと温度と気圧の記録を取ってみたくなり、ESP-WROOM-02 と GY-BME280 を使って環境測定装置を作ってみようと思いました。
GY-BME280は湿度も取れるので一緒に記録していきます。
取ったデータは残しておきたいのでSDカードへの記録も考えましたが、今回は Ambient という、情報可視化サービスを利用する事にしました。
ネットワークに繋がるならこちらの方がかなり便利です。.csvでデータも落とせるし(^^)

こんな感じの構成。ESP-WROOM-02 は秋月電子の開発キットを使用したため、かなりすっきりしています。


センサーはこれ。
GY-BME280 はボッシュ社のBME280を搭載したセンサモジュールで、温度、湿度、気圧の3つの環境情報を同時に測定できます。
Amazon や  AliExpress などで購入できるものを使いました。
マイコンとの通信方式は、I2CまたはSPIを選択することができます。
そしてこのBME280、温度は他の方の記事にもありましたが、出力される数値が近くに置いた普通の温度計より2℃くらい高いような気がします。
なので放射温度計でセンサー基板を狙って測定してみるとBME280の出力値と放射温度計での測定値はほぼ一致していました。
センサー基板に通電することで少し温まってしまうのでしょうか?校正する方法はあると思いますが今回はこのまま行こうと思います。

回路やスケッチは、初めはスイッチサイエンスさんの記事を参考にしましたが私の環境ではWifiとIPSを同時に使うとうまく動作してくれませんでした。
ですので、@yukitterさんのこちらの記事を参考にI2C通信に変更しました。こちらも私の環境とは違いますがうまく動いてくれています。

Ambientともうまく連携できています。

私の公開チャネルはこちら
気圧のデータを可視化することで、天候との関連性がわかりやすくなりました。(このblogを書いている時、気圧がどんどん下がってきて雨が降り出しました。面白い!)

こんなに簡単に(他の関連されている方々のおかげですが)自分の好きなようにデータが取れるともっと色々調べたくなります。

コメント

ESP-WROOM-02 を Arduino IDE で開発するまでの備忘録

2017-07-23 14:19:02 | ESP-WROOM-02

ESP-WROOM-02とは、
ESP8266チップをベースにした低消費電力の32ビットMCU Wi-Fiモジュールです。
TCP / IPネットワークスタック、10ビットADC、およびHSPI / UART / PWM / I2C / I2Sインタフェースはすべてこのモジュールに組み込まれています。


環境
Windows 7 64bit
USB-Sirial-FTDI (スイッチサイエンス製)
Wi-Fiモジュール ESP-WROOM-02 DIP化キット (秋月電子製)
Tera Term (ATコマンド通信)
Arduino IDE 1.8.1 (Arduinoとして使う場合)
ESPFlashDownloadTool_v3.4.9.2 (ESP-WROOM-02をデフォルトに戻すときに使う)

1, 接続


ESP-WROOM-02ピン配置

ピン----接続先
3V3-----ブレッドボード +
EN------ブレッドボード +
IO2-----ブレッドボード +
IO0-----ブレッドボード +
IO15----ブレッドボード -
GND-----ブレッドボード -
TXD-----USB-Siria RX
RXD-----USB-Siria TX

USBシリアル変換アダプターピン配置

ピン----接続先
VCC-----ブレッドボード +
GND-----ブレッドボード -
RX------ESP-WROOM-02 TX
TX------ESP-WROOM-02 RX



※ESP-WROOM-02での接続には2つのモードがある。

・ATコマンドでやりとり、書き込んだスケッチを実行する「Flash Boot Mode(実行モード)」
・スケッチを書き込み、ファームウェアアップデートを行う「UART Download Mode(書き込みモード)」

 

「Flash Boot Mode(実行モード)」IO0 ピン HIGH (ブレッドボード +)
「UART Download Mode(書き込みモード)」IO0 ピン LOW (ブレッドボード -)
のように接続する。
モードを切り替えるごとにリセットを行う。(RSTピンをGNDに落として(LOW)、ピンを外すことでリセットがかかる)



2, ATコマンドで通信
スケッチを書き込んでしまうとATコマンドが使えなくなるので、まずはATコマンド通信を行ってみる。

Tera Term 設定
 改行コード 受信、送信ともに CR+LF
 ボーレートは 115200

「Flash Boot Mode(実行モード)」で ESP-WROOM-02 をリセットするとゴミ?が流れ、

ready

となる。
続いて、

AT

と送信。

OK

となれば通信成功。
一応、MACアドレスを確認しておく。

AT+CIPSTAMAC?


+CIPSTAMAC:"xx:xx:xx:xx:xx:xx"
OK


と帰ってきて、MACアドレスが確認できる。

3,Arduino IDE の設定

[ファイル]→[環境設定]→(追加のボードマネージャのURL:)に、
http://arduino.esp8266.com/stable/package_esp8266com_index.json
を追加する。

[ツール]→[ボード]→[ボードマネージャ]→ボードマネージャで "esp" を検索。
esp8266 by ESP8266 Community
を選択し、インストール。

書き込みボード [Generic ESP8266 Module]の設定。

オプション : 値

Flash Mode : QIO
Flash Frequency : 40MHz
Upload Using : Serial
CPU Frequency : 80 MHz
Flash Size : 4M(3M SPIFFS)
Reset Method : nodemcu
Upload Speed : 115200
Port : 接続しているCOMポート

4,Arduinoスケッチでの動作確認

ESP-WROOM-02 を UART Download Mode(書き込みモード) に変更し、任意のサンプルスケッチなどを送信。
送信が完了したら Flash Boot Mode(実行モード) に変更し、ESP-WROOM-02 をリセットする。
私は、[スケッチ例]→[EPS8266WWebServer]→"AdvancedWebserver" で WI-Fi 経由の Webserver としての動作を確認できました。

5,ESP-WROOM-02 をデフォルト(ATコマンド通信できるように)に戻す


一度Arduinoスケッチが書き込まれるとATコマンドが使えなくなるが、正規のファームウェア書き直すことで、再びATコマンドが使えるようになる。

ファームウェア : ESP8266 NONOS SDK V2.0.0 20160810 をダウンロード
Flash Download Tools : Flash Download Tools V3.4.4 (ESP8266 & ESP32) をダウンロード

ESPFlashDownloadTool_v3.4.4.exe を実行。
ESP8266 DownloadTool を選択。



解凍した "ESP8266 NONOS SDK V2.0.0 20160810" の中から画像のようにファイルを選択する。
同じく画像のように アドレス と SpiFlashConfig を設定し、START ボタンを押す。



正常に終了すれば、再びATコマンドが使用できるようになる。

コメント