<reponame>masafm/DHT22_Python<filename>sample.py
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 29 09:17:11 2019
DHT22 RaspberryPi 3 B+
温度、湿度センサーのテスト
@author: <NAME>
"""

import RPi.GPIO as GPIO
from time import sleep
import dht22 # 温湿度センサーモジュール

TEMP_SENSOR_PIN = 4 # 温湿度センサーのピンの番号
INTERVAL = 10 # 監視間隔（秒）
RETRY_TIME = 3 # dht22から値が取得できなかった時のリトライまので秒数
MAX_RETRY = 20 # dht22から温湿度が取得できなかった時の最大リトライ回数

class EnvSensorClass: # 温湿度センサークラス
    def GetTemp(self): # 温湿度を取得
        instance = dht22.DHT22(pin=TEMP_SENSOR_PIN)
        retry_count = 0
        while True: # MAX_RETRY回まで繰り返す
            retry_count += 1
            result = instance.read()
            if result.is_valid(): # 取得できたら温度と湿度を返す
                return result.temperature, result.humidity
            elif retry_count >= MAX_RETRY:
                return 99.9, 99.9 # MAX_RETRYを過ぎても取得できなかった時に温湿度99.9を返す
            sleep(RETRY_TIME)

GPIO.setwarnings(False) # GPIO.cleanup()をしなかった時のメッセージを非表示にする
GPIO.setmode(GPIO.BCM) # ピンをGPIOの番号で指定

#main
try:
    if __name__ == "__main__":
        env = EnvSensorClass()
        while True:
            temp, hum = env.GetTemp() # 温湿度を取得
            print("温度 = ", temp, " 湿度 = ", hum, "％")
            sleep(INTERVAL)
except KeyboardInterrupt:
    pass
GPIO.cleanup()

# -*- coding: utf-8 -*-
"""
Created on Sun Sep 29 09:17:11 2019
DHT22 RaspberryPi 3 B+
温度、湿度センサーのテスト
@author: <NAME>
"""

import RPi.GPIO as GPIO
from time import sleep
import dht22 # 温湿度センサーモジュール

TEMP_SENSOR_PIN = 4 # 温湿度センサーのピンの番号
INTERVAL = 10 # 監視間隔（秒）
RETRY_TIME = 3 # dht22から値が取得できなかった時のリトライまので秒数
MAX_RETRY = 20 # dht22から温湿度が取得できなかった時の最大リトライ回数

class EnvSensorClass: # 温湿度センサークラス
    def GetTemp(self): # 温湿度を取得
        instance = dht22.DHT22(pin=TEMP_SENSOR_PIN)
        retry_count = 0
        while True: # MAX_RETRY回まで繰り返す
            retry_count += 1
            result = instance.read()
            if result.is_valid(): # 取得できたら温度と湿度を返す
                return result.temperature, result.humidity
            elif retry_count >= MAX_RETRY:
                return 99.9, 99.9 # MAX_RETRYを過ぎても取得できなかった時に温湿度99.9を返す
            sleep(RETRY_TIME)

GPIO.setwarnings(False) # GPIO.cleanup()をしなかった時のメッセージを非表示にする
GPIO.setmode(GPIO.BCM) # ピンをGPIOの番号で指定

#main
try:
    if __name__ == "__main__":
        env = EnvSensorClass()
        while True:
            temp, hum = env.GetTemp() # 温湿度を取得
            print("温度 = ", temp, " 湿度 = ", hum, "％")
            sleep(INTERVAL)
except KeyboardInterrupt:
    pass
GPIO.cleanup()
# -*- coding: utf-8 -*- Created on Sun Sep 29 09:17:11 2019 DHT22 RaspberryPi 3 B+ 温度、湿度センサーのテスト @author: <NAME> # 温湿度センサーモジュール # 温湿度センサーのピンの番号 # 監視間隔（秒） # dht22から値が取得できなかった時のリトライまので秒数 # dht22から温湿度が取得できなかった時の最大リトライ回数 # 温湿度センサークラス # 温湿度を取得 # MAX_RETRY回まで繰り返す # 取得できたら温度と湿度を返す # MAX_RETRYを過ぎても取得できなかった時に温湿度99.9を返す # GPIO.cleanup()をしなかった時のメッセージを非表示にする # ピンをGPIOの番号で指定 #main # 温湿度を取得