カンマ区切りで時間とセンサーデータを取得しよう
次に、温湿度センサーの値をCSVファイルにしてグラフ化をしてみましょう。グラフは、Microsoft Excel、Googleスプレッドシートなどの表計算ソフトウェアに表示します。
センサーの値を取得したら、「取得時間、温度、湿度」の情報をカンマ区切りで1行で書き出し、Excelなどでグラフ化してみましょう。
例えば、10分毎に以下のような値を取得し、CSVファイルsensor_data.csv
に追記する形で記録します。
$ cat sensor_data.csv 2017/11/12 10:30:07,25.2,46.3 2017/11/12 10:40:07,24.2,46.1 2017/11/12 10:50:07,24.1,46.2
プログラムの例
#!/usr/bin/python import Adafruit_DHT import datetime sensor = Adafruit_DHT.DHT22 pin = 23 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) if humidity is not None and temperature is not None: now = datetime.datetime.now() str = '{0},{1:0.1f},{2:0.1f}'.format(now.strftime('%Y/%m/%d %H:%M:%S'),temperature, humidity) print str with open('/home/pi/sensor_data.csv', mode = 'a') as fh: fh.write(str+'\n') else: print 'Fail'
sensor_csv.py
に実行権限を付けます。
$chmod 755 sensor_csv.py -rwxr-xr-x 1 pi pi 478 11月 12 10:11 sensor_csv.py
プログラムsensor_csv.py
を実行してみましょう。
$ ./sensor_csv.py 2017/11/12 10:57:58,24.3,46.3
sensor_csv.py
が実行されたら、sensor_data.csv
に「取得時間、温度、湿度」が出力されますので確認してみましょう。
$ cat sensor_data.csv 2017/11/12 10:57:58,24.3,46.3
そして最後に、10分ごとに実行するようにcrontabを設定します。
$ crontab -e */10 * * * * /home/pi/sensor_csv.py
できあがったCSVファイルを使って、CSVファイルをグラフ化してみましょう。
今回はグラフ化にExcelを使いましたが、取得したCSVファイルを元に、Pythonを使ってグラフ化することも可能です。ぜひチャレンジしてみましょう。