Skip to content

Commit

Permalink
Add AHTX0 sensors
Browse files Browse the repository at this point in the history
  • Loading branch information
sailoog committed May 14, 2024
1 parent 9a487ff commit 95dd601
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 7 deletions.
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', '-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', '-U', '--break-system-packages'])
print(_('DONE'))
except Exception as e: print(_('FAILED: ')+str(e))

Expand Down
1 change: 1 addition & 0 deletions openplotterI2c/openplotterI2c.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ def __init__(self):
self.i2c_sensors_def = {}
self.i2c_sensors_def['ADS1015'] = {'magnitudes': ['A0','A1','A2','A3'], 'SKkeys': ['','','',''],'sensorSettings':{'gain':'1'}, 'magnitudeSettings':{'range1':'0|1700-> 0|16'}, 'multiplexing':True}
self.i2c_sensors_def['ADS1115'] = {'magnitudes': ['A0','A1','A2','A3'], 'SKkeys': ['','','',''],'sensorSettings':{'gain':'1'}, 'magnitudeSettings':{'range1':'0|27000 -> 0|16'}, 'multiplexing':True}
self.i2c_sensors_def['AHTX0'] = {'magnitudes': [_('temperature'),_('humidity')], 'SKkeys': ['','environment.inside.relativeHumidity'], 'multiplexing':True}
self.i2c_sensors_def['INA219'] = {'magnitudes': [_('bus voltage'),_('shunt voltage'),_('current'),_('power')], 'SKkeys': ['','','',''],'sensorSettings':{'current_lsb':'0.1','cal_value':'4096','power_lsb':'0.002','bus_voltage_range':'RANGE_32V','gain':'DIV_8_320MV','bus_adc_resolution':'ADCRES_12BIT_1S','shunt_adc_resolution':'ADCRES_12BIT_1S','mode':'SANDBVOLT_CONTINUOUS'}, 'multiplexing': True}
self.i2c_sensors_def['INA260'] = {'magnitudes': [_('voltage'),_('current'),_('power')], 'SKkeys': ['','',''], 'multiplexing': True}
self.i2c_sensors_def['BH1750'] = {'magnitudes': [_('illuminance')], 'SKkeys': ['environment.outside.illuminance'], 'multiplexing':True}
Expand Down
50 changes: 44 additions & 6 deletions openplotterI2c/openplotterI2cRead.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,15 @@ def main():
if 'magnitudeSettings' in instances[-1]['sensor']['data'][ii]:
instances[-1]['sensor']['data'][ii]['ranges'] = getRanges(instances[-1]['sensor']['data'][ii]['magnitudeSettings'])

elif i2c_sensors[i]['type'] == 'AHTX0':
import adafruit_ahtx0
if i2c_sensors[i]['channel'] == 0:
if i2c_sensors[i]['address']:
instances.append({'name':i,'type':'AHTX0','tick':[now,now],'sensor':i2c_sensors[i],'object':adafruit_ahtx0.AHTx0(i2c, address=int(i2c_sensors[i]['address'], 16))})
else:
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])})

except Exception as e:
if debug:
print('Error processing '+i+': '+str(e))
Expand Down Expand Up @@ -349,8 +358,8 @@ def main():
humidityFactor = i['sensor']['data'][2]['factor']
tick0 = time.time()
if tick0 - i['tick'][2] > humidityRate:
try: humidityValue = round(i['object'].humidity,2)
except: humidityValue = i['object'].humidity
try: humidityValue = round(float(i['object'].humidity)/100.0,3)
except: humidityValue = float(i['object'].humidity)/100.0
humidityValue2 = humidityValue
Erg = getPaths(Erg,humidityValue,humidityValue2,humidityKey,humidityOffset,humidityFactor,humidityRaw)
instances[index]['tick'][2] = time.time()
Expand Down Expand Up @@ -404,8 +413,8 @@ def main():
humidityFactor = i['sensor']['data'][2]['factor']
tick0 = time.time()
if tick0 - i['tick'][2] > humidityRate:
try: humidityValue = round(i['object'].humidity,1)
except: humidityValue = i['object'].humidity
try: humidityValue = round(float(i['object'].humidity)/100.0,3)
except: humidityValue = float(i['object'].humidity)/100.0
humidityValue2 = humidityValue
Erg = getPaths(Erg,humidityValue,humidityValue2,humidityKey,humidityOffset,humidityFactor,humidityRaw)
instances[index]['tick'][2] = time.time()
Expand Down Expand Up @@ -480,8 +489,8 @@ def main():
humidityFactor = i['sensor']['data'][0]['factor']
tick0 = time.time()
if tick0 - i['tick'][0] > humidityRate:
try: humidityValue = round(i['object'].relative_humidity,1)
except: humidityValue = i['object'].relative_humidity
try: humidityValue = round(float(i['object'].relative_humidity)/100.0,3)
except: humidityValue = float(i['object'].relative_humidity)/100.0
humidityValue2 = humidityValue
Erg = getPaths(Erg,humidityValue,humidityValue2,humidityKey,humidityOffset,humidityFactor,humidityRaw)
instances[index]['tick'][0] = time.time()
Expand Down Expand Up @@ -691,6 +700,35 @@ def main():
Erg = getPaths2(Erg, A0Ranges, A0value, A0voltage, A0key, A0offset, A0factor, A0raw)
instances[index]['tick'][ii] = time.time()

elif i['type'] == 'AHTX0':
temperatureKey = i['sensor']['data'][0]['SKkey']
humidityKey = i['sensor']['data'][1]['SKkey']
if temperatureKey:
temperatureRaw = i['sensor']['data'][0]['raw']
temperatureRate = i['sensor']['data'][0]['rate']
temperatureOffset = i['sensor']['data'][0]['offset']
temperatureFactor = i['sensor']['data'][0]['factor']
tick0 = time.time()
if tick0 - i['tick'][0] > temperatureRate:
try: temperatureValue = round(i['object'].temperature,1)
except: temperatureValue = i['object'].temperature
try: temperatureValue2 = float(temperatureValue)+273.15
except: temperatureValue2 = ''
Erg = getPaths(Erg,temperatureValue,temperatureValue2,temperatureKey,temperatureOffset,temperatureFactor,temperatureRaw)
instances[index]['tick'][0] = time.time()
if humidityKey:
humidityRaw = i['sensor']['data'][1]['raw']
humidityRate = i['sensor']['data'][1]['rate']
humidityOffset = i['sensor']['data'][1]['offset']
humidityFactor = i['sensor']['data'][1]['factor']
tick0 = time.time()
if tick0 - i['tick'][1] > humidityRate:
try: humidityValue = round(float(i['object'].relative_humidity)/100.0,3)
except: humidityValue = float(i['object'].relative_humidity)/100.0
humidityValue2 = humidityValue
Erg = getPaths(Erg,humidityValue,humidityValue2,humidityKey,humidityOffset,humidityFactor,humidityRaw)
instances[index]['tick'][1] = time.time()

except Exception as e:
if debug:
print('Error reading '+i['name']+': '+str(e))
Expand Down

0 comments on commit 95dd601

Please sign in to comment.