Python implementation of 1-Wire protocol.
Originally written to replace digitemp utility in my pet project and get direct access to 1-wire devices. It was created for reading DS1820 temperature sensor connected to RS232 serial port through DS9097 adapter.
Documentation used
Supported Hardware
Bus Drivers
DS9097 - COM port adapter which performs RS-232C level conversion.
Custom 1-wire serial port interface (see below).
1-Wire Devices
DS1820 / DS18S20 / DS1920 - High-Precision Temperature Sensor.
DS18B20 - Programmable Resolution Temperature Sensor.
DS1822 - Econo Temperature Sensor.
Usage
Find ROM codes for all connected devices:
from digitemp.master import UART_Adapter
print(UART_Adapter('/dev/ttyS0').get_connected_ROMs())
# ['108739A80208006F', '10A75CA80208001A', '2825EA52050000CE']
Get temperature when there is only one 1-wire device on the bus:
from digitemp.master import UART_Adapter
from digitemp.device import TemperatureSensor
sensor = TemperatureSensor(UART_Adapter('/dev/ttyS0'))
sensor.info()
print(sensor.get_temperature())
Get temperature from specific sensor:
from digitemp.master import UART_Adapter
from digitemp.device import TemperatureSensor
bus = UART_Adapter('/dev/ttyS0')
sensor = TemperatureSensor(bus, rom='108739A80208006F')
sensor.info()
print(sensor.get_temperature())
You can directly instantiate a device class to use its features (e.g.: setting resolution):
from digitemp.device import DS18S20 sensor = DS18S20(bus, precise=False)
or:
from digitemp.device import DS18B20 sensor = DS18B20(bus) sensor.set_resolution(DS18B20.RES_10_BIT)
digitemp.device module provides following device classes:
DS18S20 - for DS1820, DS18S20 and DS1920 High-Precision Temperature Sensors (family code: 0x10);
DS18B20 - for DS18B20 Programmable Resolution Temperature Sensors (family code: 0x28);
DS1822 - for DS1822 Econo Temperature Sensor (family code: 0x22)
DS1820, DS1920 - are aliases for DS18S20
See more examples in examples directory.
Schematics
IMPORTANT DISCLAIMER: All circuits presented here are collected from different sources on the Internet and thus are provided on an entirely “as-is and no guarantees” basis. We do not provide a warranty of any kind and cannot be held responsible in any manner.
1-wire serial port interface
See Serial Port Temperature Sensors - Hardware Interface for details.
USB/UART adapter
These are tested:
Not all schematics work in all cases, depending on adapter and cable length.
These are not tested yet:
Thanks
Slavko for SVG schematics and testing.
License
Python license. In short, you can use this product in commercial and non-commercial applications, modify it, redistribute it. A notification to the author when you use and/or modify it is welcome.
See the LICENSE file for the actual text of the license.
Metadata
Release files for pydigitemp 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pydigitemp-1.4.1.tar.gz | 13.0 kB | Without provenance | Details for pydigitemp-1.4.1.tar.gz |
Release files / pydigitemp-1.4.1.tar.gz
| Download URL | pydigitemp-1.4.1.tar.gz |
|---|---|
| Size | 13.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0a852bf99580fa7bb3c8d2cb0a6802ca34b32290855246c1d23db014be5f98b
|
|
BLAKE2b-256 checksum How to use checksums |
3e81e84bac917e7ac406a11e4f7e89eda63e8a510ca5e0859dc447d5a241da21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.6.1 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.4
|
Security for pydigitemp 1.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.