2017年1月28日土曜日

ESP-WROOM-02 で温度センサを使ってみた

概要

前回 Arduino で温度センサを使ってみたので、ESP-WROOM-02 でも使ってみました

環境

配線

esp8266_temp_sensor_circuit.jpg

Arduino 時と違うのはセンサの値を読み取るときに 1/3 に分圧している点です
WROOM の TOUT ピンは 1.1v 以下にする必要があるのはいつものことです

あとはコンデンサを使ったり 5v, GND に接続するのは Arduino の時と同じです

スケッチ

TOUT から読み取ったアナログ値から温度を求めるスケッチは以下の通りです

#include <ESP8266WiFi.h>
extern "C" {
  #include "user_interface.h"
}

int getToutValue(){
  int res = system_adc_read();
  return res;
}

void setup() {
  Serial.begin(115200);
}

void loop() {
  int reading = getToutValue();
  // Analog -> mV
  float voltage = ((long)reading * 3000) / 1024;
  Serial.print(voltage);
  Serial.print(" mV, ");

  // mV -> 摂氏
  float tempC = (voltage - 500) / 10;
  Serial.print(tempC);
  Serial.println(" degress C, ");

  delay(1000);
}

ESP-WROOM-02 でアナログ値を読み込むために system_adc_read を使っています
内部の基準電圧は 3000 にします
( 3300 や 5000 だと値がおかしくなりました )

動作確認

スケッチを書き込んでシリアルモニタを起動してください
esp8266_temp_sensor_ret.png

Arduino で温度センサを使った時と同じ環境で試したところ値がほぼ同じ値になったので問題なく取得できていると判断しました

最後に

ESP-WROOM-02 で温度センサを使ってみました
実は過去に超音波センサを使った際に温度センサも一緒に使っていたのですが、そのときは超音波センサを使うのがメインだったので温度センサの値は細かくチェックしていませんでした

とりあえず ESP-WROOM-02 でも温度センサは問題なく動作しました

0 件のコメント:

コメントを投稿