def __init__(self, *args, pin=4, **kwargs): super(AM2302, self).__init__(*args, **kwargs) self.pin = pin self.temp_char = self.get_service("TemperatureSensor")\ .get_characteristic("CurrentTemperature") self.humidity_char = self.get_service("HumiditySensor")\ .get_characteristic("CurrentRelativeHumidity") self.sensor = DHT22.sensor(pigpio.pi(), pin)
def __init__(self, *args, pin=4, **kwargs): super().__init__(*args, **kwargs) self.pin = pin serv_temp = self.add_preload_service('TemperatureSensor') serv_humidity = self.add_preload_service('HumiditySensor') self.char_temp = serv_temp.get_characteristic('CurrentTemperature') self.char_humidity = serv_humidity \ .get_characteristic('CurrentRelativeHumidity') self.sensor = DHT22.sensor(pigpio.pi(), pin)
def __setstate__(self, state): self.__dict__.update(state) self.sensor = DHT22.sensor(pigpio.pi(), self.pin)
from time import sleep import pigpio from sensors import DHT22 pi = pigpio.pi() dht22 = DHT22.sensor(pi, 27) HUMID_LOWER_LIMIT = 75 # percent DRY_UPPER_LIMIT = 25 # percent is_initialised = False def init_sensor(): dht22.trigger() sleep(0.5) global is_initialised is_initialised = True def get_humidity(): if not is_initialised: init_sensor() dht22.trigger() return dht22.humidity() def is_humid(): return get_humidity() >= HUMID_LOWER_LIMIT
from datetime import datetime from time import sleep latitude, longitude, temperature, humidity, PM1_0, PM2_5, PM10 = '25.045582', '121.531032', '', '', '', '', '' data = dict(app="AirBot-Pi", device_id="1001000", device="AirBot Pi", ver_format="3", fmt_opt="0", FAKE_GPS="1", gps_fix="1", gps_num="100", gps_lat=latitude, gps_lon=longitude, s_t0=temperature, s_h0=humidity, s_d2=PM1_0, s_d0=PM2_5, s_d1=PM10) while True: data['s_h0'], data['s_t0'] = map(lambda num: round(num) if num else '', DHT22.t_h()) data['s_d0'] = PPD42NS.pm25() upload(data) print("[" + datetime.today().strftime('%Y-%m-%d %H:%M:%S') + "]" + " upload done!") print(data) sleep(60)
if __name__ == "__main__": print(f"[sensor_capture] [{datetime.today()}] Starting!") config_file = Path(__file__).parent.absolute().joinpath( "configuration/conf.yml") with open(config_file, 'r') as yamlfile: config = yaml.safe_load(yamlfile) debug = config["debug"] sensor_pin = config["sensor_pin"] aggregation_time = config["aggregation_time"] im_alive_countdown_sec = config["im_alive_countdown_sec"] dht22 = DHT22(sensor_pin=sensor_pin, debug=debug) rc = RedisClient() gms = GoogleMailSender() aggregation_hourglass = Hourglass(aggregation_time) alive_hourglass = Hourglass(im_alive_countdown_sec) opt_temp_tc = ThresholdCheck(config["lb_opt_temp"], config["ub_opt_temp"]) crit_temp_tc = ThresholdCheck(config["lb_crit_temp"], config["ub_crit_temp"]) opt_hum_tc = ThresholdCheck(config["lb_opt_hum"], config["ub_opt_hum"]) crit_hum_tc = ThresholdCheck(config["lb_crit_hum"], config["ub_crit_hum"]) disk_space_tc = ThresholdCheck(config["disk_space_gb"], 100000)