class TemperatureSensor(Sensor): def __init__(self, pin, name='TemperatureHumiditySensor', key=None, connection=default_connection, redis_conn=None): super().__init__(pin, name=name, key=key, connection=connection, redis_conn=redis_conn) return def init_sensor(self): self.sensors = DallasTemperature(self.pin, connection=self.connection) self.sensor_bus = self.sensors.getDeviceCount() # read data using pin specified pin Logger.log(LOG_LEVEL["debug"], "There are", self.sensor_bus, "devices connected on pin ", self.sensors.pin) self.addresses = [] for i in range(self.sensor_bus): self.addresses.append(self.sensors.getAddress(i)) Logger.log(LOG_LEVEL["debug"], "Their addresses", self.addresses) #I guess this is something with bit rates? TODO: Look this up self.sensors.setResolution(10) #sensor = id of sensor you want in addresses[] def read(self): #temp = self.sensors.getTempF(sensor) #self.r.set('temp_'+str(sensor), temp) #return temp return self.readAll() def readAll(self): self.sensors.requestTemperatures() temps = {} for i in range(self.sensor_bus): temp = self.sensors.getTempC(i) temps['temp_' + str(i)] = temp #self.r.set(self.key+'_'+str(i), temp) #print("Device %d (%s) " % (i, self.addresses[i])) #print("Let's convert it in Fahrenheit degrees: %0.2f" % DallasTemperature.toFahrenheit(temp)) self.r.set(self.key, temps) return temps
from nanpy import DallasTemperature, SerialManager device = '/dev/cu.usbmodem1411' connection = SerialManager(device=device) connection.open() sensors = DallasTemperature(connection=connection, pin=2) n_sensors = sensors.getDeviceCount() print("There are %d devices connected on pin %d" % (n_sensors, sensors.pin)) addresses = [] for i in range(n_sensors): addresses.append(sensors.getAddress(i)) sensors.setResolution(12) while True: sensors.requestTemperatures() for i in range(n_sensors): temp = sensors.getTempC(i) print("Device %d (%s) temperature, in Celsius degrees is %0.2f" % (i, addresses[i], temp)) print("Let's convert it in Fahrenheit degrees: %0.2f" % DallasTemperature.toFahrenheit(temp)) print("\n")
#!/usr/bin/env python # Author: Andrea Stagi <*****@*****.**> # Description: just a test for DallasTemperature # Dependencies: None from nanpy import DallasTemperature sensors = DallasTemperature(5) while True: print("There are %d devices connected on pin %d" % (sensors.getDeviceCount(), sensors.pin)) sensors.requestTemperatures(0) addr = sensors.getAddress(0) temp = sensors.getTempC(addr) print("The temperature, in Celsius degrees is %0.2f" % temp) print("Let's convert it in Fahrenheit degrees: %0.2f" % DallasTemperature.toFahrenheit(temp))
#!/usr/bin/env python # Author: Andrea Stagi <*****@*****.**> # Description: just a test for DallasTemperature # Dependencies: None from nanpy import DallasTemperature sensors = DallasTemperature(5) print("There are %d devices connected on pin %d" % (sensors.getDeviceCount(), sensors.pin)) addr = sensors.getAddress(0) sensors.setResolution(9) while True: sensors.requestTemperatures(0) temp = sensors.getTempC(addr) print("The temperature, in Celsius degrees is %0.2f" % temp) print("Let's convert it in Fahrenheit degrees: %0.2f" % DallasTemperature.toFahrenheit(temp))