ds18x20 --- مشغّل مستشعر الحرارة DS18x20¶
توفر الوحدة ds18x20 مشغّلاً لمستشعرات الحرارة الرقمية أحادية السلك من نوع DS18B20 و DS18S20 و DS1822 من Maxim/Dallas. وهي مبنية فوق الوحدة onewire وتدعم تشارك عدة مستشعرات لناقل واحد.
مثال:
import time
from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20
ds = DS18X20(OneWire(Pin("P7")))
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(rom, ds.read_temp(rom))
الأصناف¶
- class ds18x20.DS18X20(onewire: OneWire)¶
تنشئ مشغّل DS18x20 مرتبطاً بناقل
onewire.OneWireالمعطى. ويمكن لعدة مستشعرات DS18x20 أن تتشارك الناقل نفسه.- scan() list[bytearray]¶
تبحث في ناقل 1-Wire الأساسي وتُرجع قائمة بأكواد ROM التي تقابل أجهزة عائلة DS18x20. تُرجع فقط أكواد ROM التي يكون كود عائلتها
0x10(DS18S20) أو0x22(DS1822) أو0x28(DS18B20)؛ أما أجهزة 1-Wire الأخرى على الناقل نفسه فتُستبعد بالترشيح.
- convert_temp() None¶
تُصدر أمر تحويل درجة الحرارة إلى جميع مستشعرات DS18x20 على الناقل في آن واحد (باستخدام SKIP ROM). بعد استدعاء هذه الطريقة يجب أن تنتظر اكتمال التحويل (حتى 750 مللي ثانية عند الدقة الافتراضية البالغة 12 بت) قبل استدعاء
read_temp().
- read_scratch(rom: bytes | bytearray) bytearray¶
تقرأ لوحة التدوين (scratchpad) المكوّنة من 9 بايت من الجهاز المُعنوَن بـ rom وتُرجعها على شكل
bytearray. يُتحقق من CRC للوحة التدوين؛ وتُطلقExceptionمع الرسالة"CRC error"عند عدم تطابق CRC.ملاحظة
المخزن المؤقت المُرجَع هو المخزن المؤقت الداخلي للمشغّل ويُكتب فوقه عند الاستدعاءات اللاحقة.
- write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None¶
تكتب 3 بايتات إلى لوحة التدوين الخاصة بالجهاز المُعنوَن بـ rom. يجب أن يحتوي buf على قيم عتبة الإنذار العليا (TH) وعتبة الإنذار الدنيا (TL) وسجل الإعداد.
- read_temp(rom: bytes | bytearray) float¶
تقرأ آخر درجة حرارة مُحوَّلة من الجهاز المُعنوَن بـ rom وتُرجعها بالدرجات المئوية على شكل
float. تتعامل مع ترميزات كل من DS18S20 (كود العائلة0x10) و DS18B20 / DS1822 (كودا العائلة0x28/0x22)، بما في ذلك درجات الحرارة السالبة.استدعِ
convert_temp()وانتظر انتهاء التحويل قبل استدعاء هذه الطريقة.