From a76212ab4d4e8a58daeaef9423a2c0b59403fc53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maik=20Mu=CC=88ller?= Date: Sat, 27 Apr 2024 06:27:34 +0200 Subject: [PATCH] sensors now added in loop --- device_info.py | 16 +++++++++++++++ dht22.py | 16 +++++++-------- grow_system.py | 49 +++++++++++++++++++++++++++++++++------------- moisture_sensor.py | 18 ++++++++--------- 4 files changed, 68 insertions(+), 31 deletions(-) diff --git a/device_info.py b/device_info.py index 83c0c1c..c0c9a4d 100644 --- a/device_info.py +++ b/device_info.py @@ -10,6 +10,22 @@ class DeviceInfo: server_url = 'api.growsystem.muelleronline.org' + wlan_ssid = 'Oppa-95.lan' + wlan_pw = '95%04-MM' + + sensors = [ + { + 'type': 'moisture', + 'pin_int': 26 + }, + { + 'type': 'dht22', + 'pin_int': 15 + } + ] + +# 'pump_pin_int': 24 + # Device Infos End wlan = network.WLAN(network.STA_IF) diff --git a/dht22.py b/dht22.py index 9f6a22a..05fb9f2 100644 --- a/dht22.py +++ b/dht22.py @@ -3,30 +3,30 @@ from machine import ADC, Pin class TemperatureHumiditySensor: - dht22_sensor_pin_int = -1 + sensor_pin_int = -1 - dht22_sensor = None + sensor = None most_recent_values = [] def __init__(self, settings): - print("Hello from dht22 sensor class") + print("Initialize dht22 sensor. Sensor pin is: " + str(settings['pin_int'])) print(settings) - self.dht22_sensor_pin_int = settings['pin_int'] - self.dht22_sensor = DHT22(Pin(self.dht22_sensor_pin_int, Pin.IN, Pin.PULL_UP)) + self.sensor_pin_int = settings['pin_int'] + self.sensor = DHT22(Pin(self.sensor_pin_int, Pin.IN, Pin.PULL_UP)) def read(self): try: - self.dht22_sensor.measure() + self.sensor.measure() self.most_recent_values = [ { 'type': 'temperature', - 'value': self.dht22_sensor.temperature(), + 'value': self.sensor.temperature(), 'unit': 'C' }, { 'type': 'humidity', - 'value': self.dht22_sensor.humidity(), + 'value': self.sensor.humidity(), 'unit': '%' } ] diff --git a/grow_system.py b/grow_system.py index f553d9f..6e7fd52 100644 --- a/grow_system.py +++ b/grow_system.py @@ -3,27 +3,45 @@ from moisture_sensor import MoistureSensor from dht22 import TemperatureHumiditySensor from sensor_data_manager import SensorDataManager from grow_system_api import GrowSystemApi +from device_info import DeviceInfo class GrowSystem: grow_system_api = GrowSystemApi() - moisture_sensor = None - temperature_humidity_sensor = None + # moisture_sensor = None + # temperature_humidity_sensor = None + + sensors = [] most_recent_values = [] sensor_data_manager = None device_id = None + + device_info = DeviceInfo() def __init__(self, settings): - if not self.moisture_sensor: - self.moisture_sensor = MoistureSensor(settings['moisture_sensor']) + for sensor in self.device_info.sensors: + print("Initialize sensor:") + print(sensor) + sensor_type = sensor['type'] + if sensor_type == 'moisture': + print("Found sensor of type moisture") + self.sensors.append(MoistureSensor(sensor)) + elif sensor_type == 'dht22': + print("Found sensor of type DHT22") + self.sensors.append(TemperatureHumiditySensor(sensor)) + else: + print("No sensor type configured for: " + sensor['type']) + + #if not self.moisture_sensor: + # self.moisture_sensor = MoistureSensor(settings['moisture_sensor']) - if not self.temperature_humidity_sensor: - self.temperature_humidity_sensor = TemperatureHumiditySensor(settings['temperature_humidity_sensor']) + #if not self.temperature_humidity_sensor: + # self.temperature_humidity_sensor = TemperatureHumiditySensor(settings['temperature_humidity_sensor']) def start(self): print("Say the server hello...") @@ -41,17 +59,20 @@ class GrowSystem: while True: # Reset data self.most_recent_values = [] + + for sensor in self.sensors: + sensor.read() + self.most_recent_values = self.most_recent_values + sensor.most_recent_values + print("Most recent bla") + print(sensor.most_recent_values) + # Moisture Sensor - self.moisture_sensor.read() - self.most_recent_values = self.most_recent_values + self.moisture_sensor.most_recent_value + # self.moisture_sensor.read() + # self.most_recent_values = self.most_recent_values + self.moisture_sensor.most_recent_value # Temperature and Humidity Sensor - self.temperature_humidity_sensor.read() - self.most_recent_values = self.most_recent_values + self.temperature_humidity_sensor.most_recent_values - - print("Most recent bla") - print(self.most_recent_values) - + # self.temperature_humidity_sensor.read() + # self.most_recent_values = self.most_recent_values + self.temperature_humidity_sensor.most_recent_values self.sensor_data_manager.handleData(self.most_recent_values) time.sleep(5) diff --git a/moisture_sensor.py b/moisture_sensor.py index c37454b..08f72b7 100644 --- a/moisture_sensor.py +++ b/moisture_sensor.py @@ -3,27 +3,27 @@ from machine import ADC, Pin class MoistureSensor: - moisture_sensor_pin_int = -1 + sensor_pin_int = -1 - moisture_sensor = None + sensor = None - most_recent_value = [] + most_recent_values = [] min_raw_value = None max_raw_value = None - def __init__(self, moisture_sensor_data, min_raw_value=300, max_raw_value=65535): - self.moisture_sensor_pin_int = moisture_sensor_data['pin_int'] + def __init__(self, sensor_data, min_raw_value=300, max_raw_value=65535): + print("Initialize moisture sensor. Sensor pin is: " + str(sensor_data['pin_int'])) + self.sensor_pin_int = sensor_data['pin_int'] self.min_raw_value = min_raw_value self.max_raw_value = max_raw_value - print("Hello from moisture sensor. Sensor pin is: " + str(self.moisture_sensor_pin_int)) - self.moisture_sensor = ADC(Pin(self.moisture_sensor_pin_int)) + self.sensor = ADC(Pin(self.sensor_pin_int)) def read(self): - self.most_recent_value = [ + self.most_recent_values = [ { 'type': 'moisture', - 'value': self.convert_to_moisture_percentage(self.moisture_sensor.read_u16()), + 'value': self.convert_to_moisture_percentage(self.sensor.read_u16()), 'unit': '%' }, ]