LoginSignup
6
9

More than 5 years have passed since last update.

[ESP-WROOM-02]ESP-WROOM-02+土壌湿度センサーでブラウザにアナログセンサーの値を表示させる

Last updated at Posted at 2016-05-03

はじめに

このエントリは、以下のエントリの続きです

育てている盆栽の水やりのタイミングを見える化したかったので、ESP-WROOM-02、土壌湿度センサーを使って、土の中の水分を測ります

ひとまず、ESP-WROOM-02にスケッチ(プログラム)を書き込んで、ブラウザにアナログセンサーの値を表示させてみたいと思います

電子部品

参考

計測

1.計測部品の接続

ESP-WROOM-02の記事のanalogRead()の項目にある接続を参考に、ESP-WROOM-02と土壌湿度センサーを接続した

アナログ入力を行うにはTOUTピンを使う

それぞれの参考にあるように、TOUTピンには1V付近の電圧かけてあげる必要があるので、ESP-WROOM-02から出力される3.3Vを抵抗を使って分圧して、1Vくらいになるようにした
(200Ωと100Ωを使うことで3分の1の1.1Vになる想定)

手書きですが、回路図は以下
IMG_20160503_204424.jpg

IMG_20160503_202459.jpg

2.スケッチの作成

[ESP-WROOM-02]ブラウザにHelloWorldを表示させるで使ったスケッチを、アナログセンサーの値を読み込めるように修正する
(ArduinoIDEのメニューのファイル>スケッチの例>ESP8266WebServer>HelloServerを選択して、サンプルスケッチを使う)

Device Plus 第34回にあるように、analogRead関数ではなく、system_adc_read関数を使う

arduino
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "自分のwifi環境のSSID";
const char* password = "自分のwifi環境のパスワード";

ESP8266WebServer server(80);

const int led = 13;

int analog_value = 0; // アナログセンサーの値を格納する変数の初期化

//ESP-WROOM-02でアナログ入力をするために必要
extern "C" {
#include "user_interface.h"
}

void handleRoot() {
  digitalWrite(led, 1);

  // アナログセンサーの値を取得するためsystem_adc_read関数を使う
  // センサーを水につけていない状態で1024を返すので、1024との差を水分の値とする
  analog_value = 1024 - system_adc_read();

  // 画面に表示するため、String型にキャストする
  String analog_value_str = String(analog_value);

  // htmlで出力 第三引数にhtmlタグを書ける
  server.send(200, "text/html", "<center><h1>soil solid sensor value is...</h1><font size='36'>" + analog_value_str + "</font></center>");
  digitalWrite(led, 0);
}

修正後、ESP-WROOM-02にスケッチを書き込む

ブラウザにIPアドレスを入力して土壌湿度センサーの値を表示する

水中から出した状態
Screenshot_2016-05-03-19-07-23.jpg

水中に入れた状態
Screenshot_2016-05-03-19-06-49.jpg

まとめ

RaspberryPi+ADコンバータで取得するよりも、関数ひとつで値が取得できるので、非常に楽。
次回は、twitter連携をしたい

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9