#from picamera import PiCamera import adafruit_dht import adafruit_tsl2561 import board import json class RaspySensors: """ Class to handle all sensors Returns: _type_: _description_ """ def __init__(self): """ Init all Sensors """ #[ ]TODO Message if Error #Air Temperature & Humidity self.dht22 = adafruit_dht.DHT22(board.D4, use_pulseio=False) #Brightness self.tsl2561 = adafruit_tsl2561.TSL2561(board.I2C()) #global Variables self.sensorData ={ "AirTemperature": 0.0, "AirHumidity" : 0.0, "SoilMoisture" : 0.0, "Brightness" : 0, "PlantID": 0, "ActionID": 0 } def readSensors(self): """ Read all Sensors and return Dictionary with data Returns: sensordata (dict): all data of sensors """ #read DHT22 #if Error reading Data try again while True: try: self.sensorData["AirTemperature"] = self.dht22.temperature self.sensorData["AirHumidity"] = self.dht22.humidity except: continue break #read TSL2561 if type(self.tsl2561.lux) == type(None): #Max Value 40.000 -> above error self.sensorData["Brightness"] = 40000 else: self.sensorData["Brightness"] = int(self.tsl2561.lux) #TODO SoilMoisture Sensor return self.sensorData #TODO - take picture function def takePicture(self): """ Take picture and return picture Returns: _type_: _description_ """ return self.picture #TODO - read position with sensor def readPosition(self): """ Read and return Position Returns: _type_: _description_ """ return self.position #TODO - read battery from EV3 def readBattery(self): """ Read and return battery of ev3 Returns: _type_: _description_ """ return self.battery #for Testing only def main(): sensors = RaspySensors() test = sensors.readSensors() print("Data:" + json.dumps(test)) if __name__ == "__main__": main()