سنسور دما

سنسور دما

سنسورهای حرارتی ابزارهایی هستند که برای اندازه‌گیری دما استفاده می‌شوند و انواع مختلفی دارند. در زیر به چند نوع رایج سنسور حرارتی اشاره می‌شود:

1. ترمیستورها (Thermistors)

  • نوع: مقاومت متغیر با دما (NTC و PTC)
  • کاربرد: برای اندازه‌گیری دماهای محدوده پایین تا متوسط، مانند دماهای محیطی و دماهای بدن.
  • ویژگی‌ها: حساسیت بالا نسبت به تغییرات دما، اما معمولاً محدوده دما بسیار محدودی دارند.

2. سنسورهای مقاومت حرارتی (RTDs)

  • نوع: از فلزات (معمولاً پلاتین) برای اندازه‌گیری دما استفاده می‌شود.
  • کاربرد: در کاربردهای صنعتی و آزمایشگاهی برای اندازه‌گیری دما با دقت بالا.
  • ویژگی‌ها: دقت بالا، پایداری و خطی بودن خوب، اما قیمت بالاتری نسبت به ترمیستورها دارند.

3. دماسنج‌های بیرونی (Thermocouples)

  • نوع: تشکیل شده از دو فلز مختلف که در یک نقطه متصل شده‌اند.
  • کاربرد: در دماهای بسیار بالا یا محیط‌های صنعتی. به طور عمومی در صنایع شیمیایی و نفت و گاز استفاده می‌شوند.
  • ویژگی‌ها: محدوده دمای وسیع، پاسخ سریع، اما دقت کمتری نسبت به RTDها دارند.

4. سنسورهای مادون قرمز (Infrared Sensors)

  • نوع: اندازه‌گیری دما بدون تماس با جسم.
  • کاربرد: در اندازه‌گیری دماهای اجسام بدون نیاز به تماس، مانند در پزشکی، خودروسازی، و کنترل صنعتی.
  • ویژگی‌ها: به سرعت دما را اندازه‌گیری می‌کند و محدودیتی در شرایط محیطی ندارد، اما ممکن است تحت تأثیر شرایط محیطی قرار گیرد.

5. سنسورهای دیجیتال

  • نوع: سنسورهایی مانند DS18B20 که می‌توانند دما را به صورت دیجیتال ارائه دهند.
  • کاربرد: در پروژه‌های الکترونیکی و سیستم‌های کنترل حرارتی.
  • ویژگی‌ها: دارای دقت بالا و قابلیت اتصال به میکروکنترلرها هستند.

6. سنسورهای حرارتی خطی (Linear Temperature Sensors)

  • نوع: سنسورهایی که خروجی آن‌ها خطی با دما است.
  • کاربرد: معمولاً در تنظیمات خودکار دما و کنترل‌ها.
  • ویژگی‌ها: قادر به ارائه خروجی خطی و دقیق هستند.

ویژگی‌ها و مشخصات DHT11

DHT11 یک سنسور دیجیتال است که برای اندازه‌گیری دما و رطوبت محیط مورد استفاده

  1. عملکرد:
    • سنسور DHT11 دما را در محدوده 0 تا 50 درجه سانتی‌گراد و رطوبت را در محدوده 20 تا 80 درصد اندازه‌گیری می‌کند.
    • دقت سنجش دما حدود ±2 درجه سانتی‌گراد و دقت سنجش رطوبت حدود ±5 درصد است.
  2. سیگنال خروجی:
    • این سنسور سیگنال خروجی دیجیتال دارد که به راحتی می‌توان آن را خواند.
    • ارتباط آن با میکروکنترلرها (مانند آردوینو و Raspberry Pi) از طریق یک خط داده (single data line) انجام می‌شود.
  3. ولتاژ تغذیه:
    • ولتاژ کار DHT11 معمولاً بین 3.3 تا 5 ولت است، بنابراین می‌تواند به راحتی با اکثر میکروکنترلرها کار کند.
  4. نصب و راه‌اندازی:
    • نصب DHT11 بسیار ساده است و فقط نیاز به اتصال 3 پین دارد: VCC (منبع تغذیه)، GND (کشور)، و DATA (خط داده).
  5. کاربرد:
    • معمولاً در پروژه‌های خانگی، سیستم‌های HVAC (گرمایش، تهویه و تهویه مطبوع)، ایستگاه‌های هواشناسی، و در سایر پروژه‌های مرتبط با کنترل دما و رطوبت استفاده می‌شود.

کد نمونه برای آردوینو

در زیر یک کد نمونه برای خواندن داده‌ها از سنسور DHT11 با استفاده از آردوینو آورده شده است:

#include <DHT.h>  
#include <LiquidCrystal_I2C.h>  

// Define the pin for DHT22  
#define DHTPIN 2  
#define DHTTYPE DHT22  

DHT dht(DHTPIN, DHTTYPE);  
LiquidCrystal_I2C lcd(0x27, 16, 2);  // Adjust the address if needed  

void setup() {  
    lcd.begin();  
    dht.begin();  
    lcd.backlight();  
}  

void loop() {  
    float humidity = dht.readHumidity();  
    float temperature = dht.readTemperature(); // Celsius  

    // Check if reading failed and exit early  
    if (isnan(humidity) || isnan(temperature)) {  
        lcd.clear();  
        lcd.print("Failed to read");  
        return;  
    }  

    // Display results on the LCD  
    lcd.clear();  
    lcd.setCursor(0, 0);  
    lcd.print("Temp: ");  
    lcd.print(temperature);  
    lcd.print(" C");  

    lcd.setCursor(0, 1);  
    lcd.print("Humidity: ");  
    lcd.print(humidity);  
    lcd.print(" %");  

    delay(2000);  // Wait a few seconds between measurements  
}

ویژگی‌ها و مشخصات DS18B20

  1. محدوده دما:
    • DS18B20 می‌تواند دما را در محدوده -55 تا +125 درجه سانتی‌گراد اندازه‌گیری کند.
    • دقت اندازه‌گیری دما حدود ±0.5 درجه سانتی‌گراد در محدوده 0 تا 70 درجه سانتی‌گراد است.
  2. خروجی دیجیتال:
    • این سنسور از یک پروتکل دیجیتال برای ارسال اطلاعات دما استفاده می‌کند، که آن را از سنسورهای آنالوگ متمایز می‌کند.
    • قابلیت خواندن دما به صورت 9 تا 12 بیت با وضوح متغیر را دارد.
  3. اتصال به میکروکنترلر:
    • DS18B20 به صورت یک خطی (1-Wire) به میکروکنترلر متصل می‌شود، به این معنی که تنها به یک پین برای ارتباط نیاز دارد.
    • این ویژگی باعث می‌شود که چندین DS18B20 را در یک خط مشترک به صورت سری to متصل کنید.
  4. ولتاژ تغذیه:
    • سنسور DS18B20 معمولاً در ولتاژهای 3.0 تا 5.5 ولت کار می‌کند.
  5. نوع بسته‌بندی:
    • این سنسور به صورت TO-92 (شبیه ترانزیستور) و همچنین در قالب‌های چسبیده و ضد آب (برای کاربرد در محیط‌های مرطوب) موجود است.

کاربردها

  • پروژه‌های خانگی: برای نظارت دما در محیط‌های مختلف.
  • سیستم‌های کنترل دما: در سیستم‌های گرمایش زمین، کولرها و HVAC.
  • ایستگاه‌های هواشناسی: برای اندازه‌گیری دمای هوای محیط.
  • پروژه‌های صنعتی: در کاربردهایی که نیاز به دقت بالا در اندازه‌گیری دما است.

نمونه کد برای آردوینو

در زیر یک کد نمونه برای خواندن داده‌ها از سنسور DS18B20 با استفاده از آردوینو آورده شده است. برای این کار، باید از کتابخانه OneWire و DallasTemperature استفاده کنید.




#include <OneWire.h>  
#include <DallasTemperature.h>  
#include <LiquidCrystal_I2C.h>  

// پین مربوط به سنسور را تعریف کنید  
#define ONE_WIRE_BUS 2  

// راه‌اندازی آبجکت‌های مربوط به OneWire و DallasTemperature  
OneWire oneWire(ONE_WIRE_BUS);  
DallasTemperature sensors(&oneWire);  

// راه‌اندازی آبجکت LCD  
LiquidCrystal_I2C lcd(0x27, 16, 2);  // آدرس I2C ممکن است متفاوت باشد  

void setup() {  
    Serial.begin(9600); // شروع ارتباط سریال  
    sensors.begin();     // شروع سنسور  
    lcd.begin();        // راه‌اندازی LCD  
    lcd.backlight();    // روشن کردن پس‌زمینه LCD  
}  

void loop() {  
    sensors.requestTemperatures(); // درخواست دما از سنسور  
    float temperature = sensors.getTempCByIndex(0); // دما را به درجه سانتیگراد بگیرید  

    // نمایش دما روی LCD  
    lcd.clear(); // پاک کردن صفحه نمایش  
    lcd.setCursor(0, 0); // تنظیم مکان نشانگر  
    lcd.print("Dema: ");  // متن ثابت  
    lcd.print(temperature); // نمایش دما  
    lcd.print(" C");       // واحد دما  

    // نمایش دما در Serial Monitor  
    Serial.print("Temperature: ");  
    Serial.print(temperature);  
    Serial.println(" °C");  

    delay(2000); // تاخیر 2 ثانیه ای بین قرائت ها  
}

Comments

No comments yet. Why don’t you start the discussion?

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *