CoSG8 が 2024年10月31日23時19分49秒 に編集
初版
タイトルの変更
寒暖差チェッカー
タグの変更
RaspberryPi
BME280
記事種類の変更
製作品
ライセンスの変更
(CC BY-NC-ND 4+) Creative Commons Attribution-NonCommercial-NoDerivs CC BY-NC-ND version 4.0 or later
本文の変更
**概要** 季節の変わり目って体調を崩しやすいですよね。その理由として、「寒暖差疲労」というものが知られています。 これは、寒暖差の大きい環境によって自律神経の乱れがもたらされ生じる疲労のことです。 寒暖差は、時間(昼と夜)や場所(室内と室外)が変化することによって生じると考えられます。 このうち、時間変化の情報は天気予報で確認できますが、場所変化による寒暖差についての情報を目にすることは少ないのではないでしょうか。 そこで今回、毎日24時間自宅の室内気温と屋外室温をRaspberry Piを用いて測定することで、場所変化による寒暖差の可視化を試みました。 **部品** | 名称 | 型番 | 個数 | |:---:|:---:|:---| | Raspberry Pi | Raspberry Pi 3 Model B+ | 2 | |温湿度センサー| BME 280 | 2 | **配線図**  **設置方法**  特に防水対策はしていませんが、2年以上問題なく稼働しています。 **ソースコード** ```python # coding: UTF-8 import os import datetime import smbus import time from bme280 import bme280, bme280_i2c import RPi.GPIO as GPIO global bme280_addr interval_sec = 290 dPath = '/home/pi/myPython' logDir = 'home_log' # I2C Busの指定 i2c_bus = 1 # SMBusオブジェクトの取得 i2c = smbus.SMBus(i2c_bus) # BME280のアドレス指定 bme280_addr = 0x76 # BME280初期化 def bme280_init(): bme280_i2c.set_default_i2c_address(bme280_addr) bme280_i2c.set_default_bus(i2c_bus) bme280.setup() # BME280から気圧と温度を取得 def bme280_data(): data = bme280.read_all() return (data.temperature, data.humidity, data.pressure) def get_data(): d = datetime.datetime.now() date = d.strftime('%Y/%m/%d %H:%M') temperature, humidity, pressure = bme280_data() temperature = round(temperature, 1) humidity = round(humidity, 1) pressure = round(pressure, 1) return (date, temperature, humidity, pressure) # メイン処理 def main(): # BME280初期化 bme280_init() # データ取得 date, temperature, humidity, pressure = get_data() # 表示 print(date) print("{0:6.1f} C".format(temperature)) print("{0:6.1f} %".format(humidity)) print("{0:6.1f} hPa".format(pressure)) # データ保存 d = datetime.datetime.now() datetxt = d.strftime('%Y%m%d') fName ="home_log_{}.csv".format(datetxt) saveDir = os.path.join(*[dPath,logDir]) os.makedirs(saveDir, exist_ok=True) filePath = os.path.join(*[saveDir,fName]) f = open(filePath,'a') txt = date + ', ' + str(temperature) + ', ' + str(humidity) + ', ' +str(pressure) + '\n' f.write(txt) f.close() # 待機 startTime = time.time() while True: timeCount = time.time()-startTime if timeCount > interval_sec: break # GPIO 終了処理 GPIO.output(BL_PIN, GPIO.LOW) GPIO.cleanup() if __name__== "__main__": main() ``` 5分後の温度、湿度、気圧が、1日毎にcsvファイルとしてRaspberry Piに保存されます。 保存されたcsvファイルは、FileZillaなどのFTPソフトを用いてPCに移行します。 **結果** 1. 寒暖差の日内変動   こちらはある1日(2024年10月1日)の室内外の気温、並びに寒暖差の変動を表しています。 この図を見ると、室内の気温はほぼ変動しておらず、屋外の気温が日中にかけて上昇するのが見て取れます。 それに合わせて、寒暖差(室内気温-屋外気温)も日中にかけて高くなります。 その他の特徴として、朝8時までは寒暖差がマイナス、つまり室内の方が気温が高いことも挙げられます。 なお、この日は平日で、筆者は日中留守にしておりました。   こちらは1年間(2022年7月1日~2023年6月30日)における朝7時の室内外の気温、並びに寒暖差の変動を表しています。 この図を見ると、例えば10月から11月にかけては、室内の気温はあまり変化していませんが、 屋外の気温は低下しており、それに合わせて寒暖差も徐々に変動しているのが分かります。 一般に、寒暖差疲労は寒暖差が7℃以上の際に生じやすいと言われており、朝7時であれば12月から3月にかけてが該当するようです。 ちなみに、朝7時というのはは筆者が起床する時間で、冷暖房の影響を考慮しなくて済む時間を選択しております。 以上、室内外気温差を可視化することに成功し、結果、季節によって変動すること、また、同じ季節であっても日によって変動することが明らかになりました。