2.7 KiB
2.7 KiB
TH7
Seven-channel multiple thermocouple reader and logger HAT for the Raspberry Pi.
This software supports the following thermocouple types:
- B
- E
- J
- K
- N
- R
- S
- T
Features not yet implemented but planned:
- More database logging options than SQLite3
- Advanced filtering, incl. user-selectable filtering stages and sample sizes
- Several logging options at once, one local, one or more remote
- Configure any setting via API call either via RESTful JSON API or GRPC
- A terminal user interface ("TUI") that may be used to remotely monitor/access/configure a TH7 (w/ auth)
- Ability to act in headless mode
- Request dumps from filter stages for noise study
- ... and more!
Note: Most thermocouples that have a coloured and a white lead, usually have the coloured one as the positive.
Configuring the TH7
This program is controlled with a config file config.toml
in which the user can configure each thermocouple channel independently, enable a web view, configure database logging, etc.
The TH7 software uses sane default values where possible.
# EXAMPLE TH7 CONFIG
[TH7]
# port used by the web view
port = 9090
# enable the blinking lights on the Raspberry Pi Hat
LED = true
# if true, the software will use a simulated TH7
debug = false
# Configure channel 1
[Channel_1]
# set type to K-type thermocouple
type = 'K'
# gain is used during signal conversion
gain = 106.8
# offset is added to the final converted value (in °C)
offset = -5.6
# samples for the filter function
filter.samples = 50
# integer representing the filter function type
filter.type = 0
# Filter functions:
# 0: simple alpha-beta filter (default)
# 1: lag filter: old * 0.90 + new * 0.10
# 2: lag filter: old * 0.95 + new * 0.05
# 3: lag filter: old * 0.99 + new * 0.01
# Configure channel 2 to read μV
# this example uses default values for gain, offset and filter.
[Channel_2]
# set thermocouple type to 'U' to just read μV
type = 'U'
# Database
# Each database type (so far only SQLite3) requires its own set of values
# Below is an example for SQLite3
[DB]
type = "sqlite3"
# where to save the database file
path = "/home/pi/th7.db"
# logging frequency. specified in seconds.
freq = 60
Building on a Raspberry Pi
This code builds without fuss on Raspberry Pi 4 with go version go1.19.3 linux/arm
wget https://go.dev/dl/go1.19.3.linux-armv6l.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.3.linux-armv6l.tar.gz
edit $HOME/.profile and add the following, if not already there:
export PATH=$PATH:/usr/local/go/bin
source new profile
. $HOME/.profile
then try to build
make