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)
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)
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()
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:
# 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)
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)
'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)