DS18B20を用いてArduinoで水温ロガーを作成してみた

スポンサーリンク

はじめに

研究の問題点の一つとして研究機器のコストの高さが挙げられます。
研究機器のコストが高い理由としては需要が少ないことが起因して価格が高くなることと、様々な研究機器を扱う代理店による中抜きがえぐいことが考えられます。

そこで私は自作できないかと思いました。自作できれば中抜きなんて物は存在しないし、コストも抑えられると思います。

まず、第一弾として水温ロガーを作成したいと思います。

スポンサーリンク

使用機器

  • Arduino Uno

  • Micro SD TFカードメモリシールドモジュール

  • DS18B20温度センサー

スポンサーリンク

DS18B20温度センサーでの測定値のArduinoへの送信

まずはDS18B20で測定した温度をArduinoで読み取っていきたいと思います

  • 接続方法
図1. 接続方法
図2. 実際に接続した様子
  • プログラム

OneWireとDallasTempretureというライブラリーを利用します。

プログラムは以下の通りです。

________________

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 10

#define SENSER_BIT    12      

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));

  delay(1000);

}

________________

シリアルモニターで温度が送信されているか確認します。

シリアルモニターは右上の虫眼鏡のようなマークをクリックするとみることができます。

図3. シリアルモニターの位置
図4. シリアルモニターの様子

温度を測定できていることを確認できました。

測定した温度をSDカードに保存

次に測定した温度をMicro SD TFカードメモリシールドモジュールを使って自動的に保存できるようにします。

  • 接続方法
図5. SDと温度センサーの接続方法
図6. SDと温度センサーを実際に繋いだ様子

  • プログラムコード

先ほどのライブラリーに加えてSPIとSDというライブラリーを利用します

________________

#include <OneWire.h>

#include <DallasTemperature.h>

#include <SPI.h>

#include <SD.h>

#define ONE_WIRE_BUS 9

#define SENSER_BIT    12     

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

const int chipSelect = 10;

void setup(void) {

  Serial.begin(9600);

  sensors.setResolution(SENSER_BIT);

  Serial.print(“Initializing SD card…”);

  if (!SD.begin(chipSelect)) {

     Serial.println(“Card failed, or not present”);

     return;

    }

    Serial.println(“card initialized.”);

}

____________

まずシリアルモニターを見ると温度が測定できていることが確認できます。

また、一行目の2Initializing SD card…card initialized.からSDカードが認識されたことも確認できます。

図7.SDと温度センサーを接続した時のシリアルモニターの様子

そこでSDカードを抜いて中身を確認するとDATALOG.csvというファイルが入っていることが確認できます。

この中身を見ると温度が書き込まれています。

図8. データログ

おわりに

水温ロガーを簡単に作ってみました。

実際に使うには測定時刻も一緒に記録できるようにすることや最適化した基盤を作成すること、外で使う場合には防水機能も必要になると思います。

今回かかったコストは全体で5000円以下でした。

水温ロガーとしては妥当な値段であり、特別安く作ることはできませんでした。

しかし、Arduinoがもつポテンシャルを活かせば様々な環境要因を一つの機器で測定できるようになると思います。

まだまだ改善の余地はありますが、コストという問題点を解決するうえで有効な手段になっていくのではないかと期待できます!

コメント

タイトルとURLをコピーしました