![Gitter](https://badges.gitter.im/Join Chat.svg)
Get the temperature from your w1 therm sensor in a single line of code!
It's designed to be used with the Rasperry Pi hardware but also works on a Beagle Bone and others.
New: use w1thermsensor as a CLI tool! - Since version 0.3.0
The following w1 therm sensor devices are supported:
- DS18S20
- DS1822
- DS18B20
- DS28EA00
- DS1825/MAX31850K
You just need a w1 therm sensor.
Some of them can be bought here: Adafruit: DS18B20
I've used a Raspberry Pi with an GPIO Breakout (Pi Cobbler). Other hardware like the Beagle Bone are supported, too.
This possibility is supported on all distribution:
pip install w1thermsensor
Note: maybe root privileges are required
If you are using the w1thermsensor
module on a Rasperry Pi running raspbian you can install it from the offical repository:
sudo apt-get install python-w1thermsensor
Or if you are using python 3:
sudo apt-get install python3-w1thermsensor
debuild -us -uc
The usage is very simple and the interface clean..
All examples are with the DS18B20
sensor - It works the same way for the other supported devices.
from w1thermsensor import W1ThermSensor
sensor = W1ThermSensor()
temperature_in_celsius = sensor.get_temperature()
temperature_in_fahrenheit = sensor.get_temperature(W1ThermSensor.DEGREES_F)
temperature_in_all_units = sensor.get_temperatures([
W1ThermSensor.DEGREES_C,
W1ThermSensor.DEGREES_F,
W1ThermSensor.KELVIN])
The need kernel modules will be automatically loaded in the constructor of the W1ThermSensor
class.
If something went wrong an exception is raised.
The first found sensor will be taken
The DS18B20 sensor with the ID 00000588806a
will be taken.
from w1thermsensor import W1ThermSensor
sensor = W1ThermSensor(W1ThermSensor.THERM_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 w1thermsensor import W1ThermSensor
for sensor in W1ThermSensor.get_available_sensors():
print("Sensor %s has temperature %.2f" % (sensor.id, sensor.get_temperature()))
Only sensors of a specific therm sensor type:
from w1thermsensor import W1ThermSensor
for sensor in W1ThermSensor.get_available_sensors([W1ThermSensor.THERM_SENSOR_DS18B20]):
print("Sensor %s has temperature %.2f" % (sensor.id, sensor.get_temperature()))
The w1thermsensor module can be used as CLI tool since version 0.3.0
.
Please note that the CLI tool will only get installed with the Raspbian Python 3 package (sudo apt-get install python3-w1thermsensor
)
List all available sensors:
$ w1thermsensor ls
$ w1thermsensor ls --json # show results in JSON format
List only sensors of a specific type:
$ w1thermsensor ls --type DS1822
$ w1thermsensor ls --type DS1822 --type MAX31850K # specify multiple sensor types
$ w1thermsensor ls --type DS1822 --json # show results in JSON format
Show temperature of all available sensors: (Same synopsis as ls
)
$ w1thermsensor all --type DS1822
$ w1thermsensor all --type DS1822 --type MAX31850K # specify multiple sensor types
$ w1thermsensor all --type DS1822 --json # show results in JSON format
Show temperature of a single sensor:
$ w1thermsensor get 1 # 1 is the id obtained by the ls command
$ w1thermsensor get --hwid 00000588806a --type DS18B20
$ w1thermsensor get 1 # show results in JSON format
I'm happy about all types of contributions to this project! ๐ป