Beispiel #1
0
def main():

    #GPIO Init
    GPIO.setmode(GPIO.BCM)
    GPIO.cleanup()
    #GPIO test
    GPIO.setup(17, GPIO.OUT)
    GPIO.output(17, 0)
    #Sensor setup
    s = Sensor(pin=14)
    s.read()
Beispiel #2
0
def sensor_data():
    sensor = Sensor.connect(device)
    data = Sensor.read(sensor)
    payload = {
        'time_local': datetime.datetime.now().isoformat(),
        'pm_2_5': Sensor.to_pm_2_5(data),
        'pm_10': Sensor.to_pm_10(data)
    }
    return jsonify(payload)
Beispiel #3
0
class Slice(Thread):
    def __init__(self, local=False, interval=INTERVAL):
        Thread.__init__(self)
        self.done = None
        self.interval = interval
        self.local = local
        self.sensor = Sensor()

    def run(self):
        self.done = Event()
        while not self.done.wait(self.interval):
            info = self.sensor.read()
            if info:
                if self.local:
                    print info
                else:
                    self.send(info)
            else:
                print('The sensor could not be read')

    def send(self, info):
        # search for the server service
        service_matches = bt.find_service(uuid=UUID)

        if not service_matches:
            print('The server could not be found')

        first_match = service_matches[0]
        port = first_match['port']
        name = first_match['name']
        host = first_match['host']

        print('Attempting to connect to \'%s\' on %s' % (name, host))

        # Create the client socket
        sock = bt.BluetoothSocket(bt.RFCOMM)
        sock.connect((host, port))
        print('The connection has been accepted by the server')

        sock.send(str(info))
        print('The information has been sent')

        sock.close()
        print('The client socket has been closed')

    def stop(self):
        try:
            self.done.set()
        except AttributeError:
            print('The client cannot be stopped. It is not running')
        else:
            print('The client has been stopped')
Beispiel #4
0
def main():
    client_id = "sensorPublisher"
    broker_ip = "127.0.0.1"
    topic = "/sensors/temp"
    qos = 2
    sleep_time = 1
    sensor = Sensor()
    publisher = Publisher(client_id)
    publisher.connect(broker_ip)
    publisher.loop_start()
    try:
        while True:
            msg = sensor.read()
            publisher.publish(topic, msg, qos, retain=True)
            sleep(sleep_time)
    except KeyboardInterrupt:
        publisher.disconnect()
        publisher.loop_stop()
Beispiel #5
0
high = 73
low = 70

state_hi = False
no_of_objects = 0

t0 = time.time()

f = open("data.txt", "w")

f.close()

counter = 0

while True:
    value = sensor.read(boost=True)

    history.append(value)
    filtered = np.mean(history)

    # with open("data.txt","a") as f:
    #     f.write("{}\n".format(filtered))

    # time.sleep(0.1)

    object_found = False

    if filtered > high and not state_hi:
        state_hi = True

    if filtered > high:
Beispiel #6
0
            # Создаем описание колонок
            spr_sheet.create_Cols_Description()

        # Устанавливаем флаг коннекта к Spreadsheet API
        is_Connected_To_Spreadsheet = True

    # Записываем время коннекта к серверам
    last_Auth_Refresh_Time = datetime.now()

    first_Try_To_Connect = False

# Loop
while True:
    try:
        # Снимаем показания и записываем в файл
        temperature, humidity = sensor.read()

        logger.info(f'{datetime.now()} Температура = {temperature}' +
                    '\u2103 ' + f'Влажность = {humidity} %')
        temp_logfile.write_Data(temperature, humidity)

        # Если включена отправка на почту / в таблицу
        if is_Connected(site_For_Check) == False \
            and (
                mail_Status is True or spreadsheet_Status is True
            ):
            # Ставим переменные в ложь для того, чтобы перелогиниться после того как появится интернет
            is_Connected_To_Mail, is_Connected_To_Spreadsheet = False, False

            logger.critical(
                'Connection lost, cannot sell mail/upload data to spreadsheet, retry on next cycle'
from filterpy.kalman import KalmanFilter

# general parameters
sensor1_rate = 250  # Hz
sensor2_rate = 60  # Hz
sensor1_var = 0.1  # variance
sensor2_var = 1  # variance

# Create the true path
time = np.linspace(0, 1, 1000)
path = 10 * np.sin(0.1 * 2 * np.pi * time)

# Create sensor measurements of the path
sensor1 = Sensor(sensor1_var, sensor1_rate)
sensor2 = Sensor(sensor2_var, sensor2_rate)
sensor1_time, sensor1_z = sensor1.read(path, time)
sensor2_time, sensor2_z = sensor2.read(path, time)

# Create the filter
kf = KalmanFilter(dim_x=2, dim_z=1)
kf.F = array()

dt = 1 / 125
r_var = 0.1**2
q_var = 10

sensor = tkf.mySensor(r_var)
cvfilter = tkf.standard_cvfilter(r_var, q_var, dt)
adaptive_Q_cvfilter = tkf.adaptive_Q_cvfilter(r_var, 1, dt, 5, 10)
zarchan_adaptive_cvfilter = tkf.zarchan_adaptive_cvfilter(
    r_var, 1, dt, 1, 10000)