Arduinoを使ったmicroSD記録のデータロガー(温度、照度)作成

父親が小屋の気温や照度のデータが取りたいと言っていたのでデータロガーを作ってみました。 温度と照度を10分間隔でmicroSDにcsv形式で保存する仕様です。 今回使うセンサは以下の2つ

・温度センサ LM61CIZ 下図右
・明るさセンサ TEMT6000 下図左

2013-04-08_logger1

microSDとの接続には秋月で売っている マイクロSDカードスロットDIP化キットを使いました。 ブレッドボードで使う場合にはピンヘッダをハンダ付けすると便利です。

接続表

2013-04-09_table

まずmicroSDを繋げている時に問題が・・・ arduinoの出力電圧が5Vに対しmicroSDの動作電圧は2.7~3.6V 手元にあった270Ωと510Ωで分圧することで 5*(510/(510+270))≒3.2V

2013-04-08_logger2

良い感じに減圧出来ました。 最後に2つのセンサを取り付けます。 TEMT6000は上から出力電圧、GND、5V LM61CIZは文字が書いてある面から見て左から5V、出力電圧、GND 詳しくは各データシートを参照してください。 各端子繋いであげるとこれでハードは出来上がりです。

2013-04-08 01.06.26s

あとはarduinoにプログラムを書き込むだけ。 今回のプログラムでmicroSD関連は公式のライブラリもあったんですが、公式ライブラリをより使いやすく改良された方がいたのでこちらのサイトのものを使わせて頂きました。 実際にmicroSDに書き込まれたログデータがこちら

2013-04-09_logger4

arduinoに書き込んだスケッチは以下のとおりです。

今回はmicroSDに書き込むデータロガーですがネットワークと接続してcosmなどのサービスを利用するとスマホと組み合わせたりできて、より面白いような気がします。 長期休みも終わり学校が始まったので更新の間隔も広まりそうですが、ちょくちょく何か面白いものを作って行きたいですね。

スポンサーリンク
スポンサーリンク

コメント

  1. toidatakasiybb@yahoo.co.jp より:

    大変参考になりました。
    ところで、書き込んだスケッチが示されていますが、その中に
    const int chipSelect = 4;
    の行があります。
    チップセレクトはaruduinoのD10pinに繋がっていると思いますので、
    const int chipSelect = 10;
    とすべきではないでしょうか?
    それとも当方の見方が違っているのでしょうか?

    • icchi より:

      ご指摘ありがとうございます。
      仰るとおりです。第一Arduinoの4番Pinには何も繋がっていませんね^^;

      ソースコードを修正しました。