Steinhart -- Hart and Beta thermistor temperature model in Python and C. Implementation and utilities
Project description
Thermistor utilities
A python based library implementing models to convert thermistor values from temperature to resistance and vice versa.
Steinhart--Hart model
Implementation precision
How to use
# import the Steinhart--Hart and or the Beta converter
from thermistor_utils import SH_converter
Create a converter from A, B, and C coefficients:
A, B, C = (0.0008402250578523375, 0.00025963477647737156, 1.5674403473853433e-07, )
conv = SH_converter(A, B, C)
If they're not available the converter could compute the values from three evenly spaced readings of temperature and resistance.
Create the converter from temp/res readings:
readings = (
(0, 27445),
(25, 10000),
(50, 4160),
)
conv = SH_converter.from_points(readings)
Printing the coefficients in a form suitable for subsequent use in python and C:
print(repr(conv))
# SH_converter(0.0008402250578523375, 0.00025963477647737156, 1.5674403473853433e-07, 0, 50)
print(conv.to_cstr())
# {0.0008402250578523375, 0.00025963477647737156, 1.5674403473853433e-07, 0, 50}
# compact but less precise representation
# (inverse of coefficients and no temperature range)
print(conv.to_cstr(compact=True, with_temps=False))
# {1./1190, 1./3852, 1./6379828}
Use the reference implementation in C (example-1.c):
#include <stdio.h>
#include <thermistor_utils.h>
int main(void)
{
struct sh_s coefficients = {
0.0008402250578523375,
0.00025963477647737156,
1.5674403473853433e-07
};
// 25C to Ohm and 10k Ohm to Celsius
double R_at_25 = sh_resistance(coefficients, 25),
T_at_10000 = sh_temperature(coefficients, 10000);
printf("25 Celsius -> %.0f Ohms\n", R_at_25);
printf("10k Ohms -> %.0f Celsius\n", T_at_10000);
}
To compile and run from the examples directory:
$ mkdir -p ../bin
$ gcc -o ../bin/example-1 \
-I../src/include \
../src/sh_converter.c \
-lm \
example-1.c
$ ../bin/example-1
25 Celsius -> 10000 Ohms
10k Ohms -> 25 Celsius
Beta model
Implementation precision
How to use
# import the Steinhart--Hart and or the Beta converter
from thermistor_utils import Beta_converter
Create a converter from beta values:
beta, R0, T0 = (3380, 10000, 25)
conv = Beta_converter(beta, R0, T0)
Printing the beta values in a form suitable for subsequent use in python and C:
print(repr(conv))
# Beta_converter(3380, 10000, 25)
print(conv.to_cstr())
# {3380, 10000, 25}
Use the reference implementation in C (example-2.c):
#include <stdio.h>
#include <thermistor_utils.h>
int main(void)
{
struct beta_s bpar = {3380, 10000, 25};
// 25C to Ohm and 10k Ohm to Celsius
double R_at_25 = beta_resistance(bpar, 25),
T_at_10000 = beta_temperature(bpar, 10000);
printf("25 Celsius -> %.0f Ohms\n", R_at_25);
printf("10k Ohms -> %.0f Celsius\n", T_at_10000);
}
To compile and run from the examples directory:
$ mkdir -p ../bin
$ gcc -o ../bin/example-2 \
-I../src/include \
../src/beta_converter.c \
-lm \
example-2.c
$ ../bin/example-2
25 Celsius -> 10000 Ohms
10k Ohms -> 25 Celsius
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thermistor_utils-0.0.4.tar.gz.
File metadata
- Download URL: thermistor_utils-0.0.4.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a648689bb6e55129cb14403aae985068246e1365d74b154db33f2a86a38a415c
|
|
| MD5 |
e90089bcaed97aeba019ab399c9206f4
|
|
| BLAKE2b-256 |
b466f90da1f82fe207fe9cf677bb24cfd8b133345c940266dbcae7e1dbafa6fd
|
File details
Details for the file thermistor_utils-0.0.4-py3-none-any.whl.
File metadata
- Download URL: thermistor_utils-0.0.4-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00923bc0e9d9728e3c2db5f10c29801baa9fa4842750f41ab5451365b2fc2c7c
|
|
| MD5 |
2548a51da240da047047e4a31e2f3b9c
|
|
| BLAKE2b-256 |
4ccebb89b5e80b1c1dd1e861bdfc105791a48abb63234f555bd78a2cef288d0c
|