![見出し画像](https://assets.st-note.com/production/uploads/images/75766411/rectangle_large_type_2_3c9a6ee5513d7968e081a87bf31a831a.jpeg?width=800)
ラズパイいじり〜温湿度ロガー編④
前回までに、音湿度センサーを使い、測定温度により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ファイルを開くとタイムスタンプのついたデータが格納されています。
![](https://assets.st-note.com/img/1649107887984-Ps18EFCGEy.jpg?width=800)
次回は、CSVファイルの作成とLED操作を組み合わせていきます。
この記事が気に入ったらサポートをしてみませんか?