123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #!/usr/bin/env python
- import numpy as np
- import os, serial,time,socket,sys,json
- from meas_data import meas_data
- # import the server implementation
- sensor="ads1x15"
- pathname = os.path.dirname(sys.argv[0])
- abspath=os.path.abspath(pathname)
- idfile=abspath+"/id.json"
- id_conf=0
- try:
- idf=open(idfile,"r")
- id_conf=json.load(idf)['id']
- idf.close()
- except:
- id_conf=0
- configfile=abspath+"/config.json"
- try:
- cf=open(configfile,"r")
- except:
- cf=open(configfile+".template","r")
- log_conf=json.load(cf)
- cf.close()
- parameter={"device":socket.gethostname(),"deviceid":"FF","mean_count":5,"ring_length":10,"wait":0.5,"cycle":10,"check_last":50,"check_last_shrinking":0.9,"gpg_keyid":"","digits":4,"store_dir":"/home/pi/log/","multiplicator":1,"sensor":sensor,"sigma":3}
- for n in parameter:
- if n in log_conf:
- parameter[n]=log_conf[n]
- bsensor=False
- if sensor in log_conf:
- if "enable" in log_conf[sensor]:
- if log_conf[sensor]["enable"] == 1:
- bsensor=True
- # declare adc
- badc=False
- channel_info={}
- GAIN=1
- if bsensor:
- badc=True
- ads_conf=log_conf['ads1x15']
- if "enable" in ads_conf:
- for n in parameter:
- if n in log_conf['ads1x15']:
- parameter[n]=log_conf['ads1x15'][n]
- if ads_conf['enable'] == 0:
- badc=False
- bmqtt=False
- if "mqtt" in log_conf:
- bmqtt=True
- lcmq=log_conf['mqtt']
- mbroker=""
- if 'broker' in lcmq:
- mbroker=lcmq['broker']
- else:
- bmqtt=False
- mport=1883
- if 'port' in lcmq:
- mport=lcmq['port']
- if "sqlserver" in log_conf:
- hostname="localhost"
- port=8080
- if badc:
- adc={}
- GAIN=1
- for n in parameter:
- if n in ads_conf:
- parameter[n]=ads_conf[n]
- if "gain" in ads_conf:
- GAIN=ads_conf['gain']
- if "adc" in ads_conf:
- tsl_sigma=parameter['sigma']
- if "sigma" in log_conf['ads1x15']:
- tsl_sigma=int(log_conf['ads1x15']['sigma'])
- if tsl_sigma < 1:
- tsl_sigma=1
- parameter["sigma"]=tsl_sigma
- from Adafruit_ADS1x15 import ADS1115
- from Adafruit_ADS1x15 import ADS1015
- adc_count=0
- tadc=ads_conf['adc']
- for x in tadc:
- varpar=parameter
- y=tadc[x]
- adc_address=0x48
- if "address" in y:
- adc_address=int(y['address'],16)
- abc_bus=1
- if "busnum" in y:
- adc_bus=y['busnum']
- adc_type=1015
- if "type" in y:
- adc_type=y['type']
- adc_assigned=False
- if adc_type == 1115:
- try:
- adc[adc_count]=ADS1115(address=adc_address,busnum=adc_bus)
- adc_assigned=True
- except:
- print("could not assign ADC")
- if adc_type == 1015:
- try:
- adc[adc_count]=ADS1015(address=adc_address,busnum=adc_bus)
- adc_assigned=True
- except:
- print("could not assign ADC")
- varpar["sensor"]="ads"+str(adc_type)
- varpar["i2c"]=adc_address
- if adc_assigned:
- for j in range(4):
- cnadc="a"+str(adc_count)+"_"+str(j)
- cnadcs="a"+"_"+str(j)
- # channel_names.append(cnadc)
- varrpar=varpar
- varrpar["var_name"]=cnadcs
- channel_info[cnadc]={"meas_data": meas_data(varrpar)}
- if bmqtt and ("mqtt" in log_conf['ads1x15']):
- channel_info[cnadc]['meas_data'].set_mqtt(broker=mbroker,port=mport)
- if "sqlserver" in log_conf:
- channel_info[cnadc]['meas_data'].set_sql(host=hostname,port=port)
- adc_count=adc_count+1
- else:
- badc=False
- if badc:
-
- while True:
-
- for i in adc:
- cname="a"+str(i)+"_{0}"
- for j in range(4):
- channel_info[cname.format(j)]['meas_data'].append(adc[i].read_adc(j,gain=GAIN))
- time.sleep(parameter['wait'])
- # close the client
- print("done")
|