کنترل دما و رطوبت با آردوینو

کنترل دما و رطوبت با آردوینو

آموزش سنسورهای دما و رطوبت DHT11 و DHT22 با استفاده از آردینو

در این آموزش آردینو ما یاد می‌گیریم که چگونه از سنسور DHT11 یا DHT22 برای اکنترل دما و رطوبت با آردوینو استفاده کنیم.

مرور کلی کنترل دما و رطوبت با آردوینو

این سنسورها برای افراد علاقمند به الکترونیک بسیار محبوب هستند زیرا بسیار ارزان هستند اما هنوز هم عملکرد خوبی دارند. در اینجا مشخصات و تفاوت‌های اصلی بین این دو سنسور آورده شده‌است:
DHT22 نسخه گران قیمت‌تری است که به وضوح مشخصات بهتری دارد. محدوده دمایی آن از ۴۰ – تا ۱۲۵ + درجه سلسیوس با دقت ۰.۵ + درجه است، در حالی که محدوده دمایی DHT11 از ۰ تا ۵۰ درجه سلسیوس با دقت ۲ – درجه است. همچنین سنسور DHT22 دارای محدوده اندازه‌گیری رطوبت بهتری، از ۰ تا ۱۰۰ % با دقت ۲ – ۵ % است، در حالی که محدوده رطوبت DHT11 از ۲۰ تا ۸۰ % با دقت ۵ % است.

کنترل دما و رطوبت با آردوینو
کنترل دما و رطوبت با آردوینو

دو ویژگی وجود دارد که در آن DHT11 بهتر از DHT22 است. این نرخ نمونه‌ برداری است که برای DHT11 1 هرتز یا یک خوانش در هر ثانیه است، در حالی که نرخ نمونه‌ برداری DHT22 0.5 هرتز یا یک خوانش در هر دو ثانیه است و همچنین DHT11 اندازه بدنه کوچکتری دارد. ولتاژ کاری هر دو سنسور از ۳ تا ۵ ولت است، در حالی که حداکثر جریان مورد استفاده در اندازه‌گیری ۲.۵ میلی آمپر است.

اصل کار DHT11 /DHT22

خب، حالا ببینیم این سنسورها واقعاً چگونه کار می‌کنند و چگونه کنترل دما و رطوبت با آردوینو انجام میشود. آن ها شامل یک مولفه حسگر رطوبت، یک سنسور دما NTC یا (ترمیستور) ‏و یک IC در پشت سنسور هستند.

02- اصل-کار

برای کنترل دما و رطوبت با آردوینو ، آن‌ها از مولفه حسگر رطوبت استفاده می‌کنند که دارای دو الکترود با زیرلایه نگهداری رطوبت بین آن‌ها است. بنابراین همانطور که رطوبت تغییر می‌کند، رسانایی زیرلایه تغییر می‌کند یا مقاومت بین این الکترودها تغییر می‌کند. این تغییر در مقاومت توسط IC اندازه‌گیری و پردازش می‌شود که آن را برای خواندن با یک میکروکنترلر آماده می‌کند.

03-اصل-کار

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

04-اصل-کار

اصطلاح NTC به معنای “ضریب منفی دما” است، که به این معنی است که مقاومت با افزایش دما کاهش می‌یابد.

طرح کلی مدار

سنسورهای DHTxx چهار پین، VCC، GND، پین داده و یک پین متصل نشده که هیچ کاربردی ندارد، دارند. یک مقاومت کششی از ۵ K تا ۱۰ K اهم برای بالا نگه داشتن خط داده و به منظور فعال کردن ارتباط بین سنسور و برد آردوینو مورد نیاز است. چند نسخه از این سنسورها وجود دارند که با یک برد breakout با مقاومت pull up ساخته شده‌اند و آن‌ها فقط ۳ پین دارند.

05-طرح-کلی-مدار

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

کد منبع

ابتدا باید کتابخانه DHT را که می توان از وب سایت رسمی آردینو پیدا کرد، در نظر بگیریم، سپس شماره پین که سنسور ما به آن متصل است را تعریف کنیم و یک شی DHT ایجاد کنیم. در بخش تنظیم، ما باید ارتباط سریال را آغاز کنیم، زیرا از نمایشگر سریال برای چاپ نتایج استفاده خواهیم کرد. با استفاده از تابع ()read22، داده‌ها را از سنسور خواهیم خواند و مقادیر دما و رطوبت را در متغیرهای t و h قرار خواهیم داد. اگر از سنسور DHT11 استفاده می‌کنید، به تابع()read11 نیاز خواهید داشت. در پایان ما مقادیر دما و رطوبت را بر روی نمایشگر سریال چاپ خواهیم کرد.

/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */
 
#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object
void setup() {
  Serial.begin(9600);
}
void loop() {
  int readData = DHT.read22(dataPin); // Reads the data from the sensor
  float t = DHT.temperature; // Gets the values of the temperature
  float h = DHT.humidity; // Gets the values of the humidity
  
  // Printing the results on the serial monitor
  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("    Humidity = ");
  Serial.print(h);
  Serial.println(" % ");
  
  delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}

پس از اینکه ما این کد را در برد آردوینو آپلود می‌کنیم، نتایج دما و رطوبت حاصل از سنسور را می توان بر روی مانیتور سریال مشاهده کرد.
من همچنین یک مثال می‌زنم که در آن نتایج را بر روی یک LCD نمایش می‌دهم. این کد منبع این مثال است:

/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>
#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;
void setup() {
  lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
  lcd.print("Temp.: "); // Prints string "Temp." on the LCD
  lcd.print(t); // Prints the temperature value from the sensor
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Humi.: ");
  lcd.print(h);
  lcd.print(" %");
  delay(2000);
}

لطفاً هر سؤالی را در قسمت نظرات بپرسید.

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

Share on facebook
Share on linkedin
Share on twitter
Share on email
راه اندازی صفحه لمسی با آردوینو
آموزش الکترونیک

راه اندازی صفحه لمسی با آردوینو

آموزش صفحه لمسی TFT LCD آردوینو در این آموزش آردینو ما چگونگی راه اندازی صفحه لمسی با آردوینو با استفاده از صفحه لمسی TFT LCD

کنترل دما و رطوبت با آردوینو
آموزش الکترونیک

کنترل دما و رطوبت با آردوینو

آموزش سنسورهای دما و رطوبت DHT11 و DHT22 با استفاده از آردینو در این آموزش آردینو ما یاد می‌گیریم که چگونه از سنسور DHT11 یا

راه اندازی ماژول بلوتوث با آردوینو
آموزش الکترونیک

راه اندازی ماژول بلوتوث با آردوینو

آموزش کامل ماژول بلوتوث HC-05 و آردوینو در این آموزش راه اندازی ماژول بلوتوث با آردوینو را یاد می‌گیریم که چگونه از ماژول HC-05 برای

دیدگاه‌ خود را بنویسید

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