Giter VIP home page Giter VIP logo

pydigitemp's Introduction

PyDigiTemp

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

Master

  • DS9097 - COM port adapter which performs RS-232C level conversion.
  • Custom 1-wire serial port interface (see below).

Slave

Usage

Find ROM codes for all connected devices:

from digitemp.master import UART_Adapter
from digitemp.device import AddressableDevice

print(AddressableDevice(UART_Adapter('/dev/ttyS0')).get_connected_ROMs())
# ['108739A80208006F', '10A75CA80208001A']

Get temperature:

from digitemp.master import UART_Adapter
from digitemp.device import DS1820

bus = UART_Adapter('/dev/ttyS0')  # DS9097 connected to COM1

# only one 1-wire device on the bus:
sensor = DS1820(bus)

# specify device's ROM code if more than one 1-wire device on the bus:
sensor = DS1820(bus, rom='10D67E5B02080037')

# display sensor's information
sensor.info()

# get temperature
print(sensor.get_temperature())
# 25.48

Set resolution for DS18B20 and DS1822):

from digitemp.device import DS18B20
sensor = DS18B20(bus)

sensor.set_resolution(DS18B20.RES_9_BIT)

digitemp.device module provides following 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

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.

pydigitemp's People

Contributors

mcsakoff avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.