예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
    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
예제 #6
0
	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()