Hallo,
bitte um mithilfe
wenn der ds18b20 sensor mit dem Python script Temperaturen unter null °C ausliest, ergeben sich fehlerhafte werte: Sensor2: 4094.81 °C ?
Herausgefunden habe ich das durch einfaches tauschen der Position der sensoren von innen/aussen.
hat jemand eine Idee?
hier der Code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
HOST = "localhost"
PORT = 4223
UID = "GGW" # Change XYZ to the UID of your One Wire Bricklet
import time
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_one_wire import BrickletOneWire
if __name__ == "__main__":
ipcon = IPConnection() # Create IP connection
ow = BrickletOneWire(UID, ipcon) # Create device object
ipcon.connect(HOST, PORT) # Connect to brickd
# Don't use device before ipcon is connected
ids = ow.search_bus().identifier
print ids #id 13114784581154432808L
ow.write_command(13114784581154432808L, 78) # WRITE SCRATCHPAD
ow.write(0) # ALARM H (unused)
ow.write(0) # ALARM L (unused)
ow.write(127) # CONFIGURATION: 12 bit mode
# Read temperature 2 times
for i in range(2):
ow.write_command(13114784581154432808L, 68) # CONVERT T (start temperature conversion)
time.sleep(2) # Wait for conversion to finish
ow.write_command(13114784581154432808L, 190) # READ SCRATCHPAD
t_low = ow.read().data
t_high = ow.read().data
temperature1 = ('{:6.2f}'.format((t_low | (t_high << ) / 16.0))
print "Sensor1: %s °C" % temperature1
ipcon.disconnect()
if __name__ == "__main__":
ipcon = IPConnection() # Create IP connection
ow = BrickletOneWire(UID, ipcon) # Create device object
ipcon.connect(HOST, PORT) # Connect to brickd
# Don't use device before ipcon is connected
ow.write_command(15348569994255425064L, 78)
ow.write(0) # ALARM H (unused)
ow.write(0) # ALARM L (unused)
ow.write(127) # CONFIGURATION: 12 bit mode
# Read temperature 2 times
for i in range(2):
ow.write_command(15348569994255425064L, 68)
time.sleep(2) # Wait for conversion to finish
ow.write_command(15348569994255425064L, 190)
t_low = ow.read().data
t_high = ow.read().data
temperature2 = ('{:6.2f}'.format((t_low | (t_high << ) / 16.0))
print "Sensor2: %s °C" % temperature2
ipcon.disconnect()
Ausgabe:
(15348569994255425064L, 13114784581154432808L)
Sensor1: 20.25 °C
Sensor1: 20.31 °C
Sensor2: 4095.69 °C
Sensor2: 4095.69 °C
?