code ready
This commit is contained in:
1 parent
af98f90085
commit
3c8b59f709
19 files changed
+362
-69
No files matched your search
@@ -0,0 +1,13 @@
|
||||
class Sensors:
|
||||
# this is a parent class for the Sensor classes
|
||||
sensor_pin_int = -1
|
||||
|
||||
sensor = None
|
||||
|
||||
type = "unset"
|
||||
|
||||
def __init__(self, settings):
|
||||
self.type = settings['type']
|
||||
print("Initialize " + self.type + " sensor. Sensor pin is: " + str(settings['pin_int']))
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
class Sensors:
|
||||
# this is a parent class for the Sensor classes
|
||||
sensor_pin_int = -1
|
||||
|
||||
sensor = None
|
||||
|
||||
type = "unset"
|
||||
|
||||
def __init__(self, settings):
|
||||
self.type = settings['type']
|
||||
print("Initialize " + self.type + " sensor. Sensor pin is: " + str(settings['pin_int']))
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
from gs.classes.a_sensors import Sensors
|
||||
from machine import Pin, I2C
|
||||
from utime import sleep
|
||||
from lib.bh1750 import BH1750
|
||||
|
||||
|
||||
class AmbilightSensor(Sensors):
|
||||
|
||||
|
||||
most_recent_values = []
|
||||
|
||||
def __init__(self, settings):
|
||||
super().__init__(settings)
|
||||
print(settings) # TODO remove
|
||||
self.sensor_pin_int = settings['pin_int']
|
||||
# self.sensor = DHT22(Pin(self.sensor_pin_int, Pin.IN, Pin.PULL_UP))
|
||||
self.sensor = BH1750(I2C(0, sda=Pin(settings['pin_int_sda']), scl=Pin(settings['pin_int_scl'])))
|
||||
|
||||
def read(self):
|
||||
try:
|
||||
measurement = self.sensor.luminance(BH1750.ONCE_HIRES_1)
|
||||
print("ambilight ..")
|
||||
print(measurement)
|
||||
self.most_recent_values = [
|
||||
{
|
||||
'type': 'ambilight',
|
||||
'value': measurement,
|
||||
'unit': '-'
|
||||
},
|
||||
]
|
||||
except OSError:
|
||||
print('Ambilight Error reading temperature/humidity. Check wires')
|
||||
print()
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
from gs.classes.a_sensors import Sensors
|
||||
from dht import DHT22
|
||||
from machine import ADC, Pin
|
||||
|
||||
|
||||
class TemperatureHumiditySensor(Sensors):
|
||||
|
||||
sensor = None
|
||||
|
||||
most_recent_values = []
|
||||
|
||||
def __init__(self, settings):
|
||||
super().__init__(settings)
|
||||
print("Initialize dht22 sensor. Sensor pin is: " + str(settings['pin_int']))
|
||||
print(settings)
|
||||
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.sensor.measure()
|
||||
self.most_recent_values = [
|
||||
{
|
||||
'type': 'temperature',
|
||||
'value': self.sensor.temperature(),
|
||||
'unit': 'C'
|
||||
},
|
||||
{
|
||||
'type': 'humidity',
|
||||
'value': self.sensor.humidity(),
|
||||
'unit': '%'
|
||||
}
|
||||
]
|
||||
except OSError:
|
||||
print('DHT22 Error reading temperature/humidity. Check wires')
|
||||
print()
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# Moisture Sensor Class
|
||||
from gs.classes.a_sensors import Sensors
|
||||
from machine import ADC, Pin
|
||||
|
||||
|
||||
class MoistureSensor(Sensors):
|
||||
|
||||
sensor = None
|
||||
|
||||
most_recent_values = []
|
||||
|
||||
min_raw_value = None
|
||||
max_raw_value = None
|
||||
|
||||
def __init__(self, sensor_data, min_raw_value=300, max_raw_value=65535):
|
||||
super().__init__(sensor_data)
|
||||
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
|
||||
self.sensor = ADC(Pin(self.sensor_pin_int))
|
||||
|
||||
def read(self):
|
||||
self.most_recent_values = [
|
||||
{
|
||||
'type': 'moisture',
|
||||
'value': self.convert_to_moisture_percentage(self.sensor.read_u16()),
|
||||
'unit': '%'
|
||||
},
|
||||
]
|
||||
|
||||
def normalize_sensor_value(self, raw_value):
|
||||
return (raw_value - self.min_raw_value) / (self.max_raw_value - self.min_raw_value)
|
||||
|
||||
def convert_to_moisture_percentage(self, raw_value):
|
||||
normalized_value = self.normalize_sensor_value(raw_value)
|
||||
return round(100 - normalized_value * 100, 1)
|
||||
|
||||
|
||||
Reference in new issue
Block a user