مناسب ترین سنسور دما را برای پروژه آردوینوی خود انتخاب کنید. قسمت اول

در تاریخ سه شنبه, 13 مرداد 1394. در دسته آموزش

معرفی سنسور DS18B20

آیا می خواهید مناسب ترین سنسور دما را برای پروژه ی خود انتخاب کنید؟ انتخاب یک سنسور مناسب نیازمند بررسی کامل سنسورها و مقایسه ی آن هاست. با ما همراه شوید تا به بررسی کامل سنسورهای دما پرداخته و به این ترتیب سنسور مورد نیاز خود را انتخاب نمایید.

برای اندازه گیری دما در یک محیط از سنسورهای دما استفاده می شود. نحوه ی عملکرد اغلب این سنسورها مشابه یکدیگر بوده اما دارای مشخصه ها و ویژگی های متفاوتی هستند.
با توجه به ویژگی ها و خصیصه های هر یک از سنسورها می توانید مناسب ترین سنسور را برای پروژه ی آردوینو خود انتخاب کنید.
سنسورهای دمایی که در این بخش از وبلاگ به معرفی آن ها پرداخته ایم به طور کامل می تواند جوابگوی نیاز های شما در انواع پروژه های آردوینو باشد.

weblog 940517 temp sensor1

 

کاربردها:

انتخاب هر سنسور با توجه به کاربرد آن به نوع پروژه ای که مایل به انجام آن هستید بستگی دارد. بنابراین برخی کاربردهای سنسورهای دما در زیر آورده شده است.
ربات هایی که در هنگام آتش سوزی می بایست منبع آتش را تشخیص داده و واکنش صحیح نشان دهند.
ربات هایی که باید دما را شناسایی و مانیتور کرده و داده ها را با استفاده از وای فای یا بلوتوث به سرور مرکزی مخابره کنند.
سیستم گرمایشی و سرمایشی برای کنترل دما در خانه ها
سیستم آلارمی که حضور انسان را در یک مکان تشخیص دهد

سنسورهای دما:

در این قسمت به طور دقیق به بررسی سنسورهای مختلف از لحاظ ویژگی، قیمت، نحوه ی ارتباط با سنسور و کاربرد هر یک خواهیم پرداخت.

weblog 940517 temp sensor2

سنسور DS18B20

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


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


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

weblog 940517 temp sensor3

سنسور DS18B20 دارای سه پایه می باشد. پایه یک آن باید به زمین مدار و پایه سوم آن نیز به ولتاژ +5V وصل شود. هرچند این سنسور می تواند ولتاژ مثبت خود را از پایه سیگنال نیز تامین کند. بنابراین می توان سیم بندی را به دو صورت انجام داد که پیشنهاد ما به صورت زیر است.
هر دو پایه GND و VDD را به زمین مدار وصل کرده و پایه سیگنال را به یکی از پین های دیجیتال آردوینو برای مثال پین دوم آردوینو وصل نمایید. همچنین یک مقاومت 47k را برای پول آپ کردن پایه سیگنال سنسور با این پایه سری کنید.

weblog 940517 temp sensor4

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

 


#include  < OneWire.h>
#include < DallasTemperature.h>
 
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  // Start up the library
  sensors.begin();
}
 
 
void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? 
    // You can have more than one IC on the same bus. 
    // 0 refers to the first IC on the wire
 
}
 

شماره تماس: ۵۹ ۸۳ ۰۲ ۸۸ ۰۲۱

info@caferobot.ir

ایران | تهران

ما را در شبکه های اجتماعی دنبال کنید

ورود

ثبت