Jump to content

Onewire DS18B20 CRC Algorithmus Python


Recommended Posts

Hallo,

ich versuche jetzt schon länger eine CRC Prüfung der DS18B20 umzusetzen. Scheitere aber daran. Mein Code funktioniert zwar aber es ergeben sich meistens die Falschen CRC Werte.

Hat das vielleicht schomal jemand umgesetzt für die DS18B20 Sensoren? Bzw. wie stellt ihr sicher das die richtigen Werte ankommen?

Hier mal ein Codeausschnitt Achtung es wird die lib crc8 benötigt.

hash = crc8.crc8()
string = address # Onewire Modul Adresse in HEX
stringoutput = ''
for q in range(0, -12, -2):
    stringoutput = '/x' + string[-2:] + stringoutput
    string = string[:-2]
print(stringoutput.encode('utf-8'))
hash.update(stringoutput.encode('utf-8'))
print(hash.hexdigest())
print(crc)

Output wäre dann sowas:

b'/x4/x16/x63/x9d/x1e/xff'
24
8c
b'/x4/x16/x62/x4d/x71/xff'
b5
58
b'/x4/x16/x62/x2b/x63/xff'
3e
3e

Es werden 3 Sensoren geprüft jedoch nur beim letzten stimmt auch der CRC zusammen.

Würde mich über jede Hilfe/ Tipps freuen :-)

 

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...