見出し画像

ラズパイいじり〜温湿度ロガー編④

前回までに、音湿度センサーを使い、測定温度によりLED点滅、点灯させました。今回の目標はロガーであるため測定した温湿度をCSVファイルに保存してみます。

先ず今回は、Lチカは忘れてCSVへ書き出すプログラムを単体で確認します。
ファイル操作のためosモジュールを使用します。
保存先とファイル名を指定します。

このファイルがなければ先ず作成します。その後、定期的にセンサー測定値をCSVに保存します。

import RPi.GPIO as GPIO
import dht11
import datetime
import sys
import time
import os

Led_pin = 25 #LED用GPIO
set_temp1 = 20 #LED点灯
set_temp2 = 15 #LED点滅
tempGpio = 18

fileName='/home/pi/TEMP_LOG/test_log.csv'

#initialize GPIO
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BCM)
dhtStat=dht11.DHT11(pin=tempGpio)
GPIO.setup(Led_pin, GPIO.OUT)

 #ファイルがなければ作成する if not os.path.exists(fileName):
    thData=open(fileName,'w')
    thData.write('date_time,temp,hdmt\n')
    thData.close()


 #センサーDHT11からデータ取得 try:
    while True:
         #DHT11からデータを読み取りCSVに書き込み         stat=dhtStat.read()
        now=str(datetime.datetime.now())[0:16]
        data=[now,stat.temperature,stat.humidity]
        if stat.temperature==stat.humidity==0:
            continue
        thData=open(fileName,'a')
        thData.write(','.join(map(str,data))+'\n')
        thData.close()
 #取得データをコンソールに表示、6秒インターバル
        if stat.is_valid(): 
            print(stat)
            print("Last valid input: " + str(datetime.datetime.now()))
            print("Temperature: %-3.1f C" % stat.temperature)
            print("Humidity: %-3.1f %%" % stat.humidity)
            temp = str(stat.temperature) + "C  " + str(stat.humidity) + "%"
            time.sleep(6)
except KeyboardInterrupt:
        print("Cleanup")
        GPIO.cleanup()

CSVファイルを開くとタイムスタンプのついたデータが格納されています。

生成されたCSVファイル内容

次回は、CSVファイルの作成とLED操作を組み合わせていきます。

この記事が気に入ったらサポートをしてみませんか?