- ابزارآلات و آهنربا
-
ابزارآلات
- ابزار اندازه گیری (مولتیمتر، کولیس و . . .)
- ابزار سوراخکاری (مته، سه نظام، چهار نظام، پنج نظام و . . .)
- ابزار و تجهیزات کار (پیچ گوشتی، انبردست، سیمچین، پنس و . . .)
- برد بورد، فیبر خام و سوراخدار (فیبر مدار چاپی و PCB)
- پیچ و اسپیسر (پیچ و مهره رباتیک و اسپیسر پلاستیکی و فلزی)
- سیم و کابل (سیم افشان، فلت، باندی، کابل شارژ، پرینتر، و . . .)
- لحیمکاری (هویه، نوک هویه، پایه هویه، سیم لحیم، روغن لحیم و . . . )
- منبع تغذیه، باتری و جاباتری (باتری قلمی، نیم قلمی، کتابی و . . . )
-
ابزارآلات
- برد هوشمند
- پرینتر سه بعدی
- رباتیک و پروازی
- ماژول
- قطعات الکترونیک
- کیت الکترونیکی و انواع جعبه
- موتور
- اصناف مختلف
راه اندازی سنسور دما و رطوبت DHT11 با آردوینو

در این پروژه میخواهیم به شما نحوه راه اندازی سنسور دما و رطوبت DHT11 با آردوینو را آموزش دهیم و بگوییم چگونه اطلاعات به دست آمده را در نمایشگر LCD مشاهده کنید؛ پس با بلاگ بهنام رباتیک همراه باشید.
فهرست مطالب
لوازم جانبی مورد نیاز برای پروژه راه اندازی سنسور دما و رطوبت DHT11 با آردوینو
سنسور DHT11 چیست؟
DHT11 یک سنسور تشخیص رطوبت و دمای محیط است که دادههای به دست آمده را از طریق پین دیتا به میکروکنترلر ارسال میکند. این حسگر سه پین دارد که عبارتند از: منبع تغذیه (VCC)، اتصال به زمین (GND) و دیتا. این سنسور با ولتاژ 3 تا 5.5 ولت کار میکند و میتواند رطوبت را در بازه 20 تا 90 درصد با خطا 5 درصد محاسبه کند. همچنین، دمای قابل اندازهگیری توسط DHT11 نیز بین 0 تا 50 درجه با خطای 2 درجه میباشد.
سیمکشی مدار پروژه راه اندازی سنسور دما و رطوبت DHT11 با آردوینو
در تصویر زیر نحوه سیمکشی مدار این پروژه نشان داده شده است. در واقع در اینجا پین دیجیتالی شماره 7 آردوینو به پین دیتا DHT11 وصل و پینهای 2، 3، 4، 5، 11 و 12 آردوینو نیز به نمایشگر 2×16 زده شده است. منبع تغذیه به کار رفته هم +5 ولت میباشد. ضمناً، توجه کنید که LCD، آردوینو و DHT11 باید پین اتصال به زمین (GND) مشترکی داشته باشند. لازم به ذکر است که به پینهای VCC، VSS و اتصال به زمین (GND) نمایشگر LCD یک پتانسیومتر 10 کیلو اهم متصل شده است.

کدنویسی پروژه راه اندازی سنسور دما و رطوبت DHT11 با آردوینو
کدی که در ادامه آمده، برای نمایش مقادیر مربوط به میزان رطوبت و دمای کسب شده از سنسور DHT11 روی LCD میباشد.
#include
#include //include the DHT library
#define DHTTYPE DHT11 // define dhttype as dht11
#define DHTPIN 7 // Name dhtPin as pin 7
// initialize the LCD library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor
void setup () {
dht.begin();
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("DHT11");
lcd.setCursor(0, 1);
lcd.print("Humidity/Temp.");
}
void loop() {
delay(2000); // Wait two seconds between measurements
float H = dht.readHumidity(); //Read Humidity
float T = dht.readTemperature(); // Read temperature as Celsius
// Check if any reads failed and if exit
if (isnan(H) || isnan(T)) {
lcd.print("Failed to read from DHT sensor!");
return;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humidity:");
lcd.print(H);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp.:");
lcd.print(T);
lcd.print((char)223);
lcd.print("C");
}
توضیحات کد پروژه راه اندازی سنسور دما و رطوبت DHT11 با آردوینو
در کدهایی که ارائه کردیم، دو کتابخانه LiquidCrystal و DHT وجود دارند. کتابخانه اول به صورت پیشفرض در نرمافزار Arduino IDE نصب است اما کتابخانه دوم را باید به صورت دستی نصب کرد. عناوین فایلهای این دو کتابخانه در کدهای بالا قابل مشاهده هستند؛ LiquidCrystal.h و DHT.h.
به منظور استفاده از امکانات کتابخانه DHT، باید مشخص کنیم که در حال استفاده از کدام مدل سنسورهای DHT هستیم. کتابخانهای که ما نصب کردهایم، از مدلهای DHT11، DHT21 و DHT22 پشتیبانی میکند. به همین خاطر برای اینکه به برد بگوییم داریم از DHT11 بهره میبریم، باید عبارت DHTType DHT11 را به کار بگیریم.
سپس باید مشخص کنیم که کدام پین میکروکنترلر باید به پین دیتا سنسور وصل شود. همانطور که در تصویر مربوط به سیمکشی میبینیم، باید از پین شماره 7 استفاده نماییم. این کار با عبارت DHTPIN 7 انجام میگردد.
در ادامه از توابع LiquidCrystal lcd() و dht() استفاده شده تا کتابخانههای مربوط به هر کدام مشخص و پینهای به کار رفته برای آنها تعیین گردد.
در تابع function() و به منظور شروع پروژه و استفاده از سنسور DHT11، از تابع dht.begin() و برای بهرهگیری از نمایشگر LCD، از تابع lcd.begin.() سود میبریم که در اینجا میبایست شماره ستونهای (16) و شماره ردیفهای (2) مشخص گردند.
در مرحله بعد، تابع print() را به کار میگیریم تا عبارت DHT11 در LCD نمایش داده شود. به علاوه، تابع setCursur(0,1) هم عبارت Humidity یا Temp را پس از آن و در خط دوم LCD قرار میدهد.
در قسمت Loop و در تابع loop()، ابتدا تابع function() را به کار میگیریم تا به مدت 2 ثانیه منتظر سنسور DHT و LCD بمانیم تا شروع به کار کنند. سپس از ویژگیهای readHumidity() و readTemperature() سنسور DHT11 استفاده میکنیم تا به ترتیب دادههای مربوط به رطوبت و دما به دست بیاید و با متغیر H و T ذخیره شوند.
در ادامه جمله شرطی قرار گرفته تا بگوید که آیا دادههای به دست آمده از سنسور معتبر هستند یا خیر. چنانچه دادههای دمایی معتبر نیستند، یک پیام خطا نمایش داده خواهد شد در غیر این صورت اطلاعات درست روی LCD پخش میگردد.
سلام من موقع اجرا ارور زیر رو دریافت میکنم. ممنون میشم راهنمایی فرمایید
Sketch uses 4416 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 155 bytes (7%) of dynamic memory, leaving 1893 bytes for local variables. Maximum is 2048 bytes.
سلام
میتونین توی ایتا و تلگرام پیام بدین و از اروری ک دریافت کردید عکس بفرستید تا بیشتر راهنماییتون کنیم