def main():

    sfm = find_sensor_by_type('sfm3000')
    sdp = find_sensor_by_type('sdp600')
    sht = find_sensor_by_type('sht3x')
    if not all((sfm, sdp, sht)):
        sys.stderr.writelines("couldn't find all sensors\n")
        return

    def print_sensor_values(sensor_name):
        def print_to_console(timestamp, values):
            print "{0}: {1}".format(sensor_name, values.values()[0])
            return True
        return print_to_console

    try:
        sfm_reader = SensorReader((sfm,), 100, print_sensor_values('sfm'))
        sdp_reader = SensorReader((sdp,), 10, print_sensor_values('sdp'))
        sht_reader = SensorReader((sht,), 1, print_sensor_values('sht'))
        sfm_reader.start()
        sdp_reader.start()
        sht_reader.run()
    finally:
        sfm_reader.join()
        sdp_reader.join()
Ejemplo n.º 2
0
def main():

    sfm = find_sensor_by_type('sfm3000')
    sdp = find_sensor_by_type('sdp600')
    sht = find_sensor_by_type('sht3x')
    if not all((sfm, sdp, sht)):
        sys.stderr.writelines("couldn't find all sensors\n")
        return

    def print_sensor_values(sensor_name):
        def print_to_console(timestamp, values):
            print "{0}: {1}".format(sensor_name, values.values()[0])
            return True

        return print_to_console

    try:
        sfm_reader = SensorReader((sfm, ), 100, print_sensor_values('sfm'))
        sdp_reader = SensorReader((sdp, ), 10, print_sensor_values('sdp'))
        sht_reader = SensorReader((sht, ), 1, print_sensor_values('sht'))
        sfm_reader.start()
        sdp_reader.start()
        sht_reader.run()
    finally:
        sfm_reader.join()
        sdp_reader.join()
def main():
    print('detecting sensors')
    sfm = find_sensor_by_type('sfm3000')
    sdp = find_sensor_by_type('sdp600')
    sht = find_sensor_by_type('sht3x')
    if not any((sfm, sdp, sht)):
        sys.stderr.writelines("couldn't find any sensors\n")
        return

    print('connecting to mqtt')
    client = mqtt.Client()
    client.on_connect = on_connect
    client.connect("localhost")

    def send_sensor_values(sensor, sensor_name):
        topic = 'sensors/{0}/{1}/values'.format(socket.gethostname(), sensor_name)
        units = sensor.get_units()

        def send(timestamp, values):
            measurements = values.values()[0]
            if all(m is not None for m in measurements):
                payload = {
                    "timestamp": timestamp,
                    "values": measurements,
                    "units": units,
                }
                client.publish(topic, json.dumps(payload))
        return send

    def signal_handler(signal, frame):
        print('terminating')
        client.disconnect()

    signal.signal(signal.SIGINT, signal_handler)

    try:
        if sfm:
            sfm_reader = SensorReader((sfm,), 100, send_sensor_values(sfm, 'sfm'))
            sfm_reader.start()
        if sdp:
            sdp_reader = SensorReader((sdp,), 10, send_sensor_values(sdp, 'sdp'))
            sdp_reader.start()
        if sht:
            sht_reader = SensorReader((sht,), 1, send_sensor_values(sht, 'sht'))
            sht_reader.start()
        client.loop_forever()
    finally:
        client.loop_stop()
        if sfm:
            sfm_reader.join()
        if sdp:
            sdp_reader.join()
        if sht:
            sht_reader.join()
Ejemplo n.º 4
0
def readSensor():
    shtObj = find_sensor_by_type('sht3x')

    if not shtObj:
        return -1

    def reportSensorValues(sensorName):
        def sensorValue(timestamp, values):
            global value
            if sys.version_info >= (3, 0):
                value = list(values.values())[0]
            else:
                value = values.values()[0]

            sensorObj.stop()

        return sensorValue

    try:
        sensorObj = SensorReader((shtObj, ), 1, reportSensorValues('shtObj'))
        sensorObj.start()
    finally:
        sensorObj.join()

    return 0
Ejemplo n.º 5
0
def main():
    print('detecting sensors')
    sdp = find_sensor_by_type('sdp600')

    if not sdp:
        sys.stderr.writelines("couldn't find any sensors\n")
        return

    print('connecting to mqtt')
    client = mqtt.Client()
    client.on_connect = on_connect
    client.connect("139.59.172.240", 1884)
    print('connected')

    def send_sensor_values(sensor, sensor_name):
        def send(timestamp, values):
            global lst, counter
            measurements = values.values()[0]
            if all(m is not None for m in measurements):
                val = measurements[0]
                lst.append(val)
                print(counter)
                if counter == 6:
                    val = sum(lst) / len(lst)
                    payload = {
                        "id": str(uuid.uuid4()),
                        "createdAt": time.time(),
                        "ip": "piSerial#",
                        "ok": "true",
                        "sensor": "Sdp610",
                        "val": val
                    }
                    print(payload)
                    client.publish('Sdp610', json.dumps(payload))
                    lst = []
                    counter = 0
                counter += 1

        return send

    def signal_handler(signal, frame):
        print('terminating')
        client.disconnect()

    signal.signal(signal.SIGINT, signal_handler)

    try:
        if sdp:
            lst = []
            counter = 0
            sdp_reader = SensorReader((sdp, ), (1),
                                      send_sensor_values(sdp, 'sdp'))
            sdp_reader.start()
        client.loop_forever()
    finally:
        client.loop_stop()
        if sdp:
            sdp_reader.join()