def read_DHT22(): dt_Obj = dt() data = {} if Adafruit_Lib == True: Humidity, Temperature = dht.read_retry(dht.DHT22, int(DHT22_Settings['DATA'])) data['sid'] = DHT22_Settings['SENSOR_ID'] data['dt'] = str(dt_Obj.get_DB_datetime_str()) data['temp'] = '{0:0.2f}'.format(Temperature) data['humi'] = '{0:0.2f}'.format(Humidity) else: dht22_Obj = DHT22_Sensor() dht22_Obj.read_Data() data['sid'] = DHT22_Settings['SENSOR_ID'] data['dt'] = str(dt_Obj.get_DB_datetime_str()) data['temp'] = dht22_Obj.Temperature data['humi'] = dht22_Obj.Humidity del dht22_Obj json_data = json.dumps(data) del dt_Obj return json_data
def capture_and_add_to_upload_queue(motion_Start_Json_Data): #Read Sensor Data json_Dict = json.loads(motion_Start_Json_Data) SensorID = json_Dict['sid'] Motion_Event_Date = json_Dict['dt'] #Generate Video File Name DateObj = dt() File_Name = DateObj.get_Video_Name_datetime_str(Motion_Event_Date) del DateObj #Start Capturing Video File_Path = capture_MP4_Video(File_Name, int(PIR_MOTION_STATUS_HOLD_TIME) - 2) #Insert record in upload queue File_Name = File_Name + r".mp4" db_Obj = DatabaseManager() db_Obj.add_del_update_db_record( "insert into PiCamera_File_Upload_Temp_Data (SensorID, Motion_Event_Date_n_Time, FileName, FilePath, Upload_Status, No_Of_Upload_Retries, Upload_At) values (?,?,?,?,?,?,?)", [ SensorID, Motion_Event_Date, File_Name, File_Path, 'Pending', 0, Video_Upload_Location ]) del db_Obj return
def read_LIGHT(): # Set GPIO High to supply 3V Power to Circuit GPIO.output(int(Light_Sensor_Settings['POWER']), GPIO.HIGH) RCpin = int(Light_Sensor_Settings['DATA']) reading = 0 GPIO.setup(RCpin, GPIO.OUT) GPIO.output(RCpin, GPIO.LOW) time.sleep(0.1) GPIO.setup(RCpin, GPIO.IN) # This takes about 1 millisecond per loop cycle while (GPIO.input(RCpin) == GPIO.LOW): reading += 1 GPIO.output(int(Light_Sensor_Settings['POWER']), GPIO.LOW) dt_Obj = dt() data = {} data['sid'] = Light_Sensor_Settings['SENSOR_ID'] data['dt'] = str(dt_Obj.get_DB_datetime_str()) data['light'] = reading del dt_Obj #Return light reading json_data = json.dumps(data) return json_data
def read_BMP180(): dt_Obj = dt() data = {} sensor = BMP085.BMP085() data['sid'] = str(BMP180_Settings['SENSOR_ID']) data['dt'] = dt_Obj.get_DB_datetime_str() data['pres'] = format(sensor.read_pressure()) data['pres_at_sea_level'] = '{0:0.2f}'.format(sensor.read_sealevel_pressure()) data['alti'] = '{0:0.2f}'.format(sensor.read_altitude()) data['temp'] = '{0:0.2f}'.format(sensor.read_temperature()) json_data = json.dumps(data) del dt_Obj return json_data
def read_PIR_Motion_Sensor(self, event_Listener_Function): #Initialize Variables Previous_Motion_State = 0 Current_Motion_State = 0 Motion_Start_Time = None dt_Obj = dt() #Keep Reading Sensor while True: Previous_Motion_State = Current_Motion_State #Read Motion Sensor Current_Motion_State = GPIO.input(Data_Pin) if Current_Motion_State != Previous_Motion_State: #Prepare json data data = {} data['sid'] = str(Motion_Sensor_Settings['SENSOR_ID']) data['dt'] = dt_Obj.get_DB_datetime_str() if Current_Motion_State == 1: data['Motion_Detected'] = True Motion_Start_Time = data['dt'] else: data['Motion_Detected'] = False data['Motion_Start_Time'] = Motion_Start_Time json_data = json.dumps(data) #Invoke Event Listener Function in new Thread event_thread = threading.Thread( target=event_Listener_Function, args=[json_data, data['Motion_Detected']]) self.event_Thread_ID = event_thread.start() # In case of Motion, Hold the state for some time. if data['Motion_Detected'] == True: time.sleep( Decimal( Motion_Sensor_Settings['MOTION_STATUS_HOLD_TIME'])) #Hold for Polling Interval time.sleep(Decimal(Motion_Sensor_Settings['POLLING_INTERVAL'])) del dt_Obj return
def __init__(self): # Initialize Objects self.db_Obj = DatabaseManager() self.dt_Obj = dt()
def __init__(self): #Initialize Objects self.gdObj = gDrive() self.DateObj = dt() self.db_Obj = DatabaseManager()