This little pure python module provides a single class to get the temperature of a DS18B20 sensor
It can be easily used on are Rasperry Pi over the GPIO interface.
Author: Timo Furrer [email protected]
Version: 0.01.02
You just need a DS18B20 temperature sensor.
Some of them can be bought here: Adafruit: DS18B20
I've used a Raspberry Pi with an GPIO Breakout (Pi Cobbler)
python setup.py install
Note: maybe root privileges are required
pip install ds18b20
Note: maybe root privileges are required
The usage is very simple and the interface clean..
from ds18b20 import DS18B20
sensor = DS18B20()
temperature_in_celsius = sensor.get_temperature()
temperature_in_fahrenheit = sensor.get_temperature(DS18B20.DEGREES_F)
temperature_in_all_units = sensor.get_temperatures([DS18B20.DEGREES_C, DS18B20.DEGREES_F, DS18B20.KELVIN])
The need kernel modules will be automatically loaded in the constructor of the DS18B20
class.
If something went wrong an exception is raised.
The first found sensor will be taken
The sensor with the ID 00000588806a
will be taken.
from ds18b20 import DS18B20
sensor = DS18B20("00000588806a")
temperature_in_celsius = sensor.get_temperature()
With the get_available_sensors
class-method you can get the ids of all available sensors.
from ds18b20 import DS18B20
sensors = []
for sensor_id in DS18B20.get_available_sensors():
sensors.append(DS18B20(sensor_id))
for sensor in sensors:
print("Sensor %s has temperature %.2f" % (sensor.get_id(), sensor.get_temperature()))
The first path of the above code can be replaced by the get_all_sensors
method:
from ds18b20 import DS18B20
sensors = DS18B20.get_all_sensors()
...
There is a little sample program in the tests
directory.
Just execute it and you will get the temperatures in Kelvin, Degrees Celsius and Degrees Fahrenheit.
$ python example.py
Kelvin: 295.275000
Degress Celsius: 23.125000
Degress Fahrenheit: 73.625000
=====================================
Kelvin: 296.025000
Degress Celsius: 23.875000
Degress Fahrenheit: 74.975000
=====================================
...