Last active
March 31, 2022 15:29
-
-
Save boozeman/e896f0e4a3ec8cd644331403e27a113c to your computer and use it in GitHub Desktop.
Berry Driver - Convert ADS1115 values to volts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import string | |
class ADS1115Data : Driver | |
var convert_to_mv | |
def ads1115() | |
# Read needed Sensor data | |
var sensors = json.load(tasmota.read_sensors()) | |
var raw_adc0 = sensors['ADS1115']['A0'] | |
var raw_adc1 = sensors['ADS1115']['A1'] | |
var raw_adc2 = sensors['ADS1115']['A2'] | |
var raw_adc3 = sensors['ADS1115']['A3'] | |
# Calculate value in millivolts | |
var adc_mv0 = 6.144 * raw_adc0 / 32767 | |
var adc_mv1 = 6.144 * raw_adc1 / 32767 | |
var adc_mv2 = 6.144 * raw_adc2 / 32767 | |
var adc_mv3 = 6.144 * raw_adc3 / 32767 | |
self.convert_to_mv = [adc_mv0,adc_mv1,adc_mv2,adc_mv3] | |
return self.convert_to_mv | |
end | |
def every_second() | |
if !self.ads1115 return nil end | |
self.ads1115() | |
end | |
def web_sensor() | |
if !self.convert_to_mv return nil end #- exit if not initialized -# | |
var msg = string.format( | |
"{s}ADC1115 Analog0 mV{m}%.2f V{e}".. | |
"{s}ADC1115 Analog1 mV{m}%.2f V{e}".. | |
"{s}ADC1115 Analog2 mV{m}%.2f V{e}".. | |
"{s}ADC1115 Analog3 mV{m}%.2f V{e}", | |
self.convert_to_mv[0],self.convert_to_mv[1],self.convert_to_mv[2],self.convert_to_mv[3]) | |
tasmota.web_send_decimal(msg) | |
end | |
def json_append() | |
if !self.convert_to_mv return nil end | |
var msg = string.format( | |
",\"ADS1115Volts\":{\"A0\":%.2f,\"A1\":%.2f,\"A2\":%.2f,\"A3\":%.2f}", | |
self.convert_to_mv[0],self.convert_to_mv[1],self.convert_to_mv[2],self.convert_to_mv[3]) | |
tasmota.response_append(msg) | |
end | |
end | |
ADS1115Data = ADS1115Data() | |
tasmota.add_driver(ADS1115Data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment