onewire — 1-Wire veri yolu protokolü#

onewire modülü, DS18x20 sıcaklık sensörü gibi cihazlar tarafından kullanılan 1-Wire veri yolu yönetici (master) protokolünü uygular. Paylaşılan veri yolundaki bir veya daha fazla bağımlı (slave) cihazla iletişim kurmak için açık-drenaj olarak yapılandırılmış tek bir machine.Pin kullanır.

Örnek:

from machine import Pin
from onewire import OneWire

ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
    print(rom)

Sınıflar#

class onewire.OneWire(pin: machine.Pin)#

Verilen machine.Pin üzerinde bir 1-Wire veri yolu yöneticisi oluşturur. Pin, otomatik olarak yukarı çekme dirençli açık-drenaj olarak yapılandırılır.

ROM komut sabitleri:

SEARCH_ROM: int#

Search ROM komutu (0xF0). Veri yolundaki cihazları keşfetmek için scan() tarafından dahili olarak kullanılır.

MATCH_ROM: int#

Match ROM komutu (0x55). Belirli bir cihazı 64-bit ROM koduyla adreslemek için select_rom() tarafından dahili olarak kullanılır.

SKIP_ROM: int#

Skip ROM komutu (0xCC). ROM eşleştirmesini atlayarak veri yolundaki tüm cihazları aynı anda adresler.

Veri yolu sıfırlama:

reset(required: bool = False) bool#

Veri yolunda bir sıfırlama darbesi gönderir. En az bir bağımlı cihaz bir varlık darbesiyle yanıt verirse True, aksi takdirde False döndürür. required True ise ve hiçbir cihaz yanıt vermezse OneWireError yükseltir.

Bit/bayt G/Ç:

readbit() int#

Veri yolundan tek bir bit okur ve 0 veya 1 olarak döndürür.

readbyte() int#

Veri yolundan tek bir bayt okur ve bir tamsayı olarak döndürür (0–255).

readinto(buf: bytearray) None#

Veri yolundan len(buf) bayt okur ve verilen önceden ayrılmış arabelleğe yazar.

writebit(value: int) None#

Veri yoluna tek bir bit (0 veya 1) yazar.

writebyte(value: int) None#

Veri yoluna tek bir bayt (0–255) yazar.

write(buf: bytes | bytearray) None#

buf içindeki baytları veri yoluna yazar.

Cihaz adresleme:

select_rom(rom: bytes | bytearray) None#

64-bit ROM kodu rom (8 baytlık bir arabellek) içinde bulunan cihazı adreslemek için bir sıfırlama ardından bir MATCH ROM komutu gönderir.

scan() list[bytearray]#

Veri yolunu arar ve 8 baytlık ROM kodlarının bir listesini döndürür (tespit edilen her cihaz için bir bytearray). Hiçbir cihaz yoksa boş bir liste döndürür.

Döngüsel artıklık denetimi (CRC):

crc8(data: bytes | bytearray) int#

data üzerinden Maxim/Dallas 8-bit CRC değerini hesaplar. data zaten geçerli bir sondaki CRC baytı içeriyorsa sonuç 0 olur; bu da alınan scratchpad içeriğini doğrulamak için kullanılabilir.

İstisnalar#

exception onewire.OneWireError#

Bir 1-Wire işlemi başarısız olduğunda yükseltilir. Şu anda, required True olduğunda ve hiçbir bağımlı cihaz sıfırlama darbesine yanıt vermediğinde OneWire.reset() tarafından yükseltilir.