#!/bin/python3 # 03jan2021: (re)initial version import adafruit_ads1x15.ads1015 as ADS import board import busio import datetime import os import sys import time # init variables term = str(os.environ.get('TERM')) outfile = '/tmp/rmeter-ads1115.out' systimer = '1' syscount = '5' if sys.argv[1:]: outfile = sys.argv[1] if sys.argv[2:]: systimer = sys.argv[2] if sys.argv[3:]: syscount = sys.argv[3] systimer = int(systimer) syscount = int(syscount) # init board from adafruit_ads1x15.analog_in import AnalogIn i2c = busio.I2C(board.SCL, board.SDA) ads = ADS.ADS1015(i2c) # loop now i = 0 while True: i = i + 1 if term != 'None' and i > syscount: break # read values s1 = AnalogIn(ads, ADS.P0) s2 = AnalogIn(ads, ADS.P1) s3 = AnalogIn(ads, ADS.P2) s4 = AnalogIn(ads, ADS.P3) s1 = str(abs(round(s1.voltage, 2))) s2 = str(abs(round(s2.voltage, 2))) s3 = str(abs(round(s3.voltage, 2))) s4 = str(abs(round(s4.voltage, 2))) # build and write the line x = datetime.datetime.now() ctime = x.strftime('%H:%M:%S') lline = ctime + ' ' + s1 + ' ' + s2 + ' ' + s3 + ' ' + s4 if term == 'None': f = open(outfile, 'a') f.write(lline + '\n') f.close() else: print(lline) # sleep time.sleep(systimer) if term != 'None': print ('') print ('usage: rmeter-ads1115 filename systimer syscounter') print ('') print ('-' * 70) print ('TIP: start the service: systemctl start ss-rmeter-ads1115.service') print (' associated with: /etc/sysconfig/rmeter-ads1115') print ('-' * 70) exit(0)