共同課題とインターンシップに取り組んでいる工学部の学生として、私はあまり面白くない課題を割り当てられました。私は一度に数時間にわたってマシンを監視し、発生したエラーを観察しました。喜んでやっていたものの、この仕事は信じられないほど退屈で、私が何をしているのか知らない人なら、きっと私の精神状態に疑問を抱くだろう。
継続的な観察は、この特定の「データ ロギング」シナリオでは簡単で適切なソリューションでしたが、幸いなことに、多くの場合、エラーを自動的に追跡できます。現代の自動化された製造設備には通常、この種の機能が組み込まれていますが、より一般的でコスト効率の高い自動ログツールの場合、 アルドゥイーノ ボードは素晴らしい解決策になり得ます。
Arduinoデータロギングシールド
ここで説明するセットアップでは、Arduino Unoと 優れたAdafruitデータ ロギング シールド。 入力はDHT11温度/湿度センサー モジュールを介して行われますが、ハードウェアとコードを簡単に変更して、あらゆるデジタル入力に対応できます。 他のタイプの開発ボードにコードを適応させることもできますが、SDカード アダプターを用意する必要があります。
必要なアイテム:
- アルドゥイーノ
- DHT11モジュール
- CR1220 3V電池
- SDカード
Arduinoデータロガー: ハードウェアの組み立て
画像: ジェレミー・S・クック
データ ロギング デバイスをセットアップするには、次の手順に従ってください。
1.必要に応じてArduino Unoを治具として使用し、データ ロギング シールドと付属のオス ヘッダーをはんだ付けします。
2.DHT11モジュールの + ピンと - ピンをシールドのプロトタイピング領域のグランドと +5Vに半田付けします。
3.信号ピンをArduinoデジタルピン4に接続します。
4.L1をArduinoのピン2に、L2をシールドのピン3に配線します。これらは技術的にはオプションですが、ロガーがSDカードとやり取りするときに視覚的なフィードバックを提供します。
4.シールドを差し込み、RTCバッテリーを挿入します。
RTC Arduinoコード
シールドのRTCモジュールを使用すると、ログに記録された各情報にタイムスタンプを付けることができます。単一のバッテリーで何年も動作しますが、Arduinoが再プログラムされた場合でも、ユーザーが最初に設定する必要があります。このシールドの最新バージョンでは、PCF8523 I2C RTCモジュールが使用されています。これはArduinoのアナログ ピン4と5に接続されているため、使用できるアナログ入力は4つだけです。
Arduinoデバイスをプログラムするには、次の手順に従ってください。
1.AdafruitのRTClibを入手します。 このGitHubリポジトリ で入手できます。
2.pcf8523サンプルを開き、それを使用してRTCモジュールをプログラムします。
3.シリアル モニターを使用して、コンパイル時にコンピューターの時計に基づいて設定される時刻が正しいことを確認します。このモジュールを使用すると、情報をタイムスタンプすることができます。アナログ入力4と5を占有しますが、そのトレードオフは十分に価値があるようです。
ハードウェアのセットアップはこれで完了です。
この実験に使用したコードは GitHubで入手可能で、いくつかの異なる形式のタイムスタンプを使用して温度と湿度を追跡します。最初の「millis」列は、Arduinoの電源がオンになってから経過した時間を示し、2番目の列は「unixtime」(1970年1月1日からの秒数) を示します。3番目の列には、人間が読める形式で時刻と日付が記録されます。このコードは、 この温度/光ロガーに一部基づいており、プロジェクトのニーズに応じて検討することをお勧めします。
Arduino温度・湿度データロガー
画像: ジェレミー・S・クック
デバイスのログ機能をテストするために、私は以前ドアに断熱材を取り付けておいたガレージにArduinoデータロガーを設置しました。断熱前の空間に関するデータはありませんが、一日を通して内部の温度がどのように変化するかを見るのは興味深いと思いました。
10秒ごとに読み取りを行うようにロガーを設定しました。1月24日午前10時11分から24時間にわたって、ロガーは8,640個のデータ ポイントを生成しました。理想的には、データロガーを事前に適切なデータを記録するように設定する必要がありますが、私の場合は、優れたオープン ソースのOffice代替品であるLibreOfficeを使用してCSVファイルを開きました。翌日の午前10時21分に抽出したところ、ロガーは8706行のデータを生成しました。
きれいなグラフを得るために、 プロジェクトのGitHubリポジトリに含まれるExcelファイルに示されている次のオフセット関数を使用して、1時間ごとに1つの読み取り値を抽出しました。
[OFFSET(A$2,(ROW()-2*360,0)]
温度は青で表され、相対湿度は赤で表されます。フロリダの湾岸の「寒い」1月の日。画像: ジェレミー・S・クック
このグラフではさらに多くのことがわかりますが、温度 (青で表示) は最初の7時間は比較的安定していることに気付くかもしれません。午後5時頃になると、夜を通して気温が下がり始めます。グラフに表示されている最低気温は1月25日午前8時11分の58度ですが、データ自体のMIN関数を使用してデータを詳しく見ると、ガレージの温度は午前8時57分に54度をわずかに下回るまで下がっています。この時期は妻と子供たちが学校に出かける時期と重なり、私たちのガレージはフロリダの有名な厳しい1月の冬の天候にさらされることになります。
Weather Undergroundによると、私の住んでいる地域の1月25日の朝の最低気温は45度だったので、断熱材は少なくともわずかに効果があるようです。多少の変動があるので、さらに細かく分けると、いくつかの方法に分けることができます。
家の温度や湿度の状態を追跡するのは楽しいことですが、このようなグラフィカルな追跡は、産業環境やビジネス環境では非常に強力になる可能性があります。データ ロギングを使用すると、X、Y、Zプロセスで改善を行ったこと、または将来どこに重点を置くべきかを明確に示すことができます。