ビニールハウスにRaspberry Pi製の温湿度ロガーを設置しています。
測定値はインターネット経由でGoogleスプレッドシートに保存し、そこから動的な栽培管理用データ閲覧ページを作成したり、LINEへの通知に使っています。
インターネットへの接続にはモバイルルーターを使っているため、たまに発生する切断対策として自動再起動設定をしました。
そして、切断中のデータのバックアップ用に電池で動くウォッチロガーを使っていたのですが……インターネット切断時もRaspberry Pi自体は正常に作動しているので、測定値をローカルに保存するようにしてみました。
方法としては単純で、測定値をPythonでCSVファイルに書き込んでいくだけです。必要なライブラリは標準で用意されています。
(Raspberry Pi自体が止まった時のために、相変わらずウォッチロガーは必要になりますが。)
今回はこちらを参考にさせていただきました。
▼ DHT22の測定値をCSVファイルへ書き込むPythonスクリプト
測定値をCSVファイルに追記していきます。CSVファイルはあらかじめ作っておきます(今回は「sample.csv」)。
#!/usr/bin/env python3 import Adafruit_DHT import time import datetime import csv sensor = Adafruit_DHT.DHT22 pin = 4 while True: x = 0 while x < 1: try: humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) x = 1 except: x = 0 dt_now = datetime.datetime.now() with open('/home/pi/Python/DHT22/sample.csv', 'a') as f: writer = csv.writer(f) writer.writerow([dt_now, '{0:0.1f}'.format(temperature), '{0:0.1f}'.format(humidity)]) time.sleep(900)
ピン番号やフォルダ等は適宜変更してください。
最後に、デーモン化して完了です。
***
いやー、なぜ今までなぜやらなかったのか……。まぁ、とりあえず、よかったです。簡単ですし、いろいろ使えそうですね。
DHT22は安価にもかかわらず精度がいいですね。必要に応じてCO2や照度、土壌水分なんかのセンサーも使ってみたいですね。
Twitter(@nkkmd)日々更新中です。