ビニールハウスに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)日々更新中です。