1. صفحه نخست
  2. راهنمای سنسورها
  3. آموزش جامع استفاده از سنسور دما DS18B20 با برد Arduino

آموزش جامع استفاده از سنسور دما DS18B20 با برد Arduino

در این مقاله آموزشی سعی داریم، نحوه استفاده از سنسور دما DS18B20  با برد Arduino uno را آموزش دهیم.در این پست شما نحوه اتصال سنسور DS18B20 به برد آردوینو، نصب کتابخانه های مورد نیاز و دریافت مقدار عددی دما از   سنسور های  DS18B20 به صورت تکی یا چندگانه، را آموزش خواهید دید.

سنسور DS18B20 با برد Arduino
سنسور DS18B20 با برد Arduino

آموزش استفاده از دیگر سنسورهای DS18B20 را در لینک های زیر می توانید مطالعه کنید :

معرفی سنسور دما DS18B20

سنسور دما DS18B20 یک سنسور دما، دیجیتال تک وایر است. تک وایر بودن بدین معنی است که تنها به یک مسیر داده ( و زمین ) برای اتصال به برد آردوینو نیاز دارد.

برای منبع تغدیه این سنسور DS18B20 می توان از یک منبع تغذیه خارجی استفاده کنید یا از طریق یک مسیر دیتا که پارازیت مود (“parasite mode”)  نامیده می شود، بدون استفاده از سنسور دما را شارژ کنید.

سنسور دما DS18B20
سنسور دما DS18B20

در جدول زیر نحوه اتصال سنسور DS18B20 به برد Arduino :

سنسور DS18B20 برد Arduino
پین GND GND
پین DQ هر پین دیجیتال ( مقاومت pull-up با 4.7 اُهم )
پین VDD  به 5 ولت برای حالت نرمال / به زمین برای parasite mode

هر سنسور دما DS18B20 داری کد سریال 64 بیتی است. این ویژگی امکان اتصال به سنسورهای چندگانه را با همان دیتا قبلی ایجاد می کند. بنابراین شما با استفاده از فقط یک پین دیجیتال آردونیو می توانید دما را از سنسورهای چندگانه دریافت کنید.

این سنسور دما DS18B20، دارای ورژن ضد آب نیز می باشد.

سنسور دما DS18B20 ضد آب

خلاصه ای از مهم ترین خصوصیات سنسور دما DS18B20 عبارتند از :

  • سنسور دما  DS18B20، یک سنسور دیجیتال تک سیمه می باشد. به این معنا که برای انتقال اطلاعات به برد آردوینو یا هر میکروکنترلر دیگری تنها به یک سیم( به اضافه سیم زمین GND) نیاز دارد.
  • ولتاژ مناسب برای تغذیه این سنسور دما، 3.0 ولت تا 5.5 ولت است.
  • سنسور DS18B20  قابلیت اندازه گیری بازه دمایی از 55- درجه سلسیوس تا 125+ درجه سلسیوس را دارد.
  • دقت اندازه گیری آن در بازه 0.5+/- درجه سلسیوس ( بازه 10- تا 85 درجه سلسیوس) می باشد.

جهت کسب اطلاعات بیشتر، می تواند دیتاشیت سنسور دما DS18B20 را ملاحظه کنید.

قطعات مورد نیاز

جهت آشنایی بیشتر شما با نحوه عملکرد سنسور دما DS18B20 با برد آردوینو و چگونگی نمایش دما در مانیتور سریال آردوینو،یک مثال کاربردی و ساده را توضیح خواهیم داد. برای شروع این پروژه آموزشی به قطعات زیر نیاز دارید.

  1. برد آردوینو UNO
  2. سنسور دما DS18B20
  3. مقاومت 4.7 کیلو اهم
  4. Breadboard
  5. جامپر وایر

تمامی قطعات الکترونیکی مورد نیاز خود را می توانید در فروشگاه ایوینک تهیه کنید.

مدار شماتیک – سنسور دما DS18B20 به Arduino

سنسور DS18B20 در دو مدل می تواند اجرا شود :

مدل نرمال : با 3 سیم اتصال صورت می گیرد و منبع تغذیه پین VDD است.در شکل زیر نحوه اتصال مدل نرمال را مشاهده می کنید:

مدار سنسور DS18B20 با برد آردوینو- نرمال
مدار سنسور تک سیمه DS18B20 با برد آردوینو- نرمال

مدل پارازیت: در این مدل تنها به دیتا و GND نیاز دارید. منبع تغذیه سنسور دما DS18B20 مسیر دیتا است. در شکل زیر نحوه اتصال مدل نرمال را مشاهده می کنید:

مدار سنسور تک سیمه DS18B20 با برد آردوینو- پارازیت
مدار سنسور تک سیمه DS18B20 با برد آردوینو- پارازیت

شما می توانید دمای بیش از یک سنسور را همزمان تنها از یک پین دیجیتال آردوینو بخوانید.برای این منظور باید همه پین های دیتا، سنسورها را به یک پین دیجیتال آردوینو متصل کنید.

آپلود کد/ سنسور تک سیمه دما DS18B20

برای راه اندازی سنسور دما DS18B20 کتابخانه های زیر را باید از سایت گیت هاب دانلود و نصب کنید. در ادامه آموزش نحوه نصب را به شما خواهیم آموخت :

نصب کتابخانه ها

وارد نرم افزار Arduino IDE شده و پس از به منو Sketch بروید پس از آن به زیر منوی  Include Library سپس به Manage Libraries وارد شوید.

عبارت “OneWire” را سرچ کرده و OneWire library by Paul Stoffregen را نصب کنید.

نصب کتابخانه سنسور تک سیمه DS18B20
نصب کتابخانه سنسور تک سیمه DS18B20

پس از مراحل بالا، عبارت “Dallas” را سرچ کرده و کتابخانه Dallas Temperature library by Miles Burton را نصب کنید.

نصب کتابخانه سنسور تک سیمه DS18B20
نصب کتابخانه سنسور تک سیمه DS18B20

بعد از نصب کتابخانه های ضروری، کد زیر را در برد آردوینو خود آپلود کنید. این مثال آموزشی از مدل طرح شده در کتابخانه Dallas Temperature library است.

روش های متفاوتی برای دریافت دما از سنسورهای DS18B20 وجود دارد. اما اگر شما از سنسور تک سیمه DS18B20  استفاده می کنید، این روش ارائه شده یکی از ساده ترین راه هاست.

سنسور دماDS18B20 -برد آردوینو
سنسور دماDS18B20 -برد آردوینو
نحوه عملکرد کد

با اینکلود کردن کتابخانه های OneWire و DallasTemperature شروع به کار می کند :

سنسور DS18B20 به Pin 4 متصل می شود. باید هر آنچه برای خواندن دما از سنسور نیاز است را ایجاد کنید :

()setup

در ستاپ، مانیتور سریال در بادریت 9600 شروع به کار می کند:

با دستور زیر سنسور دما DS18B20  فعال می شود :

()loop

در این مرحله شما دما را از سنسور مشاهده خواهید کرد. باید قبل از دریافت مقدار واقعی دما، متدی به نام ()requestTemperatures ایجاد کنید :

برای دریافت دما بر حسب درجه سلسیوس، از متد ()getTempCByIndex استفاده کنید :

برای دریافت دما بر حسب درجه فارنهایت، از متد ()getTempFByIndex استفاده کنید:

به دلیل اینکه ما تنها از یک سنسور استفاده می کنیم index ما 0 است. اگر شما از بیش از یک سنسور می خواهید استفاده کنید، از index 0 برای سنسور اول و از index 1 برای سنسور دوم و به همین ترتیب تا آخرین سنسور ادامه دهید.

اگر می خواهید در هر ثانیه دمای جدید از را سنسور DS18B20  بخوانید:

نمایش 

پس از اینکه کد را آپلود کردید. مانیتور سریال Arduino IDE را در بادریت 9600 باز کنید.

اکنون شما ( مطابق شکل زیر ) دما را در هر ثانیه بر حسب درجه سلسیوس و فارنهایت مشاهده خواهید کرد :

مانتیور سریال- سنسور دما n DS18B20
مانتیور سریال- سنسور دما  DS18B20

خواندن دما از سنسورهای چندگانه DS18B20

این سنسور تک سیمه برای اتصال به برد آردوینو تنها به یک پروتکل نیاز دارد و هر سنسور، یک کد سریال  64 بیتی منحصر به فرد دارد. بنابراین دما  از سنسورهای چندگانه، تنها با یک پین دیجیتال برد آردوینو قابل خواندن است.

مدار

برای خواندن دما از سنسورهای چندگانه دما DS18B20، باید همه مسیرهای دیتا را به همدیگر متصل کنید. در شکل زیر این اتصال به صورت مداری شماتیک نشان داده شده است :

اتصال سنسور چندگانه دما ds18b20- برد آردوینو
اتصال سنسور چندگانه دما ds18b20- برد آردوینو

آپلود کد_ سنسور چندگانه DS18B20

شرح کامل کدنویسی، این سنسور به صورت زیر است.(در تمامی سیستم ها بر پین Pin 4 اسکن دما صورت می گیرد).

این مثال بر پایه مدل طرح شده در کتابخانه DallasTemperature library است :

نحوه عملکرد کد

کد با استفاده از چندین متد کارآمد کنترل، سنسورهای چندگانه DS18B20 را در دست می گیرد :

از متد ()getDeviceCount، برای دریافت شماره سنسورهای DS18B20 بر مسیر دیتا,استفاده می شود :

متد ()getAddress، آدرس سنسور ها را پیدا می کند :

نکته ی قابل توجه اینکه آدرس هر سنسور منحصر به فرد است. بنابراین هر سنسور با توجه به آدرسی که دارد، تعریف می شود.

استفاده از متد()getTempC باعث می شود که آدرس دستگاه به عنوان یک آرگومان شناخته شود و دما را از هر سنسور خاص جداگانه دریافت کنید:

برای دریافت دما بر حسب درجه فارنهایت، از()getTemF و به همین ترتیب برای تبدیل دمای سلسیوس به فارنهایت از دستور زیر استفاده کنید :

جمع بندی مطالب فوق 

سنسور دما DS18B20، یک سنسور دیجیتال تک سیمه می باشد. برای استفاده از این سنسور شما به یک سیم و کتابخانه های DallasTemperature libraries نیاز دارید. شما می توایند از سنسور دما DS18B20 یگانه یا چندگانه بر روی خط داده یکسان استفاده کنید. چون یکی از ویژگی های بارز این سنسور قابلیت تعریف هر سنسور توسط آدرس منحصر به فرد خود است.

آموزش صفر تا صد آردوینو را در لینک های زیر ببینید:

آردوینو چیست ؟ آشنایی با آردوینو

اولین قدم آموزش آردوینو

امیدواریم که این آموزش برای شما مفید واقع شده باشد.

برای آموزش های بیشتر و تکمیلی راجع به سنسورها، اینجا کلیک کنید.

در قسمت نظرات ایده ها و مطالب پیشنهادی خود را با ما به اشتراک بگذارید.

آخرین آپدیت در آوریل 12, 2021

آیا این مقاله آموزشی مفید بود ؟

نوشته های مرتبط

لطفا نظر خود را بنویسید، این نظر میتواند تنها یک تشکر باشد.