Пример #1
0
def read_temperatures():
    # Schreibt alle Variablen fuer die anderen Funktionen
    global rh1, rh2, rh3, t1, t2, t3, t4
    global absdraussen, absdrinnen, abscal
    global timestamp
    # zeit im ms seid 1/1/1970 + 2h UTC=>berlin+7200
    timestamp = time.time() * 1000 + 7200

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh1pin)
    rh1 = round(humidity, 1)
    t1 = round(temperature, 1)
    if verbose == 1:
        print ("read_temperatures: Sensor1: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t1, rh1))

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh2pin)
    rh2 = round(humidity, 1)
    t2 = round(temperature, 1)
    if verbose == 1:
        print ("read_temperatures: Sensor2: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t2, rh2))

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh3pin)
    rh3 = round(humidity, 1)
    t3 = round(temperature, 1)
    if verbose == 1:
        print ("read_temperatures: Sensor3: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t3, rh3))

    absdraussen = round(absfeucht(t2, rh2), 2)  ######################
    absdrinnen = round(absfeucht(t3, rh3), 2)  ######################
    abscal = absdraussen / absdrinnen
    # Wassertemperatur mittels DS18B20 lesen
    id = "28-021502f5e1ff"
    t4 = read_DS18B20(id)
Пример #2
0
def measure_and_write():
    print('Logging sensor measurements to {0}.'.format(GDOCS_SPREADSHEET_NAME))
    # login
    worksheet = login_open_sheet(GDOCS_OAUTH_JSON, GDOCS_SPREADSHEET_NAME)

    # Attempt to get sensor reading.
    humidity, temp = Adafruit_DHT.read(DHT_TYPE, DHT_PIN)

    # Skip to the next reading if a valid measurement couldn't be taken.
    # This might happen if the CPU is under a lot of load and the sensor
    # can't be reliably read (timing is critical to read the sensor).
    while humidity is None or temp is None:
        time.sleep(2)
        humidity, temp = Adafruit_DHT.read(DHT_TYPE, DHT_PIN)

    print('Temperature: {0:0.1f} C'.format(temp))
    print('Humidity:    {0:0.1f} %'.format(humidity))

    # Append the data in the spreadsheet, including a timestamp
    worksheet.append_row([
            '=TO_DATE(DATEVALUE("{0}")+TIMEVALUE("{0}"))'.format(
                    str(datetime.datetime.now())),
            temp,
            humidity],
            value_input_option = 'USER_ENTERED'
            )

    # Wait 30 seconds before continuing
    print('Wrote a row to {0}'.format(GDOCS_SPREADSHEET_NAME))
Пример #3
0
    def run(self):
        while True:
            h1, t1 = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 23)
            h2, t2 = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 24)

            if t1 >= conf["temp_notification_threshold"] or t2 >= conf["temp_notification_threshold"]:
                if self.__last_t_max is None or self.__last_t_max < conf["temp_notification_threshold"]:
                    message = 'ODNOTOWANO PODWYŻSZONĄ TEMPERATURĘ O WARTOŚCI: %s STOPNI' % '{0:0.1f}'.format(max(t1, t2))
                    notifier.send_temp_warning(message)
            if h1 >= conf["humidity_notification_threshold"] or h2 >= conf["humidity_notification_threshold"]:
                if self.__last_h_max is None or self.__last_h_max < conf["humidity_notification_threshold"]:
                    message = 'ODNOTOWANO PODWYŻSZONĄ WILGOTNOŚĆ O WARTOŚCI: %s PROCENT' % '{0:0.1f}'.format(max(h1, h2))
                    notifier.send_hum_warning(message)

            result = {}

            if h1 is not None and t1 is not None:
                result['Sensor1'] = {}
                result['Sensor1']['temperature'] = '{0:0.1f}'.format(t1)
                result['Sensor1']['humidity'] = '{0:0.1f}'.format(h1)

            if h2 is not None and t2 is not None:
                result['Sensor2'] = {}
                result['Sensor2']['temperature'] = '{0:0.1f}'.format(t2)
                result['Sensor2']['humidity'] = '{0:0.1f}'.format(h2)

            self.__lastResults = result
            self.__last_t_max = max(t1, t2)
            self.__last_h_max = max(h1, h2)

            time.sleep(10)
Пример #4
0
def on_message(client, userdata, msg):
	print(msg.topic+"\nMensaje: "+str(msg.payload))
	if (msg.topic == 'orden'):
		if (msg.payload == 'temperatura'):
			humidity, temperature = Adafruit_DHT.read_retry(sensor, temphum)
			if temperature is not None:
				message = 'temperatura:{0:0.1f}'.format(temperature)
			else:
				message = 'temperatura:0'
			client.publish("temperatura", message)
		if (msg.payload == 'humedad'):
			humidity, temperature = Adafruit_DHT.read_retry(sensor, temphum)
			if humidity is not None:
				message = 'humedad:{0:0.1f}'.format(humidity)
			else:
				message = 'humedad:0'
			client.publish("humedad", message)
		if (msg.payload == 'giroON'):
			GPIO.output(rel2_giro, 0)  #Turn ON
		if (msg.payload == 'luzON'):
			GPIO.output(rel3_luz_sirena, 0)  #Turn ON
		if (msg.payload == 'sirenaON'):
			GPIO.output(rel1_sirena, 0)  #Turn ON
		if (msg.payload == 'giroOFF'):
			GPIO.output(rel2_giro, 1)  #Turn OFF
		if (msg.payload == 'luzOFF'):
			GPIO.output(rel3_luz_sirena, 1)  #Turn OFF
		if (msg.payload == 'sirenaOFF'):
			GPIO.output(rel1_sirena, 1)  #Turn OFF
		if (msg.payload == 'dispara'):
			os.system('mpg321 -g 100 -q mob_ua-gun_shoot_m_16.mp3 &')
Пример #5
0
def lab_temp():
    # import sys
    import Adafruit_DHT
    ambient_humidity, ambient_temperature = Adafruit_DHT.read_retry(
        Adafruit_DHT.DHT22, 4)

    if ambient_humidity is None or ambient_temperature is None:
        logging.warning(
            'Sensor {0} reading failed (from /lab_temp).'.format('Ambient'))
        return render_template("no_sensor.html")

    fridge_humidity, fridge_temperature = Adafruit_DHT.read_retry(
        Adafruit_DHT.DHT22, 24)

    if fridge_humidity is None or fridge_temperature is None:
        logging.warning(
            'Sensor {0} reading failed (from /lab_temp).'.format('Fridge'))
        return render_template("no_sensor.html")

    curing_humidity, curing_temperature = Adafruit_DHT.read_retry(
        Adafruit_DHT.DHT22, 25)

    if curing_humidity is None or curing_temperature is None:
        logging.warning(
            'Sensor {0} reading failed (from /lab_temp).'.format('Curing'))
        return render_template("no_sensor.html")

    return render_template("lab_temp.html",
                           ambient_temp=ambient_temperature,
                           ambient_hum=ambient_humidity,
                           fridge_temp=fridge_temperature,
                           fridge_hum=fridge_humidity,
                           curing_temp=curing_temperature,
                           curing_hum=curing_humidity)
def read_temperatures():
    # Schreibt alle Variablen fuer die anderen Funktionen
    global rh1, rh2, rh3, t1, t2, t3
    global absdraussen, absdrinnen
    global timestamp
    # zeit im ms seid 1/1/1970 + 2h UTC=>berlin+7200
    timestamp = time.time() * 1000 + 7200

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh1pin)
    rh1 = round(humidity, 1)
    t1 = round(temperature, 1)
    if verbose == 1:
        print ("main: Sensor1: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t1, rh1))

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh2pin)
    rh2 = round(humidity, 1)
    t2 = round(temperature, 1)
    if verbose == 1:
        print ("main: Sensor2: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t2, rh2))

    humidity, temperature = Adafruit_DHT.read_retry(rhsensor, rh3pin)
    rh3 = round(humidity, 1)
    t3 = round(temperature, 1)
    if verbose == 1:
        print ("main: Sensor3: DHT{} -- Temp={}*C  Humidity={}%".format(rhsensor, t3, rh3))

    absdraussen = round(absfeucht(t1, rh1), 3)
    absdrinnen = round(absfeucht(t2, rh2), 3)
Пример #7
0
def readSensors():
    """
    """
    data = [[datetime.now().strftime("%Y-%m-%d %H:%M:%S"),],[datetime.now().strftime("%Y-%m-%d %H:%M:%S"),]]
    lock.acquire()
    #sensor MCP9808
    if SENSOR == 'MCP':
        temp = sensor.readTempC()    
    #sensor DHT22
    elif SENSOR == 'DHT':
        hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.AM2302, PIN1)
        data[0].append("H%0.1f" % hum)
    #endif
    data[0].append("T%0.1f" % temp)
    #sensor MCP9808
    if SENSOR == 'MCP':
        temp = sensor.readTempC()    
    #sensor DHT22
    elif SENSOR == 'DHT':
        hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.AM2302, PIN2)
        data[1].append("H%0.1f" % hum)
    #endif
    data[1].append("T%0.1f" % temp)
    lock.release()
    return data
Пример #8
0
def humtemp():
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    while humidity is None or temperature is None:
        humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        time.sleep(1)

    if humidity is not None and temperature is not None:
        return round(temperature, 1), round(humidity,1)
Пример #9
0
def main():

        humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        while humidity is None and temperature is None:
                time.sleep(3)
                humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        temperature = float("{0:.1f}".format(temperature))
        humidity = float("{0:.1f}".format(humidity))
        log_temperature(temperature,humidity)
Пример #10
0
def read_values():

	humi, temp = Adafruit_DHT.read_retry(sensor, pin)

	if humi > 100:
		humi, temp = Adafruit_DHT.read_retry(sensor, pin)

	if humi <= 100:
		return humi, temp

	return None, None
Пример #11
0
    def get_data(self):
        # Try to grab a sensor reading.  Use the read_retry method which will retry up
        # to 15 times to get a sensor reading (waiting 2 seconds between each retry).
        self.humidity, self.temperature = Adafruit_DHT.read_retry(self.sensor, self.pin)

        while self.humidity > 100.0:
            time.sleep(2)
            self.humidity, self.temperature = Adafruit_DHT.read_retry(self.sensor, self.pin)

        self.humidity = self.humidity + self.humidityOffset
        self.temperature = self.temperature + self.temperatureOffset
def read_sensors(silent):
    global tempc
    global humidity
    global dewpointc
    global heatindexc
    global chktemp
    chktemp = 1
    
    if (DHTSensor == 'DHT11'): sensor = Adafruit_DHT.DHT11
    elif (DHTSensor == 'DHT22'): sensor = Adafruit_DHT.DHT22
    elif (DHTSensor == 'AM2302'): sensor = Adafruit_DHT.AM2302
    else: sensor = 'Other'

    if not silent and not Terminate:
        logging.info("[Read Sensors] Taking first Temperature/humidity reading")
    if not Terminate:
        humidity2, tempc2 = Adafruit_DHT.read_retry(sensor, DHTPin)
        if humidity2 == None or tempc2 == None:
            logging.warning("[Read Sensors] Could not read temperature/humidity!")
        if not silent and humidity2 != None and tempc2 != None:
            logging.info("[Read Sensors] %.1f°C, %.1f%%", tempc2, humidity2)
    if not Terminate:
        time.sleep(2)
        if not silent: 
            logging.info("[Read Sensors] Taking second Temperature/humidity reading")
    while chktemp and not Terminate and humidity2 != None and tempc2 != None:
        if not Terminate:
            humidity, tempc = Adafruit_DHT.read_retry(sensor, DHTPin)
        if humidity != 'None' or tempc != 'None':
            if not silent and not Terminate: 
                logging.info("[Read Sensors] %.1f°C, %.1f%%", tempc, humidity)
                logging.info("[Read Sensors] Differences: %.1f°C, %.1f%%", abs(tempc2-tempc), abs(humidity2-humidity))
            if abs(tempc2-tempc) > 1 or abs(humidity2-humidity) > 1 and not Terminate:
                tempc2 = tempc
                humidity2 = humidity
                chktemp = 1
                if not silent:
                    logging.info("[Read Sensors] Successive readings > 1 difference: Rereading")
                time.sleep(2)
            elif not Terminate:
                chktemp = 0
                if not silent: 
                    logging.info("[Read Sensors] Successive readings < 1 difference: keeping.")
                tempf = float(tempc)*9.0/5.0 + 32.0
                dewpointc = tempc - ((100-humidity) / 5)
                #dewpointf = dewpointc * 9 / 5 + 32
                #heatindexf =  -42.379 + 2.04901523 * tempf + 10.14333127 * humidity - 0.22475541 * tempf * humidity - 6.83783 * 10**-3 * tempf**2 - 5.481717 * 10**-2 * humidity**2 + 1.22874 * 10**-3 * tempf**2 * humidity + 8.5282 * 10**-4 * tempf * humidity**2 - 1.99 * 10**-6 * tempf**2 * humidity**2
                #heatindexc = (heatindexf - 32) * (5 / 9)
                if not silent: 
                    logging.info("[Read Sensors] Temp: %.1f°C, Hum: %.1f%%, DP: %.1f°C", tempc, humidity, dewpointc)
        else: logging.warning("[Read Sensors] Could not read temperature/humidity!")
def read_DHT():

    value = 0
    temp1_List = []
    temp2_List = []
    temp3_List = []
    tempIn_List = []
    humi1_List = []
    humi2_List = []
    humi3_List = []
    humiIn_List = []
    print '\n Reading DHT - Temperature and Humidity: '

    while value < 6: # 6 = 1 minute, 30 = 5 mintutes
                
        # read data from pins: 25,23,24
        humi1, temp1 = Adafruit_DHT.read_retry(11,25) #temp sensor 1 out 
        humi2, temp2 = Adafruit_DHT.read_retry(11,23) #temp sensor 2 in top
        humi3, temp3 = Adafruit_DHT.read_retry(11,24) #temp sensor 3 in bottom     
                
        # Get average inside Temperature and Huminity
        tempIn = (temp2 + temp3)/2
        humiIn = (humi2 + humi3)/2
                
        #print ('The' + str(value) + 'reading is:')
        print ' Temperature Outside: {0:0.1f}C   Temperature Inside: {1:0.1f}C  ({2:0.1f}C - {3:0.1f}C) '.format(temp1,tempIn,temp2,temp3)
        print ' Humidity Outside:    {0:0.1f}%   Humidity Inside:    {1:0.1f}%  ({2:0.1f}% - {3:0.1f}%) \n'.format(humi1,humiIn,humi2,humi3)
                
        time.sleep(10)
        temp1_List.append(temp1)
        temp2_List.append(temp2)
        temp3_List.append(temp3)
        tempIn_List.append(tempIn)
        humi1_List.append(humi1)
        humi2_List.append(humi2)
        humi3_List.append(humi3)
        humiIn_List.append(humiIn)
                
        value = value + 1
    
    temp_1  = float(mode(temp1_List)[0])
    temp_2  = float(mode(temp2_List)[0])
    temp_3  = float(mode(temp3_List)[0])
    temp_In = float(mode(tempIn_List)[0])
    humi_1  = float(mode(humi1_List)[0])
    humi_2  = float(mode(humi2_List)[0])
    humi_3  = float(mode(humi3_List)[0])
    humi_In = float(mode(humiIn_List)[0])
                
    return (temp_1,temp_In,temp_2,temp_3,humi_1,humi_In,humi_2,humi_3)          
    def run(self):

        # Try to grab a sensor reading.  Use the read_retry method which will retry up
        # to 15 times to get a sensor reading (waiting 2 seconds between each retry).
        while True:
            try:
                if running_mode.RUNNING_MODE == 'N':
                    humidity, temperature = Adafruit_DHT.read_retry(iotUtils.TEMP_SENSOR_TYPE, iotUtils.TEMP_PIN)
                else:
                    humidity, temperature = iotUtils.generateRandomTemperatureAndHumidityValues()

                if temperature != iotUtils.LAST_TEMP:
                    time.sleep(PUSH_INTERVAL)
                    iotUtils.LAST_TEMP = temperature
                    connectAndPushData()

                iotUtils.LAST_TEMP = temperature
                print 'RASPBERRY_STATS: Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)

            except Exception, e:
                print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
                print "RASPBERRY_STATS: Exception in TempReaderThread: Could not successfully read Temperature"
                print ("RASPBERRY_STATS: " + str(e))                
                pass
                time.sleep(self.interval)
Пример #15
0
 def post(self):
     try: 
         # Parse the arguments
         #parser = reqparse.RequestParser()
        # parser.add_argument('id', type=str)
         humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
         data='Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)
Пример #16
0
def main():
    # Prep json variable
    data = {}

    # Move to config eventually
    sensor = Adafruit_DHT.DHT22
    pin = 4

    # Try to grab a sensor reading.  Use the read_retry method which will retry up
    # to 15 times to get a sensor reading (waiting 2 seconds between each retry).
    humidity, celsius = Adafruit_DHT.read_retry(sensor, pin)

    if humidity is not None and celsius is not None:
        # Some conversion for fehrenheit
        fahrenheit = 9.0/5.0 * celsius + 32

        # Manually assign good CRC
        crc_error = "false"
    else:
        # Failed to get pull, zero-ize data and flag CRC
        fahrenheit = 0
        crc_error = "true"
        humidity = 0
        celsius = 0

    # Return as dictionary, will be formating this in JSON
    return({'dht22': {'celsius': round(celsius,2), 'fahrenheit' : round(fahrenheit,2), 'humidity' : round(humidity,2), 'crc error' : crc_error, 'datetime': time.strftime("%Y-%m-%d %H:%M")} })
Пример #17
0
 def run(self):
     logging.info("DHT module initialized")
     webservice_state_instances_add(self.get_class_name(), self.get_json_status)
     timecheck = time.time()
     while not self.stop_event.is_set():
         time.sleep(1)
         humidity_previous = self.humidity
         temperature_previous = self.temperature
         self.humidity, self.temperature = Adafruit_DHT.read_retry(self.sensor, self.pin)
         if humidity_previous > self.humidity:
             c1 = humidity_previous - self.humidity
         else:
             c1 = self.humidity - humidity_previous
         if temperature_previous > self.temperature:
             c2 = temperature_previous - self.temperature
         else:
             c2 = self.temperature - temperature_previous
         if c1 > 5 or c2 > 2:
             # values have changed, add to plot data
             open(SENSORDHT_PLOTDATA_PATH + os.sep + time.strftime("%d.%m.%y.plotdata"), "a").write(
                 datetime.datetime.now().strftime("%d.%m.%y %H:%M:%S")
                 + "\t%.02f\t%.02f\n" % (self.temperature, self.humidity)
             )
             logging.info(
                 "plotting data due to change, prev h:%s cur h: %s prev t:%s cur t: %s - c1:%s c2:%s"
                 % (humidity_previous, self.humidity, temperature_previous, self.temperature, c1, c2)
             )
         # after 15 tries/30 seconds, None, None
         if time.time() - timecheck > 60:
             timecheck = time.time()
             logging.debug(
                 "60 interval - temperature: " + str(self.temperature) + " Humidity: " + str(self.humidity)
             )
         time.sleep(1)
Пример #18
0
def main():
    humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, '17')
    if humidity is not None and temperature is not None:
        requests.post(THERMOSTAT_URI, data=dict(temperature=temperature, humidity=humidity))
        logger.warn('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
    else:
        logger.error('Failed to get reading. Try again!')
Пример #19
0
def climate():
	pin = 3
	hum,temp = dht.read_retry(dht.DHT22, pin)
	humidity = float(round(hum))
	temperature = float(round(temp))
	return {'hum': humidity, 'temp': temperature}
	time.sleep(1)
Пример #20
0
def menu():
    parser = argparse.ArgumentParser(description='Read from the DHT sensor')
    parser.add_argument('sensor', choices=['DHT11', 'DHT22', 'AM2302'], help="Sensor Name")
    parser.add_argument('pin', type=int,
                        help="The GPIO (BCM numbering) connected to the sensor data pin")

    args = parser.parse_args()

    if args.sensor == 'DHT11':
        device = Adafruit_DHT.DHT11
    elif args.sensor == 'DHT22':
        device = Adafruit_DHT.DHT22
    elif args.sensor == 'AM2302':
        device = Adafruit_DHT.AM2302
    else:
        # Invalid device name
        sys.exit(1)

    if not 0 < args.pin < 40:
        print('Error: Invalid GPIO pin.\n')
        sys.exit(1)

    for x in range(10):
        humidity, temperature = Adafruit_DHT.read_retry(device, args.pin)
        print("Temperature: %s" % temperature)
        print("Humidity: %s" % humidity)
        time.sleep(2)
def GPIOtemperRead():
  sensor =  Adafruit_DHT.DHT11
  pin = "P9_11"

  humid, temp = Adafruit_DHT.read_retry(sensor, pin)

  return int(temp)
Пример #22
0
def Start():
    sensorType = Constellation.GetSetting("SensorType")
    if sensorType == "DHT11":
        sensor = Adafruit_DHT.DHT11
    elif sensorType == "DHT22":
        sensor = Adafruit_DHT.DHT22
    elif sensorType == "AM2302":
        sensor = Adafruit_DHT.AM2302
    else:
        Constellation.WriteError("Sensor type not supported ! Check your settings")
        return
    sensorPin = int(Constellation.GetSetting("SensorPin"))
    Constellation.WriteInfo("%s on #%d is ready !" % (sensorType, sensorPin))
    lastSend = 0
    while Constellation.IsRunning:
        ts = int(round(time.time()))
        if ts - lastSend >= int(Constellation.GetSetting("Interval")):
            humidity, temperature = Adafruit_DHT.read_retry(sensor, sensorPin)
            if humidity is not None and temperature is not None:
                Constellation.PushStateObject("Temperature", round(temperature, 2), lifetime = int(Constellation.GetSetting("Interval")) * 2)
                Constellation.PushStateObject("Humidity", round(humidity, 2), lifetime = int(Constellation.GetSetting("Interval")) * 2)
                lastSend = ts
            else:
                Constellation.WriteError("Failed to get reading")                
        time.sleep(1)
Пример #23
0
    def run(self): 
        pin = self.intConfig('sensorPort', 18)
        
        h1 = self.screen.add_number_widget("h1", x=1, value=0)
        h2 = self.screen.add_number_widget("h2", x=4, value=0)
        m1 = self.screen.add_number_widget("m1", x=8, value=0)
        m2 = self.screen.add_number_widget("m2", x=11, value=0)
        temp = self.screen.add_string_widget("temp", '--', x=15, y=1)
        humidity = self.screen.add_string_widget("humidity", '--', x=15, y=2)

        dot1 = self.screen.add_string_widget("d1", ".", x=7, y=1)
        dot2 = self.screen.add_string_widget("d2", ".", x=7, y=2)

        while True:
            try:
                h, t = dht.read_retry(dht.AM2302, pin, retries=5, delay_seconds=2)
            except RuntimeError:
                h, t = (None, None)

            if h or t:
                temp.set_text("{0:02.0f}".format(t))
                humidity.set_text("{0:02.0f}".format(h))
            else:
                temp.set_text("--")
                humidity.set_text("--")

            for _ in range(12):
                t = now()
                h1.set_value(t.hour / 10)
                h2.set_value(t.hour % 10)
                m1.set_value(t.minute / 10)
                m2.set_value(t.minute % 10)
                sleep(5)
Пример #24
0
def getDatenFromSensor():
    humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
    #print("Feuchtigkeit", humidity, "Temperatur", temperature)
    if (humidity is not None) and (temperature is not None):
        return {"hum":humidity, "tmp":temperature}
    else:
        return None
Пример #25
0
def getHwInfo():
    try: 
        humidity, temperature = Adafruit_DHT.read_retry(dht_sensor, dht_pin)
        #logging.info('200: getHwInfo - H:{0} T:{1}'.format(round(humidity,2),round((temperature * 9/5 + 32),2)))
        return round(humidity,2), round((temperature * 9/5 + 32),2)
    except: 
        ThermoHardwareLogger.exception('Exception Occurred in ThermoHardware getHwInfo')
Пример #26
0
def temp_hit():									#Poll the temp sensor and update vars
	global h,t
	global temp
	global humid
	h,t = dht.read_retry(dht.DHT11, pin)		#Change sensor here DHT11, DHT22 etc
	temp =  'Temp : {0:0.1f}C'.format(t)			#Formatting
	humid = 'Humid: {1:0.1f}%'.format(t,h)	#Formatting don't really understand these args
Пример #27
0
def main(*args, **kwargs):
	# Parse command line parameters.
	sensor_args = { '11': Adafruit_DHT.DHT11,
			'22': Adafruit_DHT.DHT22,
			'2302': Adafruit_DHT.AM2302 }
	if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
		sensor = sensor_args[sys.argv[1]]
		pin = sys.argv[2]
	else:
		print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#'
		print 'example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4'
		sys.exit(1)

	# Try to grab a sensor reading.  Use the read_retry method which will retry up
	# to 15 times to get a sensor reading (waiting 2 seconds between each retry).
	humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

	# Un-comment the line below to convert the temperature to Fahrenheit.
	# temperature = temperature * 9/5.0 + 32

	# Note that sometimes you won't get a reading and
	# the results will be null (because Linux can't
	# guarantee the timing of calls to read the sensor).  
	# If this happens try again!
	if humidity is not None and temperature is not None:
		print 'Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature, humidity)
	else:
		print 'Failed to get reading. Try again!'
		sys.exit(1)
def calculate():
    while True:
        temp = trim_pot

        #calculate DHT
        RHW, TW = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, DHTpin)
    
        #Convert from Celius to Farenheit
        TWF = 9/5*TW+32

        print "temperature is"
        print TWF
        print "humidity is"
        print RHW
          
        if (TWF>75):
            subject = 'Room2 alert'
            text = 'Temperature high!!!'
            msg = 'Subject: %s\n\n%s' % (subject, text)
            server = smtplib.SMTP('smtp.gmail.com:587')
            server.starttls()
            server.login(username,password)
            server.sendmail(fromaddr, toaddrs, msg)
            server.quit()
        if (temp>566):
            print " sending mail"
            subject = 'Room2 alert'
            text = 'Air Quality badd!!!'
            msg = 'Subject: %s\n\n%s' % (subject, text)
            server = smtplib.SMTP('smtp.gmail.com:587')
            server.starttls()
            server.login(username,password)
            server.sendmail(fromaddr, toaddrs, msg)
            server.quit()
        break
Пример #29
0
    def sensor_read_callback(self):
        super(Dht, self).sensor_read_callback()
        # Try to grab a sensor reading.  Use the read_retry method which will retry up
        # to 15 times to get a sensor reading (waiting 2 seconds between each retry).
        humidity, temperature = Adafruit_DHT.read_retry(self.SENSOR, self.sensor_pin)
        self.logger.info("Data from sensor: %s *C and %s" % (temperature, humidity))

        if humidity is not None and temperature is not None:

            humidity = round(humidity, 2)
            if self.humidity != humidity:
                self.humidity = humidity

                if self.config.has_option("server", "hostname"):
                    self.post_data("api/measurements/", self.generate_post_dict(humidity, 2))

            temperature = round(temperature, 2)
            if self.temperature != temperature:
                self.temperature = temperature

                if self.config.has_option("server", "hostname"):
                    self.post_data("api/measurements/", self.generate_post_dict(temperature, 1))

            self.failed = 0
        else:
            self.failed += 1
Пример #30
0
def sensor():
    sensor = Adafruit_DHT.AM2302

    humidity, temperature = Adafruit_DHT.read_retry(sensor, TEMP_SENSOR_PIN)
    humidity, temperature = str(round(humidity, 1)), str(round(temperature, 1))

    newrow = [time.strftime("%Y-%m-%d %H:%M:%S"), temperature, humidity,
              str(round(vpdcalc(float(temperature), float(humidity)), 1))]

    destfolder = os.path.join(FOLDERS['sensor'], time.strftime("%Y"))
    destfile = os.path.join(destfolder, time.strftime("%Y-%m") + ".csv")

    if not os.path.isdir(destfolder):
        os.makedirs(destfolder)
        os.chmod(destfolder, 0o777)

    if not os.path.isfile(destfile):
        with open(destfile, "w+") as f:
            f.write("timestamp,temp,rh,vpd\n")
            f.write(",".join(newrow) + "\n")
    else:
        with open(destfile, "a+") as f:
            f.write(",".join(newrow) + "\n")

    print(time.strftime("%Y-%m-%d %H:%M:%S"), "Sensor update", temperature, humidity)
Пример #31
0
def getTempHum():
    humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11,
                                                    4)  # GPIO 4 = Signal
    return {'hum': humidity, 'temp': temperature}
Пример #32
0
import Adafruit_DHT as dht

sensor = dht.DHT11

continuar = True
while continuar:
    dato = input("Pulsa cualquier tecla para que empiece a leer el sensor: ")
    if dato == "z":
        continuar = False
    else:
        h, t = dht.read_retry(sensor, 4)
        print("T=", t, " ,H=", h)

print("Fin del programa")
Пример #33
0
my_rpi.configureEndpoint(host, 8883)
my_rpi.configureCredentials(rootCAPath, privateKeyPath, certificatePath)

my_rpi.configureOfflinePublishQueueing(-1)  # Infinite offline Publish queueing
my_rpi.configureDrainingFrequency(2)  # Draining: 2 Hz
my_rpi.configureConnectDisconnectTimeout(10)  # 10 sec
my_rpi.configureMQTTOperationTimeout(5)  # 5 sec

# Connect and subscribe to AWS IoT
my_rpi.connect()
my_rpi.subscribe("sensors/home", 1, customCallback)
sleep(2)

# Publish to the same topic in a loop forever
loopCount = 0
while True:
    light = round(1024 - (adc.value * 1024))
    humidity, temperature = Adafruit_DHT.read_retry(sensor_name, sensor_pin)
    loopCount = loopCount + 1
    message = {}
    message["deviceid"] = "HomeMonitor"
    import datetime as datetime
    now = datetime.datetime.now()
    message["datetimeid"] = now.isoformat()
    message["Light"] = light
    message["Humidity"] = humidity
    message["Temperature"] = temperature
    import json
    my_rpi.publish("sensors/home", json.dumps(message), 1)
    sleep(20)
Пример #34
0
next_reading = time.time() 

client = mqtt.Client()

# Set access token
client.username_pw_set(ACCESS_TOKEN)

# Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
client.connect(THINGSBOARD_HOST, 1883, 60)

client.loop_start()

try:
    while True:
        humidity1,temperature1 = dht.read_retry(dht.DHT11, 14) #14 because the sensor is hooked up to GPIO14 
        humidity1 = round(humidity1, 2)
        temperature1 = round(temperature1, 2)
        print("Temperature1: %-3.1f C" % temperature1)
        print("Humidity1: %-3.1f %%" % humidity1)
        sensor1_data['temperature1'] = temperature1
        sensor1_data['humidity1'] = humidity1

        #humidity2,temperature2 = dht.read_retry(dht.DHT11, 2) #2 because the sensor is hooked up to GPIO2 
        #humidity2 = round(humidity2, 2)
        #temperature2 = round(temperature2, 2)
        #print("Temperature2: %-3.1f C" % temperature2)
        #print("Humidity2: %-3.1f %%" % humidity2)
        #sensor2_data['temperature2'] = temperature2
        #sensor2_data['humidity2'] = humidity2
Пример #35
0
    #print('===================')
    #print('SERIAL INFORMATION:')

    read_serial = ser.readline()
    s[0] = str(int(ser.readline(), 16))
    #print(s[0])
    #print read_serial

    writeFile = open('potentiometerData.txt', 'w')
    writeFile.write(s[0])
    writeFile.close()

    #===TEMPERATURE READING STUFF===

    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

    if humidity is not None and temperature is not None:
        conn = sqlite3.connect('/var/www/html/templog.db')
        curs = conn.cursor()

        curs.execute("INSERT INTO temps values(datetime('now'), (?))",
                     (temperature, ))

        conn.commit()

        #for row in curs.execute("SELECT * FROM temps"):
        #	print str(row[0])+"	"+str(row[1])

        conn.close
    else:
Пример #36
0
def getCurrentHumidityTemp():
    return Adafruit_DHT.read_retry(sensor, TEMP_PIN)
Пример #37
0
def get_temp(pin):
    hum, temp = Adafruit_DHT.read_retry(11, pin)
    return [hum, temp]
Пример #38
0
 def read(self):
     humid, temp = Adafruit_DHT.read_retry(DHT.DHT11, DHT.PIN)
     return { "temperature": temp, "humidity": humid }
Пример #39
0
#        in this case set show_anyway to false.

#get the current sensor data using adafruits's dht module
# -this shoul be swapped out into a module...
temp = "99999"
humid = "99999"
if not dht22_sensor_pin == None:
    try:
        import Adafruit_DHT
    except:
        print("sensor software not installed")
    try:
        sensor = Adafruit_DHT.DHT22
        count = 0
        while count <= 5:
            humidity, temperature = Adafruit_DHT.read_retry(
                sensor, int(dht22_sensor_pin))
            if humidity == None:
                count = count + 1
            else:
                break
            print("failed to read sensor")
        if humidity is not None and temperature is not None:
            temp = temperature
            humid = humidity
        else:
            print("no reading from sensor...")
    except:
        print("error while trying to read sensor")
        raise
else:
    print("Skipping reading sensor...")
Пример #40
0
def getDHTdata():
    sensor = Adafruit_DHT.DHT11
    pin = 17
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    time.sleep(1)
    return humidity, temperature
Пример #41
0
def GetHumedadTemperatura():
    humidity, temperature = Adafruit_DHT.read_retry(11, 27)
    return humidity, temperature
Пример #42
0
def GetHumedad(PiPin):
    humidity, temperature = Adafruit_DHT.read_retry(11, PiPin)
    return humidity
Пример #43
0
def lab_temp():
    humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.AM2302, 17)
    if humidity is not None and temperature is not None:
        return render_template("lab_temp.html", temp=temperature, hum=humidity)
    else:
        return render_template("no_sensor.html")
Пример #44
0
GPIO.setup(13, GPIO.OUT, initial=GPIO.LOW)
light_state = 0
humid_state = 0
reserr_count = 0

instance = dht11.DHT11(pin=7)
time.sleep(1)
GPIO.output(11, 0)

while 1:
    dt = datetime.datetime.now()
    dt1 = dt.timetuple()
    dt2 = dt.isoformat()

    time.sleep(2)
    h, t = dht22.read(dht22.DHT22, 4)
    print(h)
    print(t)
    if h is not None and t is not None:
        if (h < 50) & (humid_state == 0):
            GPIO.output(13, 1)
            humid_state = 1
        if (h > 55) & (humid_state == 1):
            GPIO.output(13, 0)
            humid_state = 0
    else:
        reserr_count += 1
    # this section response for himidity
    #result = instance.read()
    #time.sleep(2)
    #if result.is_valid():
Пример #45
0
def temp_humid_val():
    pin = 17
    sensor = Adafruit_DHT
    sensor = Adafruit_DHT.DHT11
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    return (humidity, temperature)
Пример #46
0
import Adafruit_DHT
import time
import RPi.GPIO as GPIO

Humidity, Temperature = Adafruit_DHT.read_retry(Adafruit_DHT.AM2302, 5)
Temperature = int(Temperature)
Humidity = int(Humidity)


GPIO.setmode(GPIO.BCM)
GPIO.setup( fan for cooler pin ... ,GPIO.OUT)
GPIO.output( fan for cooler pin ... , 1)
time.sleep(5)
GPIO.output( fan for cooler pin ... , 0)
GPIO.cleanup
Пример #47
0
from datetime import datetime
import json
import sys
import Adafruit_DHT

while True:
    humidity, temperature = Adafruit_DHT.read_retry(11, 4)
    print 'Temp:{0:0.1f} C Humidity {1:0.1f}%'.format(temperature, humidity)
    time = str(datetime.now())
    temperature = time + ":" + str(temperature)
    with open('data.txt', 'w') as outfile:
        json.dump(temperature, outfile)
    #print type(temperature)
Пример #48
0
import requests
from pymongo import MongoClient
#import matplotlib.pyplot as plt
import pygal
from datetime import datetime, timedelta
import pprint
from pytz import timezone
import pytz
import Adafruit_DHT as dht

# here to get the temp for inside
h, t = dht.read_retry(dht.DHT22, 4)
faren = (t * 9 / 5) + 32
print('Temp={0:0.1f}*F  Humidity={1:0.1f}%'.format(faren, h))

client = MongoClient('localhost', 27017)
db = client.pymongo_test

utc = pytz.utc

print('here is the time: ', datetime.now())

r = requests.get(
    'http://api.openweathermap.org/data/2.5/weather?lat=39.7521448&lon=-105.0233895&APPID=977c4567f54065e97d732e98b76e6180&units=imperial'
)
response = r.json()
pprint.pprint(response)
outside_temp = float(response['main']['temp'])
# print('the weather is imperial ', outside_temp)
hourly = datetime.now().hour
minutely = datetime.now().minute
Пример #49
0
GPIO.setwarnings(False)
import Adafruit_DHT                   #온도센서(DHT)
dht_type = 11
dht_pin = 23
import time

from RPLCD.i2c import CharLCD         #LCD문자 import
lcd = CharLCD('PCF8574',0x27)

try:
    while True:
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(12,GPIO.IN,pull_up_down=GPIO.PUD_UP)   #BUTTON
        time.sleep(1)
        lcd.clear()
        humidity, temperature = Adafruit_DHT.read_retry(dht_type, dht_pin)
        temp = str(round(temperature,1))
        lcd.write_string('TEMP ')
        lcd.write_string(temp)
        lcd.write_string('C ')
        lcd.crlf()
        lcd.write_string('MOON YOON JI')
        time.sleep(1)
        if GPIO.input(12) == False:     #버튼을 누르면 흰색 LED2개 ON
            print("button pressed")
            #LED1
            GPIO.setup(16,GPIO.OUT)
            GPIO.setup(20,GPIO.OUT)
            GPIO.setup(21,GPIO.OUT)
            #LED2
            GPIO.setup(13,GPIO.OUT)
Пример #50
0
def my_read_handler():
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    h = ' {0:0.1f}'.format(humidity)
    blynk.virtual_write(9, h)
        print("Falha na conexão!")


Connected = False
broker_address = "ENDEREÇO DO BROKER"
port = 'PORTA'
user = "******"
password = "******"

client = mqttClient.Client("Publicador")
client.username_pw_set(user, password=password)
client.on_connect = on_connect
client.connect(broker_address, port=port)
client.loop_start()

while Connected != True:
    t.sleep(0.1)

try:
    while True:

        umid, temp = dht.read_retry(dht.DHT11, 4)
        atemp = ('Temperatura: {0:0.1f}\nUmidade: {1:0.1f}'.format(temp, umid))
        print(a)
        client.publish("temp", a)
        t.sleep(4)

except KeyboardInterrupt:
    client.disconnect()
    client.loop_stop()
#UTILIZANDO LIBRERIA REQUESTS

import Adafruit_DHT
import time
import requests

sensor = Adafruit_DHT.DHTXX
pin = pin_GPIO
url = "https://api.thingspeak.com/update?api_key=APIKEY"

while True: 
    humedad, temperatura = Adafruit_DHT.read_retry(sensor, pin)
    
    if humedad is not None and temperatura is not None:
        print(f'Temperatura={temperatura:.2f}*C  Humedad={humedad:.2f}%')
    else:
        print('Fallo la lectura del sensor.Intentar de nuevo')

    f=requests.get(url+"&field1="+str(temperatura))
    
    time.sleep(5) 
Пример #53
0
def testDHT():
    while (True):
        humidity, temperature = Adafruit_DHT.read_retry(11, 7)
        print("Temp: {0:0.1f} C  Humidity: {1:0.1f} %".format(temperature, humidity))
        time.sleep(1)
    return
Пример #54
0
def readingValues(SensorToUse, ResetPin):
    seconds_window = 10  # after this many second we make a record
    SensorCounter = 0
    values = []
    a = 1
    b10 = -10.2
    b9 = -18  #This is the current sensor

    MeasuredValidDataInARow = 0
    MeasuredInvalidInARow = 0

    while not event.is_set():
        counter = 0

        while counter < seconds_window and not event.is_set():
            temp = None
            humidity = None
            MeasuredValuedIsInvalid = 1  #Assume invalid data
            try:
                lock.acquire()
                GPIO.setup(ResetPin,
                           GPIO.OUT)  # GREEN LED set GPIO24 as an output
                GPIO.output(ResetPin, ON)  #Sensor 9 ON
                sleep(0.01)
                [humidity,
                 temp] = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22,
                                                 SensorToUse)
                GPIO.output(ResetPin, OFF)  #Sensor 9 OFF
                lock.release()
            except IOError:
                print("Execption! IO error on sensor - continue.")
            print("RawData hum, tmp:", humidity, temp)

            SensorCounter += 1

            if (str(temp) == "None" or str(humidity)
                    == "None"):  #Error - reset DHT and continue
                print("Sensor X returns None:", SensorToUse)
                #      GPIO.setup(ResetPin, GPIO.OUT)           # GREEN LED set GPIO24 as an output
                #      GPIO.output(ResetPin, OFF)       #Sensor 9 OFF
                sleep(0.1)
                #       GPIO.output(ResetPin, ON)        #Sensor 9 ON
                MeasuredValuedIsInvalid = 1
            else:
                if (humidity > 100 or temp > 50):
                    print("Reset Sensor")
                    #       GPIO.setup(ResetPin, GPIO.OUT)           # GREEN LED set GPIO24 as an output
                    #       GPIO.output(ResetPin, OFF)       #Sensor 9 OFF
                    sleep(0.1)
                    #        GPIO.output(ResetPin, ON)        #Sensor 9 ON
                    MeasuredValuedIsInvalid = 1
                else:
                    if (SensorToUse == 9):
                        humidity = humidity + b9  #Add compensation for Sensor 9
                    math.isnan(temp) == False and math.isnan(humidity) == False
                    values.append({"temp": temp, "hum": humidity})
                    counter += 1
                    MeasuredValuedIsInvalid = 0  #Data is valid

        if (MeasuredValuedIsInvalid == 0):  #Use values if data is valid
            MeasuredInvalidInARow = 0
            MeasuredValidDataInARow += 1

            if (SensorToUse == 9):
                lock.acquire()
                filtered_temperature_Sensor9.append(
                    numpy.mean(eliminateNoise([x["temp"] for x in values])))
                filtered_humidity_Sensor9.append(
                    numpy.mean(eliminateNoise([x["hum"] for x in values])))
                lock.release()
            values = []
        else:
            MeasuredValidDataInARow = 0
            MeasuredInvalidInARow += 1  #Increment value
            print("MeasuredInvalidInARow:", MeasuredInvalidInARow)
            print("MeasuredValidInARow:", MeasuredValidDataInARow)
Пример #55
0
import time

import Adafruit_DHT as DHT

# GPIO Pin number
DHT_SENSOR_PIN = 4

# Sensor type
DHT_SENSOR = DHT.DHT11

while True:
    humidity, temperature = DHT.read_retry(DHT_SENSOR, DHT_SENSOR_PIN)

    print ('Humidity: ' + str(humidity))
    print ('Temperature: ' + str(temperature))

    # Five seconds between each reading
    time.sleep(5)
Пример #56
0
def get_humidity():
    humid, temp = DHT.read_retry(DHT.DHT11, 3)
    print(temp, humid)
    
    return humid
Пример #57
0
# Raspberry Pi Tips & Tricks - https://raspberrytips.nl

import Adafruit_DHT
import subprocess

humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)

humidity = round(humidity, 2)
temperature = round(temperature, 2)

if humidity is not None and temperature is not None:

    print 'Temperatuur: {0:0.1f}*C'.format(temperature)
    print 'Luchtvochtigheid: {0:0.1f}%'.format(humidity)
  
    if temperature > 28:
        print 'draaien met die ventilator'
        subprocess.Popen(["bash", "/home/pi/Desktop/usbpoweron.sh"])
                    
    else:
                  
        subprocess.Popen(["bash", "/home/pi/Desktop/usbpoweroff.sh"])
                      
else:

  print 'Geen data ontvangen'

Пример #58
0
		return worksheet
	except Exception as ex:
		print 'Unable to login and get spreadsheet.  Check OAuth credentials, spreadsheet name, and make sure spreadsheet is shared to the client_email address in the OAuth .json file!'
		print 'Google sheet login failed with error:', ex
		sys.exit(1)

print 'Logging sensor measurements to {0} every {1} seconds.'.format(GDOCS_SPREADSHEET_NAME, FREQUENCY_SECONDS)
print 'Press Ctrl-C to quit.'
worksheet = None
while True:
	# Login if necessary.
	if worksheet is None:
		worksheet = login_open_sheet(GDOCS_OAUTH_JSON, GDOCS_SPREADSHEET_NAME)

	# Attempt to get sensor reading.
	humidity, temp = Adafruit_DHT.read(DHT_TYPE, DHT_PIN)

	# Skip to the next reading if a valid measurement couldn't be taken.
	# This might happen if the CPU is under a lot of load and the sensor
	# can't be reliably read (timing is critical to read the sensor).
	if humidity is None or temp is None:
		time.sleep(2)
		continue

	print 'Temperature: {0:0.1f} C'.format(temp)
	print 'Humidity:    {0:0.1f} %'.format(humidity)
 
	# Append the data in the spreadsheet, including a timestamp
	try:
		worksheet.append_row((datetime.datetime.now(), temp, humidity))
	except:
Пример #59
0
def special_loop(info):
    global blTimer
    power_init_all()
    power_state = 0
    while mode > 0:
        print('mode=%d' % mode)
        if power_state == 0:
            # power on devices
            power_init_sensor()
            set_sensor_power(on=1)
            power_state = 1

        # get info
        (sen.pm25, sen.pm10) = sen.air.getData()
        #(sen.humidity, sen.temperature) = sen.dht11.get()
        (sen.humidity,
         sen.temperature) = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22,
                                                    sen.dht)
        (temp, sen.light) = sen.pcf.get_light_level()
        sys.disk = sys.sys.disk_stat()
        # 温湿度手动校准
        if sen.humidity is None:
            sen.humidity = 0.0
        else:
            sen.humidity = float(sen.humidity)
        if sen.temperature is None:
            sen.temperature = 0.0
        else:
            sen.temperature = float(sen.temperature)
        print("天气: %.1f℃,湿度%.1f%%, 空气质量PM2.5=%d, PM10=%d, 照度=%d-%s" %
              (sen.temperature, sen.humidity, sen.pm25, sen.pm10, temp,
               sen.light))
        print("磁盘使用:%s" % sys.disk)

        #空气质量指示灯
        if sen.pm25 < 50:
            set_led_power(green=1, yellow=0, red=0)
        elif sen.pm25 < 100:
            set_led_power(green=0, yellow=1, red=0)
        else:
            set_led_power(green=0, yellow=0, red=1)
        # UI更新部分信息
        info.temperature['text'] = "%.1f℃" % sen.temperature
        info.humidity['text'] = "%.1f%%" % sen.humidity
        info.pm25['text'] = "%d" % sen.pm25
        info.pm10['text'] = "%d" % sen.pm10
        info.light['text'] = sen.light  # 光照强度
        info.disk['text'] = "磁盘:%s" % sys.disk

        #上传数据到yeelink
        upload_to_yeelink('pm25', sen.pm25)
        upload_to_yeelink('pm10', sen.pm10)
        upload_to_yeelink('temperature', sen.temperature)
        upload_to_yeelink('humidity', sen.humidity)

        if mode == 1:  # 激活状态
            (_, _, sys.mem) = sys.sys.memory_stat()
            sys.cpu_t = sys.sys.cpu_temp()
            sys.loading = sys.sys.cpu_load()
            sys.ping = sys.net.ping()
            print("系统: CPU温度 %.1f'C,占用率 %.1f%%,内存使用 %d%%, ping回应:%s" %
                  (sys.cpu_t, sys.loading, sys.mem, sys.ping))
            info.sys['text'] = "CPU温度 %.1f℃,占用率 %.1f%%\t\t内存使用 %d%%" % (
                sys.cpu_t, sys.loading, sys.mem)
            info.ping['text'] = "ping回应:%s" % (sys.ping)

        #休眠
        for i in range(600):  #10min
            time.sleep(1)
            #print('test,mode=%d' %mode)
            if mode != 2:  # active mode or need stop
                break
            elif power_state == 1:
                # power off devices
                set_sensor_power(on=0)
                power_deinit_sensor()
                power_state = 0
            '''背光控制
			if blTimer >0:	#时间未到,背光持续亮
				blTimer = blTimer-1
				if blTimer == 0:
					print("长时间未操作,关闭背光")
					set_backlight_power(on=0)
			else:	# 背光关闭状态
				pass
			'''

    # loop stop
    if power_state == 1:
        set_sensor_power(on=0)
        power_state = 0
    set_led_power(green=0, yellow=0, red=0)
    set_backlight_power(on=1)
    power_deinit_all()
    print("special loop stopped")
Пример #60
0
                GPIO.output(27, GPIO.LOW)


client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
LED = 0
FAN = 0
AIR = 0
MQ2 = False
MQ1 = False
try:
    client.connect("140.125.33.105")
    threading.Thread(target=client.loop_forever).start()
    while True:
        hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 4)
        RI = GPIO.input(18)
        MQ1 = MQ2
        MQ2 = GPIO.input(23)
        BUTT = GPIO.input(24)
        st = "[" + str(hum) + ',' + str(temp) + ','
        if LED == 1:
            st += "1,"
        else:
            st += "0,"
        if FAN == 1:
            st += "1,"
        else:
            st += "0,"
        if AIR == 1:
            st += "1,"