Beispiel #1
0
            parsed_data['mo_'+current_read[i+1]]=float(current_read[i+2])
        


        # start uploading results;
        ## notice: during debuging phase, it is suggested to run the script line-by-line to avoid bugs that can be passed by try and catch 
        log_attempts=1
        while log_attempts<10:
            try:
                pht.log(parsed_data['suht_28e5_begin']
                    ,parsed_data['suht_28e5_peak']
                    ,parsed_data['suht_28e5_end']
                    ,parsed_data['suht_2847_begin']
                    ,parsed_data['suht_2847_peak']
                    ,parsed_data['suht_2847_end']
                    ,parsed_data['saltrh_2_tp']
                    ,parsed_data['saltrh_2_rh']
                    ,parsed_data['saltrh_3_tp']
                    ,parsed_data['saltrh_3_rh']
                    ,parsed_data['mo_7']
                    ,parsed_data['mo_8']
                    ,parsed_data['mo_9']
                    ,parsed_data['mo_10'])
                break
            except: # catch all errors
                log_attempts+=1
                time.sleep(30)
                continue
        time_now=time.strftime("%d/%b/%Y %H:%M:%S")
        if screen_display: print i,delimiter,time_now,delimiter,msg.rstrip()
        if save_to_file: fid.write(time_now+delimiter+msg)
       
Beispiel #2
0
SAMPLES_PER_QUERY = 1024;

# Create the temperature sensor object using AIO pin 0
i2c_th = th02.TH02()

#
p = Phant(keys["publicKey"],
          'device', 'temp', 'humidity', 'light', "uv", "moisture",
          private_key=keys["privateKey"])

device = open("/factory/serial_number").read().strip('\n')

temp = i2c_th.getTemperature()
humid = i2c_th.getHumidity()
lux_val = light.value()
uv_val = uv.value(GUVAS12D_AREF, SAMPLES_PER_QUERY)
moisture_val = moisture.value()

myLcd.setCursor(1, 0)
try:
    p.log(device, temp, humid, lux_val, uv_val, moisture_val)
except requests.exceptions.ConnectionError as e:
    print("Connection error with data.sparkfun.com")
    myLcd.setColor(255, 0, 0) # Red
    myLcd.write("Error")
else:
    myLcd.setColor(53, 249, 39 ) # Green
    myLcd.write("Sent Bytes: {}".format(p.remaining_bytes))

time.sleep(10)
Beispiel #3
0
for i in xrange(no_of_readings): 
    ser.write('IP\n\r')
    msg = ser.readline()
    current_read=msg.split()[0]
    parsed_data['commercial']=float(current_read)
    parsed_data['nvl']=0.0
    parsed_data['ohaus']=0.0
    time_now=time.strftime("%Y-%b-%d %H:%M:%S")
    parsed_data['measure_local_time']=time_now


    log_attempts=1
    while log_attempts<10:
        try:
            pht.log(parsed_data['commercial']  # warning: the sequence of the upload values has to follow strict from sequence in variable pased_data and field name
                ,parsed_data['nvl']
                ,parsed_data['ohaus']
                ,parsed_data['measure_local_time'])
            break
        except: # catch all errors
            log_attempts+=1
            time.sleep(30)
            continue
        if screen_display: print i,delimiter,time_now,delimiter,msg.rstrip()
        if save_to_file: fid.write(time_now+delimiter+msg)
       
    time.sleep(sleep_time_seconds)

        
fid.close()
ser.close()
Beispiel #4
0
            segment.write_display()

            time.sleep(ALTERNATE_TEMP_SCALE_SECONDS)

        if LOGGING:

            ambient_temp_C = temp
            ambient_temp_F = temp_in_F
            ambient_pressure = pressure / 100.0

            fields = (ambient_pressure, ambient_temp_C, ambient_temp_F,
                      altitude)
            print fields

            if (COUNT % COUNT_INTERVAL) == 0:
                p2.log(altitude, ambient_pressure, ambient_temp_C,
                       ambient_temp_F)
                print 'Wrote a row to {0}'.format(p2.title)
                print(p2.remaining_bytes, p2.cap)
            else:
                print 'at {0} seconds out of {1}'.format(
                    (COUNT * MEASUREMENT_INTERVAL) % FREQUENCY_SECONDS,
                    FREQUENCY_SECONDS)

        COUNT = COUNT + 1

    except KeyboardInterrupt:
        segment.clear()
        segment.write_display()
        if 'KI' not in error_tables:
            error_tables['KI'] = 1
        else:
Beispiel #5
0
        # parse mps2 data
        sutp_ind = [i for i, x in enumerate(current_read) if x == 'SuTp']
        for i in sutp_ind:
            parsed_data['su' + current_read[i + 1][0]] = float(current_read[i +
                                                                            2])
            parsed_data['tp' + current_read[i + 1][0]] = float(current_read[i +
                                                                            3])
        log_attempts = 1
        while log_attempts < 10:
            try:
                pht.log(
                    parsed_data['tpf0'], parsed_data['tp11'],
                    parsed_data['tp8d'], parsed_data['tpa3'],
                    parsed_data['mo0'], parsed_data['mo1'], parsed_data['mo2'],
                    parsed_data['mo3'], parsed_data['mo4'], parsed_data['mo5'],
                    parsed_data['mo6'], parsed_data['mo7'], parsed_data['mo8'],
                    parsed_data['mo9'], parsed_data['mo10'],
                    parsed_data['mo11'], parsed_data['su1'],
                    parsed_data['tp1'], parsed_data['su2'], parsed_data['tp2'],
                    parsed_data['su3'], parsed_data['tp3'], parsed_data['su4'],
                    parsed_data['tp4'])
                break
            except:  # catch all errors
                log_attempts += 1
                time.sleep(30)
                continue
        time_now = time.strftime("%d/%b/%Y %H:%M:%S")
        if screen_display:
            print i, seperator, time_now, seperator, msg.rstrip()
        if save_to_file: fid.write(time_now + seperator + msg)
Beispiel #6
0
	sensor = sensor_args[sys.argv[1]]
	pin = sys.argv[2]
else:
	print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#'
	print 'example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4'
	sys.exit(1)

# Try to grab a sensor reading.  Use the read_retry method which will retry up
# to 15 times to get a sensor reading (waiting 2 seconds between each retry).
humidity, tempc = Adafruit_DHT.read_retry(sensor, pin)


# Note that sometimes you won't get a reading and
# the results will be null (because Linux can't
# guarantee the timing of calls to read the sensor).
# If this happens try again!
if humidity is not None and tempc is not None:
	tempf = tempc * 9/5.0 + 32
	print 'Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(tempc, humidity)
	p.log(humidity, tempc, tempf)
	current_humidity_1 = h1.read()
	current_temperature_f_1 = tf1.read()
	if ( current_humidity_1 != humidity ):
		h1.write(humidity)
	if ( current_temperature_f_1 != tempf ):
		tf1.write(tempf)
	# humidity_datastream.update(fields=[humidity])
else:
	print 'Failed to get reading. Try again!'
	sys.exit(1)
Beispiel #7
0
            'IP\n\r'
        )  # output constant result, if it is a unsable one, the result ends up with a question mark.
        scale_raw = ser.readline()

        parsed_data['scale'] = float(scale_raw.split()[0])

        log_attempts = 1
        while log_attempts < 10:
            try:
                pht.log(parsed_data['tp2'], parsed_data['tp12'],
                        parsed_data['tp32'], parsed_data['tp8a'],
                        parsed_data['tp21'], parsed_data['tpe5'],
                        parsed_data['tp35'], parsed_data['tpa3'],
                        parsed_data['tp4b'], parsed_data['tpc7'],
                        parsed_data['tp9f'], parsed_data['mo0'],
                        parsed_data['mo1'], parsed_data['mo2'],
                        parsed_data['mo3'], parsed_data['mo4'],
                        parsed_data['mo5'], parsed_data['mo6'],
                        parsed_data['mo7'], parsed_data['mo8'],
                        parsed_data['mo9'], parsed_data['mo10'],
                        parsed_data['mo11'], parsed_data['ht115rh'],
                        parsed_data['ht115t'], parsed_data['ht119rh'],
                        parsed_data['ht119t'], parsed_data['scale'])
                break
            except:  # catch all errors
                log_attempts += 1
                time.sleep(30)
                continue
        time_now = time.strftime("%d/%b/%Y %H:%M:%S")
        if screen_display:
            print i, seperator, time_now, seperator, msg.rstrip()
        if save_to_file: fid.write(time_now + seperator + msg)
#!/usr/bin/env python3

from w1thermsensor import W1ThermSensor
from gpiozero import LightSensor
from phant import Phant
from time import sleep
from keys import PHANT_PUBLIC_KEY, PHANT_PRIVATE_KEY

tempSensor = W1ThermSensor()
lightSensor = LightSensor(18, charge_time_limit=0.05)

p = Phant(PHANT_PUBLIC_KEY, 'light', 'temp', 'location', private_key=PHANT_PRIVATE_KEY)

location = 'vs'

while True:

    temperature = tempSensor.get_temperature(W1ThermSensor.DEGREES_F)

    light = lightSensor.value

    print ('Light: %0.2f, Temperature %0.2f' % (light, temperature))

    try:
        p.log(light, temperature, location)
    except:
        print ('Error sending data to the server')

    sleep(10)
import bme280
import time
from phant import Phant

p = Phant(publicKey='WGglMj2LaoCYmGynvnlQ',
          fields=['temperature', 'pressure', 'humidity'],
          privateKey='XR6X1MA9ZDurW0j8b8aR')

while True:
    temperature, pressure, humidity = bme280.readBME280All()
    temperature = round(temperature, 2)
    pressure = round(pressure, 2)
    humidity = round(humidity, 2)
    p.log(temperature, pressure, humidity)
    print temperature, pressure, humidity
    time.sleep(10)