Skip to main content

Receive temperature readings from TSic 206/306/506/716 sensor chips on Raspberry Pi

Project description

python-tsic

Receive temperature readings from TSic sensor chips connected to Raspberry Pi GPIO.

Supported:

  • TSic 206/306
  • TSic 506
  • TSic 716

Don't forget the bypass capacitor as near as possible to the sensor's power supply pins to get stable behavior.

Dependencies

The package tsic requires Python 3 and the great library pigpio for GPIO access with precise timing. Note that Python 2 will not work.

Installation

Install from Python package index PyPI:

pip3 install tsic

Usage

The module tsic provides the following classes:

  • TsicInputChannel receive temperature measurements
  • Measurement a temperature measurement
  • TsicType TSic type definition with instances TSIC206, TSIC306, TSIC506, TSIC716 (206 and 306 are currently equivalent)
  • ZacWireInputChannel receive byte packets over ZACWire protocol (low-level handler for TsicInputChannel)

Command Line Test Tool

Run tsic <gpio-bcm> [--type {206,506,716,306}] [--loop] to read temperatures from a GPIO pin (Broadcom numbering). See tsic --help for command line usage.

pi@raspi3:~ $ sudo tsic 19 --type 306
Receiving data from TSic 206/306...
Measurement 17.90°C at 2018-11-10 16:16:11.419573

Examples

From file example.py:

import time
import pigpio

from tsic import TsicInputChannel, Measurement, TSIC306

# TsicInputChannel and ZacWireInputChannel require pigpio
# for GPIO access with precise timing:
pi = pigpio.pi()

tsic = TsicInputChannel(pigpio_pi=pi, gpio=17, tsic_type=TSIC306)

print('\nA. Single measurement:')
print(tsic.measure_once(timeout=1.0))

print('\nB. All measurements for 1 second:')
tsic.start(lambda measurement: print(measurement))
time.sleep(1)
tsic.stop()

print('\nC. One measurement per second for 3 seconds:')

# start receiving in a context:
with tsic:
    for i in range(3):
        time.sleep(1)
        measurement = tsic.measurement
        if measurement == Measurement.UNDEF:
            print(measurement)
        else:
            print('{:d} {:.1f}°C'.format(i+1, measurement.degree_celsius))

pi.stop()

Source Code

Hosted on github.com/grillbaer/python-tsic

With greetings from Bavaria, Holger

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

tsic-2.0.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

tsic-2.0.2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file tsic-2.0.2.tar.gz.

File metadata

  • Download URL: tsic-2.0.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.4

File hashes

Hashes for tsic-2.0.2.tar.gz
Algorithm Hash digest
SHA256 0ca50ce54eb46b19af3352817eeda6ac4f026d11e1825a2ca9cf271ac8f3f013
MD5 aee7b94538e7d70412a37b9ea6ee7268
BLAKE2b-256 825000d68c05392e75cde83aa862083c784ba34ff9f6dbb5608412ba7174dafc

See more details on using hashes here.

File details

Details for the file tsic-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: tsic-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.4

File hashes

Hashes for tsic-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ad4e75359f129903fe0b97da6e4f6660c08eb41add236af95e796f90b10ef566
MD5 8fdd2b8beee21a4b910b2d9c25b0fdfc
BLAKE2b-256 ed3946f0dfc0cbf00c40562f23de585c2a733298aae73b9e276561c6027a722a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page