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)
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))
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)
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 &')
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)
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
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)
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)
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
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)
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)
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")} })
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)
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!')
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)
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)
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)
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)
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
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')
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
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
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
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)
def getTempHum(): humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 4) # GPIO 4 = Signal return {'hum': humidity, 'temp': temperature}
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")
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)
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
#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:
def getCurrentHumidityTemp(): return Adafruit_DHT.read_retry(sensor, TEMP_PIN)
def get_temp(pin): hum, temp = Adafruit_DHT.read_retry(11, pin) return [hum, temp]
def read(self): humid, temp = Adafruit_DHT.read_retry(DHT.DHT11, DHT.PIN) return { "temperature": temp, "humidity": humid }
# 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...")
def getDHTdata(): sensor = Adafruit_DHT.DHT11 pin = 17 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) time.sleep(1) return humidity, temperature
def GetHumedadTemperatura(): humidity, temperature = Adafruit_DHT.read_retry(11, 27) return humidity, temperature
def GetHumedad(PiPin): humidity, temperature = Adafruit_DHT.read_retry(11, PiPin) return humidity
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")
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():
def temp_humid_val(): pin = 17 sensor = Adafruit_DHT sensor = Adafruit_DHT.DHT11 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) return (humidity, temperature)
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
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)
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
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)
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)
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
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)
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)
def get_humidity(): humid, temp = DHT.read_retry(DHT.DHT11, 3) print(temp, humid) return humid
# 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'
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:
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")
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,"