Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion openplotterI2c/i2cPostInstall.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def main():

print(_('Installing python packages...'))
try:
subprocess.call(['pip3', 'install', 'adafruit-blinka','adafruit-circuitpython-tca9548a','adafruit-circuitpython-bme680','adafruit-circuitpython-ads1x15', 'adafruit-circuitpython-htu21d', 'adafruit-circuitpython-bmp280', 'adafruit-circuitpython-bme280', 'adafruit-circuitpython-bmp3xx', 'adafruit-circuitpython-ina260', 'adafruit-circuitpython-ina219', 'adafruit-circuitpython-lps35hw', 'adafruit-circuitpython-bh1750','adafruit-circuitpython-ahtx0', '-U', '--break-system-packages'])
subprocess.call(['pip3', 'install', 'adafruit-blinka','adafruit-circuitpython-tca9548a','adafruit-circuitpython-bme680','adafruit-circuitpython-ads1x15', 'adafruit-circuitpython-htu21d', 'adafruit-circuitpython-bmp280', 'adafruit-circuitpython-bme280', 'adafruit-circuitpython-bmp3xx', 'adafruit-circuitpython-ina260', 'adafruit-circuitpython-ina219', 'adafruit-circuitpython-lps35hw', 'adafruit-circuitpython-bh1750','adafruit-circuitpython-ahtx0', 'adafruit-circuitpython-dps310', '-U', '--break-system-packages'])
print(_('DONE'))
except Exception as e: print(_('FAILED: ')+str(e))

Expand Down
2 changes: 1 addition & 1 deletion openplotterI2c/openplotterI2c.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def __init__(self):
self.i2c_sensors_def['HTU21D'] = {'magnitudes': [_('humidity'),_('temperature')], 'SKkeys': ['environment.inside.relativeHumidity',''], 'multiplexing':True}
self.i2c_sensors_def['LPS3X'] = {'magnitudes': [_('pressure'),_('temperature')], 'SKkeys': ['environment.outside.pressure',''], 'multiplexing':True}
self.i2c_sensors_def['MS5607-02BA03'] = {'magnitudes': [_('pressure'),_('temperature')], 'SKkeys': ['environment.outside.pressure',''], 'multiplexing':False}

self.i2c_sensors_def['DPS310'] = {'magnitudes': [_('pressure'),_('temperature')], 'SKkeys': ['environment.outside.pressure',''], 'multiplexing':False}
wx.Frame.__init__(self, None, title='I2C '+version, size=(800,444))
self.SetFont(wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
icon = wx.Icon(self.currentdir+"/data/openplotter-i2c.png", wx.BITMAP_TYPE_PNG)
Expand Down
51 changes: 49 additions & 2 deletions openplotterI2c/openplotterI2cRead.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def main():
conf2 = conf.Conf()
platform2 = platform.Platform()
if conf2.get('GENERAL', 'debug') == 'yes': debug = True
else: debug = False
else: debug = True
try: i2c_sensors=eval(conf2.get('I2C', 'sensors'))
except: i2c_sensors=[]
instances = []
Expand Down Expand Up @@ -286,6 +286,18 @@ def main():
if i2c_sensors[i]['address']:
instances.append({'name':i,'type':'ATHX0','tick':[now,now],'sensor':i2c_sensors[i],'object':adafruit_ahtx0.AHTx0(muxInstances[i2c_sensors[i]['address']][i2c_sensors[i]['channel']-1])})

elif i2c_sensors[i]['type'] == 'DPS310':
import adafruit_dps310
if i2c_sensors[i]['channel'] == 0:
if i2c_sensors[i]['address']:
instances.append({'name':i,'type':'DPS310','tick':[now,now],'sensor':i2c_sensors[i],'object':adafruit_dps310.basic.DPS310(i2c, address=int(i2c_sensors[i]['address'], 16))})
else:
if debug:
print('Multiplexing not implemented for DPS310 sensors')
sys.stdout.flush()



except Exception as e:
error = 'Error processing '+i+': '+str(e)
i2c_sensors[i]['error'] = error
Expand Down Expand Up @@ -733,6 +745,41 @@ def main():
Erg = getPaths(Erg,humidityValue,humidityValue2,humidityKey,humidityOffset,humidityFactor,humidityRaw)
instances[index]['tick'][1] = time.time()

elif i['type'] == 'DPS310':
pressureKey = i['sensor']['data'][0]['SKkey']
temperatureKey = i['sensor']['data'][1]['SKkey']

if temperatureKey:
temperatureRaw = i['object'].temperature
if debug:
print("DPS310 temperature:",temperatureRaw)
temperatureRate = i['sensor']['data'][1]['rate']
temperatureOffset = i['sensor']['data'][1]['offset']
temperatureFactor = i['sensor']['data'][1]['factor']
tick0 = time.time()
if tick0 - i['tick'][0] > temperatureRate:
temperatureValue = temperatureRaw
try: temperatureValue2 = float(temperatureValue)+273.15
except: temperatureValue2 = ''
Erg = getPaths(Erg,temperatureValue,temperatureValue2,temperatureKey,temperatureOffset,temperatureFactor,temperatureRaw)
instances[index]['tick'][1] = time.time()

if pressureKey:
pressureRaw = i['object'].pressure
if debug:
print("DPS310 pressure:",pressureRaw,"signalk key:",pressureKey)
pressureRate = i['sensor']['data'][0]['rate']
pressureOffset = i['sensor']['data'][0]['offset']
pressureFactor = i['sensor']['data'][0]['factor']
tick0 = time.time()
if tick0 - i['tick'][1] > pressureRate:
pressureValue = pressureRaw * 100
pressureValue2 = pressureValue
Erg = getPaths(Erg,pressureValue,pressureValue2,pressureKey,pressureOffset,pressureFactor,pressureRaw)

instances[index]['tick'][0] = time.time()


except Exception as e:
if debug:
print('Error reading '+i['name']+': '+str(e))
Expand All @@ -751,4 +798,4 @@ def main():

if __name__ == '__main__':
main()