ماژول سنسور دمای دیجیتال DS18B20
سنسور دمای دقیق با رابط OneWire
سنسور دمای دیجیتال DS18B20: اندازهگیری دمای دقیق با سیمکشی ساده و کالیبراسیون داخلی
ماژول سنسور دمای دیجیتال DS18B20 یک حسگر دمای با دقت بالا و کالیبراسیون داخلی است که از پروتکل ارتباطی OneWire استفاده میکند. این سنسور با قابلیت اندازهگیری دما در بازه وسیع و امکان اتصال چندین سنسور بر روی یک سیم، انتخاب ایدهآلی برای سیستمهای نظارت بر دما، اتوماسیون خانگی، پروژههای هواشناسی و کنترل صنعتی میباشد.
ویژگیهای منحصر به فرد DS18B20
-
دقت بالا: دقت ±۰.۵ درجه سانتیگراد در بازه -۱۰°C تا +۸۵°C.
-
رابط ارتباطی ساده: تنها یک سیم داده (به علاوه تغذیه و زمین) با پروتکل OneWire.
-
آدرس سختافزاری منحصر به فرد: هر سنسور دارای کد شناسایی ۶۴ بیتی منحصربهفرد (آدرس ROM).
-
قابلیت اتصال چندتایی: اتصال دهها سنسور بر روی یک پایه میکروکنترلر.
-
محدوده دمایی گسترده: اندازهگیری از -۵۵°C تا +۱۲۵°C.
-
کالیبراسیون کارخانهای: بدون نیاز به کالیبراسیون خارجی.
-
قابلیت تغذیه از خط داده: امکان کار بدون سیم تغذیه جداگانه (Parasite Power Mode).
مشخصات فنی کامل
| پارامتر | مشخصات فنی |
|---|---|
| ولتاژ کاری | ۳.۰ تا ۵.۵ ولت DC (سازگار با ۳.۳V و ۵V) |
| جریان مصرف (فعال) | ۱ میلیآمپر (معمولی) |
| جریان مصرف (اسلیپ) | ۷۵۰ نانوآمپر |
| محدوده دمایی | -۵۵°C تا +۱۲۵°C (-۶۷°F تا +۲۵۷°F) |
| دقت | ±۰.۵°C (-۱۰°C تا +۸۵°C) |
| رزولوشن | قابل تنظیم: ۹ تا ۱۲ بیت (پیشفرض: ۱۲ بیت = ۰.۰۶۲۵°C) |
| زمان تبدیل | ۷۵ms تا ۷۵۰ms (بسته به رزولوشن) |
| رابط ارتباطی | پروتکل OneWire (تک سیم) |
| آدرس سختافزاری | کد ۶۴ بیتی منحصربهفرد (حاوی کد خانواده، شماره سریال، CRC) |
| بستهبندی رایج | TO-92 (شبیه ترانزیستور)، آببندی شده، کابلدار |
| طول کابل ماکزیمم | تا ۵۰ متر (با سیم مناسب) |
انواع ماژولهای موجود
| نوع | تصویر | ویژگیها | کاربرد |
|---|---|---|---|
| خام (TO-92) | سنسور سه پایه | نیاز به مقاومت Pull-up خارجی (۴.۷kΩ) | نصب روی برد، محیط خشک |
| ماژول برد کوچک | برد با مقاومت و LED | مقاومت Pull-up نصبشده، الایدی نشانگر | آزمایشگاه، پروژههای سریع |
| آببندی شده (Waterproof) | سنسور در غلاف فولادی | ضد آب (IP67)، کابل ۱ متری | محیط مرطوب، خاک، مایعات |
| خانگی (DHT مقایسه) | – | در مقابل DHT22: فقط دما، دقت بالاتر، سریعتر | – |
پینهای سنسور (TO-92)
-
پین ۱ (GND): زمین (Ground)
-
پین ۲ (DQ/VDD): داده/تغذیه (Data Line / Power)
-
پین ۳ (VDD): تغذیه مثبت (در حالت تغذیه عادی)
نکته: در حالت تغذیه انگل (Parasite Mode)، پین ۳ به GND وصل شده و سنسور از خط داده تغذیه میشود.
اتصال به آردوینو (حالت عادی)
// اتصال ساده یک سنسور // پایه DQ سنسور -> پین دیجیتال آردوینو (مثلاً D2) // مقاومت 4.7kΩ بین پایه DQ و VCC (5V) // VCC سنسور -> 5V // GND سنسور -> GND
کتابخانه و کد نمونه: خواندن دمای یک سنسور
// کتابخانه OneWire و DallasTemperature - نصب از Library Manager #include <OneWire.h> #include <DallasTemperature.h> // پین متصل به سنسور const int ONE_WIRE_BUS = 2; // تنظیم شیء OneWire و DallasTemperature OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(9600); Serial.println("آمادهسازی سنسور دمای DS18B20..."); sensors.begin(); // شروع ارتباط با سنسور } void loop() { // درخواست تبدیل دما از تمام سنسورهای روی خط sensors.requestTemperatures(); // خواندن دمای سنسور با اندیس ۰ (اولین سنسور روی خط) float tempC = sensors.getTempCByIndex(0); // بررسی خطا (مقدار -127 نشانه خطاست) if (tempC != DEVICE_DISCONNECTED_C) { Serial.print("دمای سنسور ۱: "); Serial.print(tempC); Serial.println(" °C"); // تبدیل به فارنهایت در صورت نیاز float tempF = sensors.getTempFByIndex(0); Serial.print("دمای سنسور ۱: "); Serial.print(tempF); Serial.println(" °F"); } else { Serial.println("خطا در خواندن سنسور!"); } delay(2000); // تاخیر ۲ ثانیه }
کد پیشرفته: مدیریت چندین سنسور
#include <OneWire.h> #include <DallasTemperature.h> const int ONE_WIRE_BUS = 2; OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); // آرایه برای ذخیره آدرس سنسورها DeviceAddress sensorAddresses[10]; int sensorCount = 0; void setup() { Serial.begin(9600); sensors.begin(); // پیدا کردن تمام سنسورهای متصل sensorCount = sensors.getDeviceCount(); Serial.print("تعداد سنسورهای یافت شده: "); Serial.println(sensorCount); // دریافت آدرس هر سنسور for (int i = 0; i < sensorCount; i++) { if (sensors.getAddress(sensorAddresses[i], i)) { Serial.print("سنسور "); Serial.print(i); Serial.print(" - آدرس: "); printAddress(sensorAddresses[i]); } } } void loop() { sensors.requestTemperatures(); for (int i = 0; i < sensorCount; i++) { float tempC = sensors.getTempC(sensorAddresses[i]); Serial.print("سنسور "); Serial.print(i); Serial.print(": "); Serial.print(tempC); Serial.println(" °C"); } Serial.println("-------------------"); delay(5000); } // تابع برای نمایش آدرس سنسور void printAddress(DeviceAddress deviceAddress) { for (uint8_t i = 0; i < 8; i++) { if (deviceAddress[i] < 16) Serial.print("0"); Serial.print(deviceAddress[i], HEX); if (i < 7) Serial.print(":"); } Serial.println(); }
کاربردهای اصلی
-
سیستمهای HVAC: کنترل دمای اتاق، ترموستات هوشمند.
-
اتوماسیون گلخانه: نظارت بر دمای خاک و هوا.
-
بررسی دمای کامپیوتر/سرور: مانیتورینگ دمای CPU و محیط.
-
صنایع غذایی: کنترل دمای یخچال، فریزر، انبار.
-
آکواریوم و هیدروپونیک: کنترل دمای آب.
-
پروژههای هواشناسی: ایستگاه هواشناسی خانگی.
-
سیستمهای امنیتی: تشخیص حرارت و آتش.
مقایسه با سایر سنسورهای دما
| سنسور | DS18B20 | DHT22 | LM35 | TMP36 |
|---|---|---|---|---|
| نوع | دیجیتال | دیجیتال (دما+رطوبت) | آنالوگ | آنالوگ |
| دقت | ±۰.۵°C | ±۰.۵°C | ±۰.۵°C | ±۲°C |
| محدوده | -۵۵°C تا +۱۲۵°C | -۴۰°C تا +۸۰°C | -۵۵°C تا +۱۵۰°C | -۴۰°C تا +۱۲۵°C |
| خروجی | دیجیتال (OneWire) | دیجیتال | آنالوگ (۱۰mV/°C) | آنالوگ (۱۰mV/°C) |
| سیمکشی | تک سیم (چند سنسور) | تک سیم | سه سیم | سه سیم |
| هزینه | متوسط | متوسط | کم | کم |
نکات طلایی برای استفاده بهینه
⚠️ مقاومت Pull-up: حتماً از مقاومت ۴.۷kΩ بین خط داده و VCC استفاده کنید (در ماژولهای آماده معمولاً وجود دارد).
🔧 طول کابل: برای فواصل بیش از ۱۰ متر از سیمهای با کیفیت و شیلددار استفاده کنید.
🌡️ رزولوشن: برای کاربردهای سریع، رزولوشن را روی ۹ یا ۱۰ بیت تنظیم کنید. برای دقت بالا از ۱۲ بیت استفاده کنید.
🔌 تغذیه انگل: در این حالت سنسور هنگام تبدیل دما جریان بیشتری میکشد. برای سیستمهای با چند سنسور، از تغذیه جداگانه استفاده کنید.
💧 سنسور آببندی: برای اندازهگیری دمای مایعات از نوع آببندی شده استفاده کنید. نوع TO-92 را مستقیماً در آب قرار ندهید.
پروژه عملی: ترموستات هوشمند با نمایشگر
قطعات:
-
آردوینو نانو
-
سنسور DS18B20 آببندی شده
-
نمایشگر LCD 16×2 با رابط I2C
-
رله ۱ کاناله
-
هیتر کوچک یا فن
-
پتانسیومتر برای تنظیم Setpoint
نحوه کار: سنسور دما را میخواند، روی LCD نمایش میدهد. اگر دما از حد تنظیمشده کمتر باشد، هیتر را روشن میکند. اگر بیشتر باشد، فن را روشن میکند.
سوالات متداول (FAQ)
✅ حداکثر تعداد سنسور روی یک سیم چقدر است؟
از نظر تئوری تا ۱۲۸ سنسور اما در عمل به دلیل محدودیتهای زمانی و مسافت، تا ۲۰-۳۰ سنسور قابل اطمینان است.
✅ چگونه آدرس سنسور را پیدا کنم؟
از کد “مثال چند سنسور” بالا استفاده کنید. آدرس هر سنسور در سریال مانیتور نمایش داده میشود.
✅ سنسور مقدار -۱۲۷ درجه نشان میدهد، چرا؟
۱. سیمکشی اشتباه. ۲. مقاومت Pull-up وجود ندارد. ۳. سنسور خراب است. ۴. فاصله سیم زیاد است.
✅ تفاوت DS18B20 با DS18S20 چیست؟
DS18B20 دقت بالاتر، رزولوشن قابل تنظیم و محدوده دمایی وسیعتر دارد. DS18S20 قدیمیتر و محدودتر است.
✅ آیا میتوانم سنسور را روی برد بورد نصب کنم؟
بله، نوع TO-92 به راحتی روی برد بورد نصب میشود. نوع آببندی شده را باید با سیم به برد متصل کنید.
✅ عمر سنسور چقدر است؟
در شرایط نرمال ۱۰+ سال. سنسورهای آببندی شده در محیطهای خورنده ممکن است عمر کمتری داشته باشند.
✅ چرا از سهسیم استفاده میکند درحالی که OneWire است؟
دو سیم برای تغذیه (VCC و GND) و یک سیم برای داده (DQ). در حالت تغذیه انگل، فقط دو سیم (DQ و GND) کافی است.
چرا سنسور DS18B20 را از ما بخرید؟
✅ کیفیت ساخت: استفاده از سنسور اصلی Maxim Integrated.
✅ آببندی واقعی: سنسورهای آببندی شده با کابل سیلیکونی و اتصال ضد آب.
✅ تست کالیبراسیون: تست دقت در دمای ۰°C و ۱۰۰°C با استاندارد مرجع.
✅ پشتیبانی فنی: ارائه کدهای نمونه، کتابخانه فارسی و راهنمای عیبیابی.
پکیج پیشنهادی برای شروع
-
سنسور دمای DS18B20 آببندی شده (کابل ۱ متری)
-
سنسور دمای DS18B20 نوع TO-92 (برای آزمایش)
-
مقاومت ۴.۷kΩ (۵ عدد)
-
برد آردوینو نانو با کابل USB
-
سیمهای جامپر نری-مادگی (۱۰ عدد)
نحوه انتخاب نوع سنسور
-
اندازهگیری هوای اتاق: نوع TO-92 یا ماژول برد کوچک.
-
اندازهگیری آب، خاک، محیط مرطوب: حتماً نوع آببندی شده.
-
پروژه صنعتی: نوع آببندی شده با غلاف فولادی ضدزنگ.
-
آزمایش سریع: ماژول آماده با مقاومت نصبشده.









ترانزیستورها
خازنها
دیودها
رگولاتورها
مقاومتها
کریستال و اسیلاتور
مدارات مجتمع
ابزارها
تجهیزات
تجهیزات لحیمکاری
مولتیمتر و ابزار اندازهگیری
منبع تغذیه و باتری
تستر