WeMosを使ってみる

DS18B20(1-Wire 温度センサー)


WeMosを使ってDS18B20の温度センサーから温度を読み込んでみます。
結線は以下のようになります。
1-WireなのでWeMosとの接続は1本だけです。


WeMosのスケッチは以下の通りです。
以下のページを参考にさせていただきました。
DS18B20(1- Wire)で温度計測
注意点としてなぜかD0ポートからデータを読み込むと正しく動きませんでした。
/*
 * DS18B20 Temperature sensor
 * http://akademia.nettigo.pl/ds18b20/
 *
 * 18B20       WeMos
 * VCC    ---- 3.3V
 * OUT    -+-- D5(IO14) 
 *         |
 *        4.7K
 *         |
 * VCC    -+
 * GND    ---- GND
 */

#include <OneWire.h>
#include <DallasTemperature.h>
 
#define ONE_WIRE_BUS 14      // データで使用するIOポート
#define SENSER_BIT    9      // 精度の設定bit
 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
 
void setup(void) {
  Serial.begin(9600);
  sensors.setResolution(SENSER_BIT);
}
 
void loop(void) {
  sensors.requestTemperatures();              // 温度取得要求
  Serial.println(sensors.getTempCByIndex(0)); //温度の取得&シリアル送信
}

IDEのシリアルモニターにはこんな感じで表示されます。


「高精度温度湿度計 ライフナビD203」と比較すると、まずまずの精度で取れています。



これ以外の1Wire温度センサーとしてDHT-11 DHT-22がありますが、DHT-11は分解能が1度なので、目安程度にしかなりません。
DHT-22は残念ながら持ってないです。

続く...