Exemplo n.º 1
0
class HumiditySensor(Sensor):

	def __init__(self, pin, name='HumiditySensor', key=None, connection=default_connection, model='11'):
		super().__init__(pin, name=name, key=key, connection=connection)
		self.type = model #DHT11 or DHT22 maybe AM2302
		return

	def init_sensor(self):
		# prepare sensor on specified pin
		sensor_types = { '11': DHT.DHT11,
						'22': DHT.DHT22,
						'2301': DHT.AM2301 }
		if len(self.type) == 3 and self.type in sensor_types:
			self.sensor = sensor_types[self.type]
		else:
			# print('Sensor Type Error: Defaulting to DHT11')
			self.sensor = DHT.DHT11
		self.dht = DHT(self.pin, self.sensor, connection=self.connection)

	def read(self):
		#Pass true to read in american degrees :)
		temperature = self.dht.readTemperature(True)
		humidity = self.dht.readHumidity()
		data = {'temperature': round(temperature, 2), 'humidity': round(humidity, 2)}
		variables.r.set(self.key + '_temperature', temperature)
		variables.r.set(self.key + '_humidity', humidity)
		variables.r.set(self.key, json.dumps(data))
		return data

	def readRaw(self):
		return self.read()
Exemplo n.º 2
0
class HumiditySensor(Sensor):
    def __init__(self,
                 pin,
                 name='HumiditySensor',
                 key=None,
                 connection=default_connection):
        super().__init__(pin, name=name, key=key, connection=connection)
        return

    def init_sensor(self):
        # prepare sensor on specified pin
        self.dht = DHT(self.pin, DHT.DHT11, connection=self.connection)

    def read(self):
        #Pass true to read in american degrees :)
        temperature = self.dht.readTemperature(True)
        humidity = self.dht.readHumidity()
        data = {'temperature': temperature, 'humidity': humidity}
        variables.r.set(self.key + '_temperature', temperature)
        variables.r.set(self.key + '_humidity', humidity)
        variables.r.set(self.key, json.dumps(data))
        return data

    def readRaw(self):
        return self.read()
Exemplo n.º 3
0
class HumiditySensor():
    def __init__(self, pin, connection=default_connection):
        self.pin = pin
        self.connection = connection
        self.api = ArduinoApi(connection)
        return

    def init_sensor(self):
        # prepare sensor on specified pin
        self.dht = DHT(self.pin, DHT.DHT11, connection=self.connection)

    def read(self):
        #Pass true to read in american degrees :)
        temperature = self.dht.readTemperature(True)
        humidity = self.dht.readHumidity()
        data = {'temperature': temperature, 'humidity': humidity}
        #r.set('temperature', temperature)
        #r.set('humidity', humidity)
        return data

    def readRaw(self):
        return self.read()
                        type_values = device["type_values"]
                        for type_value in type_values:
                            name = type_value["name"]
                            device_values = device["device_values"]
                            a.analogWrite(device["port"], device_values[name])

                    elif (device["sensor"] == True):
                        sensor = device["type"]
                        if (sensor == "dht22"):
                            dht = DHT(device["port"], DHT.DHT22)
                            type_values = device["type_values"]
                            for type_value in type_values:
                                name = type_value["name"]
                                device_values = device["device_values"]
                                if (name == "temperature"):
                                    device_values[name] = dht.readTemperature(
                                        False)
                                elif (name == "humidity"):
                                    device_values[name] = dht.readHumidity()

                        elif (sensor == "ldr"):
                            a.pinMode(device["port"], a.INPUT)
                            intensity = a.analogRead(device["port"])
                            type_values = device["type_values"]
                            for type_value in type_values:
                                name = type_value["name"]
                                device_values = device["device_values"]
                                if (name == "intensity"):
                                    device_values[name] = intensity

                        elif (sensor == "pir"):
                            a.pinMode(device["port"], a.INPUT)
Exemplo n.º 5
0
#!/usr/bin/env python

# a simple example to read from a DHT sensor

from nanpy import DHT

# http://learn.adafruit.com/dht/connecting-to-a-dhtxx-sensor
# DHT sensor connected to digital pin 10
dht = DHT(10,DHT.DHT22)

print("temperature is %f degrees Celcius" % dht.readTemperature())
print("temperature is %f degrees Celcius" % dht.readTemperature(False))
print("temperature is %f degrees Fahrenheit" % dht.readTemperature(True))
print("humidity is %f %%" % dht.readHumidity())

Exemplo n.º 6
0
class NanpyDHTSensor(Sensor):
    """ Nanpy DHT Sensor
        Get readings from DHT device.
    """
    models = {'11': DHT.DHT11, '22': DHT.DHT22, '2301': DHT.AM2301}
    """ Properties """
    @property
    def id(self):
        """ Return a unique id for the component """
        return self.config['key']

    @property
    def name(self):
        """ Return the display name of the component """
        return self.config.get(
            'name') or f"{self.id.replace('_', ' ').title()}"

    @property
    def state(self):
        """ Return the state of the component (from memory, no IO!) """
        return self._state

    @property
    def classifier(self):
        """ Classification further describing it, effects the data formatting """
        return self.config.get('classifier', 'general')

    @property
    def analog(self):
        """ Return if gpio is digital or analog """
        return self.config.get('analog', False)

    @property
    def pin(self):
        """ Return if gpio is digital or analog """
        return self.config.get('pin')

    @property
    def model(self):
        """ Return DHT model """
        if self.config.get('model') not in NanpyDHTSensor.models:
            conf['model'] = '11'
        return self.models[self.config.get('model', '11')]

    """ Methods """

    def init(self):
        """ Connect to the Parent Device """
        self._state = None
        self._dht = None
        # Attribute to track from DHT device
        self._attribute = self.config.get('attribute', 'temperature')
        return True

    def check_connection(self):
        """ Check connection to node and DHT """
        if self.node.connected:
            if not self._dht:
                self._dht = DHT(self.pin,
                                self.model,
                                connection=self.node.connection)

    def update(self):
        """ Get data from DHT through nanpy"""
        if self.node.connected:
            try:
                self.check_connection()
                if self._dht:
                    _temp_format = self.mudpi.unit_system == IMPERIAL_SYSTEM
                    temperature = self._dht.readTemperature(_temp_format)
                    humidity = self._dht.readHumidity()
                    data = {
                        'temperature': round(temperature, 2),
                        'humidity': round(humidity, 2)
                    }
                    self._state = data
            except (SerialManagerError, SocketManagerError, BrokenPipeError,
                    ConnectionResetError, OSError, socket.timeout) as e:
                if self.node.connected:
                    Logger.log_formatted(
                        LOG_LEVEL["warning"],
                        f'{self.node.key} -> Broken Connection', 'Timeout',
                        'notice')
                    self.node.reset_connection()
                self._dht = None
        else:
            self._dht = False
        return None
Exemplo n.º 7
0
# Setup
ARDUINO.pinMode(LED_PIN, ARDUINO.OUTPUT)
ARDUINO.pinMode(DHT_PIN, ARDUINO.INPUT)
ARDUINO.pinMode(PRES_PIN, ARDUINO.INPUT)
ARDUINO.pinMode(WET_PIN, ARDUINO.INPUT)
# MEANINGLESS DATA STILL

# Loop
try:
    while True:
        ARDUINO.digitalWrite(LED_PIN, ARDUINO.HIGH)
        print 'Gathering data...'
        pres = ARDUINO.analogRead(PRES_PIN)
        print 'Light Resistance: ', pres
        temp = ENV_SENSOR.readTemperature(True)
        print 'Temperature: %.2f Farenheit' % temp
        hum = ENV_SENSOR.readHumidity()
        print 'Humidity: %2.f %%' % hum
        wet = ARDUINO.analogRead(WET_PIN)
        print 'Wetness: %(wet)03d' % locals()
        ARDUINO.digitalWrite(LED_PIN, ARDUINO.LOW)
        print ''
        sleep(3)
except Exception as error:
    if hasattr(error, 'message'):
        print(error.message)
    else:
        print(error)
    print 'Shutting down script'
    ARDUINO.digitalWrite(LED_PIN, ARDUINO.LOW)
Exemplo n.º 8
0
Arquivo: dht.py Projeto: zoloft/nanpy
#!/usr/bin/env python

# a simple example to read from a DHT sensor

from nanpy import DHT

# http://learn.adafruit.com/dht/connecting-to-a-dhtxx-sensor
# DHT sensor connected to digital pin 10
dht = DHT(10, DHT.DHT22)

print("Temperature is %.2f degrees Celcius" % dht.readTemperature(False))
print("Temperature is %.2f degrees Fahrenheit" % dht.readTemperature(True))
print("Humidity is %.2f %%" % dht.readHumidity())