はじめに
研究の問題点の一つとして研究機器のコストの高さが挙げられます。
研究機器のコストが高い理由としては需要が少ないことが起因して価格が高くなることと、様々な研究機器を扱う代理店による中抜きがえぐいことが考えられます。
そこで私は自作できないかと思いました。自作できれば中抜きなんて物は存在しないし、コストも抑えられると思います。
まず、第一弾として水温ロガーを作成したいと思います。
使用機器
- Arduino Uno
- Micro SD TFカードメモリシールドモジュール
- DS18B20温度センサー
DS18B20温度センサーでの測定値のArduinoへの送信
まずはDS18B20で測定した温度をArduinoで読み取っていきたいと思います
- 接続方法
- プログラム
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);
}
________________
シリアルモニターで温度が送信されているか確認します。
シリアルモニターは右上の虫眼鏡のようなマークをクリックするとみることができます。
温度を測定できていることを確認できました。
測定した温度をSDカードに保存
次に測定した温度をMicro SD TFカードメモリシールドモジュールを使って自動的に保存できるようにします。
- 接続方法
- プログラムコード
先ほどのライブラリーに加えて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カードが認識されたことも確認できます。
そこでSDカードを抜いて中身を確認するとDATALOG.csvというファイルが入っていることが確認できます。
この中身を見ると温度が書き込まれています。
おわりに
水温ロガーを簡単に作ってみました。
実際に使うには測定時刻も一緒に記録できるようにすることや最適化した基盤を作成すること、外で使う場合には防水機能も必要になると思います。
今回かかったコストは全体で5000円以下でした。
水温ロガーとしては妥当な値段であり、特別安く作ることはできませんでした。
しかし、Arduinoがもつポテンシャルを活かせば様々な環境要因を一つの機器で測定できるようになると思います。
まだまだ改善の余地はありますが、コストという問題点を解決するうえで有効な手段になっていくのではないかと期待できます!
コメント