IoTに挑戦

【IoTに挑戦】測定した温湿度をCSVファイルに格納する準備をする

ラズパイ3

おはようございます。じぇいかわさきです。

スポンサーリンク

 

前回までに、カンマ区切りで温湿度を出力する事ができるようになりました。

 

DBにデータを格納するためには、カンマ区切りで出力したデータを、CSV形式のファイルとして保管できるようにしなければいけません。

 

ますは、CSVで保管するためには日時をキーにしてファイルする必要がありますね。

 

その書式で出力ができるように考えていきましょう。

 

ラズパイ3

 

 

 

DHT11センサーの問題に対処する

今回使用しているDHT11という温湿度センサーですが、実はこのセンサーにはちょっとした問題があるようなんです。

実験している時に気がついたんですが、実行ボタンを頻繁に押してデータの取得をしている時に、たまに0,0という感じで、データの取得が出来ない場合があるんです。

 

どうやら、これはこのDHT11センサーの仕様の問題で、データの取得をする間隔が、あまり短いとデータ取得出来ないみたいなんです。

 

このデータ取得間隔は、仕様では6秒以上間隔を開けなければいけないと言うこと。

 

しかし、一般的に温湿度を測定する場合、1秒間隔で測定するようなことはないので、この仕様は大きな問題にはなりませんね。

 

それでも、万が一0,0というデータが採取されて記録されても困りますから、0,0を取得した場合にはもう一度データを取得するようにプログラムを変更する必要があります。

[ads]

 

前回作成したプログラムを元に改版していきます。

 

import RPi.GPIO as GPIO  
import dht11 

tempGpio = 4  

GPOI.setmode(GPIO.BCM) 
dhtStart = dht11.DHT11(pin = tempGpio) 

while True: /* データの取得が0でなくなるまで繰り返す
    stat = dhtStat.read() 
    data = [stat.temperature,stat.humidity] 
    if stat.temperature == stat.humidity == 0: /* 温湿度の値がともに0の場合には、次の行を実行する
        continue /* whileの行に戻る
    print(‘,’.join(map(stat,data)))
    break /*ループを抜けて終了する

 

プログラム

 

こうすることで、データ取得時の0を回避することができるようになるのです。

 

実行した結果がこれ。

 

出力

 

 

データに日付を付ける

今までのデータ出力では、温湿度のデータだけなので、そのデータがいつ取得されたものなのかがわかりません。

 

一般的に、なんらかのデータを取得し保管する場合には、タイムスタンプを一緒に付けてデータを保管します。

 

タイムスタンプをつけることにより、そのデータは何時取得したものなのかが、可視化されるからです。

 

それでは、今までの温湿度のデータにタイムスタンプが付加されるように、修正をしていきます。

 

import RPi.GPIO as GPIO  
import dht11 
import datetime /* datetimeライブラリーをインポートする

tempGpio = 4  

GPOI.setmode(GPIO.BCM) 
dhtStart = dht11.DHT11(pin = tempGpio) 

while True:
    stat = dhtStat.read()
    now = str (datetime.datetime.now())[0:16] /* 変数nowに現在の日時を入力する
    data = [now,stat.temperature,stat.humidity]  /* dataの配列の先頭に、現在時間の変数nowを加える
    if stat.temperature == stat.humidity == 0:
        continue
    print(‘,’.join(map(stat,data)))
    break

[ads]

 

このように修正することで、従来は温湿度をカンマ区切りで出力していたものに、日付を付加して、何時取得したのかがわかるようにしました。

 

日付追加

 

こんな感じで、実行すると温湿度の前に、取得時の日時が追加されるようになりました。

 

まとめ

今回は、データをDBに記録していく際に、そのデータが何時のものかを分かるようにするため、データの先頭に取得日時を付加するプログラムに修正しました。

 

こうすることで、これから毎日データを取得していったとしても、それは何時頃のデータなのかわかるようになり、一定以上のデータが蓄積したときには、過去の同一季節と時間での比較が可能となるのです。

 

せっかく取得したデータも、基準となるキーがなければ、単なる数字でしかなくなってしまいます。

 

その数字が、日時というキーを付加することにより、価値が生まれてくると言うことですね。

 

普段、こういう事に関わっていない場合には、そんな事を気に留めることも無いのかもしれません。

 

日付の付いた値は、過去と比較して未来を予測していくことに、大事な要素となるんですね。

 

今回は、DBにデータを格納する前に、先々に有効活用していくための、日時と言うキーを付加するという話でした。

 

次回は、いよいよDBにデータを格納していくための、ファイルの書き出しについて考えていきたいと思います。

 

おじさんの挑戦は、まだまだ続きますよ。

 

 

 

[twt]

ABOUT ME
じぇいかわさき
進撃の社畜/弱小プロブロガー 本ブログは、還暦で定年の世代の筆者が、まだまだやれるという事を証明するために新たな事に挑戦した事を情報発信しているブログです。同世代の人達に対して、まだまだいろいろと頑張れる、第二の人生を楽しく生きていく為に現状維持は退化、失敗の反対は行動しないことを座右の銘とし、思い立ったことにチャレンジした記録です。また、せっかく稼いだ収益を騙し取られないように、毎日来る迷惑メールなどのネットリテラシーについても情報発信をしています。 このブログは ネットリテラシー ブログ 働くこと について書いており、第二の人生で頑張る同世代の心に刺さる記事を目指してます。人生100年、まだまだがんばれます。 >> Twitterをフォローする