def MQ135(self, now): meetWaardeMQ = self.ReadChannel(0) calcVoltage = meetWaardeMQ * (3.3 / 1024.0) gas = round((calcVoltage * 303) + 0.1) DataRepository.add_measurement(gas, now.strftime("%Y-%m-%d %H:%M:%S"), "MQ", None) return meetWaardeMQ
def acuatorReactie( score): # Actie van de acuator op basis van de berekende score value = 0 if (score <= 75): value = 100 groenLeds = round(score / 20) led.stuurLeds(groenLeds) draaier.turn_fan(value) now = datetime.datetime.now() DataRepository.add_measurement(value, now, None, 'FAN') DataRepository.add_measurement(groenLeds, now, None, 'RGB')
def GP2(self, now): GPIO.output(12, GPIO.HIGH) time.sleep(0.00028) meetWaardeGP = self.ReadChannel(1) time.sleep(0.00004) GPIO.output(12, GPIO.LOW) calcVoltage = (meetWaardeGP * (5.0 / 1024.0)) * 0.66 stof = round(((calcVoltage * 0.24) + 0.008) * 1000) DataRepository.add_measurement(stof, now.strftime("%Y-%m-%d %H:%M:%S"), "GP2", None) return stof
def switch_fan(data): value = data['value'] acuator = data['acuator'] now = datetime.datetime.now() if (value == 'OFF'): led.stuurLeds(6) DataRepository.add_measurement(6, now, None, 'RGB') elif (value == 'ON'): groenLeds = round(score / 20) led.stuurLeds(groenLeds) now = datetime.datetime.now() DataRepository.add_measurement(groenLeds, now, None, 'RGB')
def measurements(): temperature_sensor = DS18B20('28-00000c1d7d30') humidity_sensor = DHT22(16) while True: temperature = round(temperature_sensor.get_temperature(), 2) humidity = round(humidity_sensor.get_humidity(), 2) DataRepository.add_measurement(1, temperature) DataRepository.add_measurement(2, humidity) check_values = DataRepository.get_settings_by_userid(1) if check_values['MinTemp'] > temperature: DataRepository.post_notification( 'Temperature is too low. Please turn on the heat.', 1) elif check_values['MaxTemp'] < temperature: DataRepository.post_notification( 'Temperature is too high. Please turn on the airco.', 1) elif check_values['MinHum'] > humidity: DataRepository.post_notification( 'Humidity is too low. Please open your window.', 1) elif check_values['MaxHum'] < humidity: DataRepository.post_notification( 'Humidity is too high. Please open your window.', 1) socketio.emit('temperature', {'Value': temperature}) socketio.emit('humidity', {'Value': humidity}) time.sleep(60)
def read(self, now): GPIO.setup(self.__pin, GPIO.OUT) # Datalijn hoog trekken self.__data_sturen_sleep(GPIO.HIGH, 0.05) # Datalijn terug laag trekken self.__data_sturen_sleep(GPIO.LOW, 0.02) # Setup veranderen om data binnen te krijgen GPIO.setup(self.__pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Data ophalen en in array steken data = self.__data_ophalen() # kijken hoelang de datalijn hoog is up_lengte = self.__lengte_up_data(data) if len(up_lengte) != 40: return 0, 0 # Aantal bits bepalen. Hangt af van hoelang de data hoog is. bits = self.__bits_berekenen(up_lengte) # aantal bytes berkenen afhankelijk van de bits aantal_bytes = self.__bits_to_bytes(bits) temperatuur = aantal_bytes[2] vochtigheid = aantal_bytes[0] if vochtigheid is not None and temperatuur is not None and vochtigheid != 0 and temperatuur != 0: DataRepository.add_measurement( temperatuur, now.strftime("%Y-%m-%d %H:%M:%S"), "DHTT", None) time.sleep(3) DataRepository.add_measurement( vochtigheid, now.strftime("%Y-%m-%d %H:%M:%S"), "DHTV", None) return temperatuur, vochtigheid else: self.read(now)
def switch_fan(data): value = data['value'] acuator = data['acuator'] now = datetime.datetime.now() DataRepository.add_measurement(value, now, None, acuator) draaier.turn_fan(int(value))
def vochNaarDatabase(self): temperatuur, vochtigheid = dht11.read(self) nowVoch = datetime.datetime.now() DataRepository.add_measurement( vochtigheid, nowVoch.strftime("%Y-%m-%d %H:%M:%S"), "DHTV", None)
def tempNaarDatabase(self): temperatuur, vochtigheid = dht11.read(self) nowTemp = datetime.datetime.now() DataRepository.add_measurement( temperatuur, nowTemp.strftime("%Y-%m-%d %H:%M:%S"), "DHTT", None)