آیا تا به حال خواسته اید دما و رطوبت اطراف خود را بدانید؟ اگر بله، این پروژه برای شما بسیار مفید خواهد بود. اگر نه، به هر حال جالب خواهد بود. شما میتوانید از این پروژه برای ساخت یک دماسنج و رطوبت سنج مبتنی بر برد آردوینو استفاده کنید.
رطوبت چیست؟
رطوبت بخار آب اطراف شما است که با هوا مخلوط شده است. رطوبت بر حسب درصد اندازه گیری می شود. بنابراین، اگر رطوبت 60 درصد باشد (که میانگین رطوبت است)، 60 درصد هوای اطراف شما بخار آب است. اگر 100% باشد، به این معنی است که یا سنسور درست نیست یا خراب و آسیب دیده است. اگر 0% باشد یعنی یا سنسور خراب است یا شما در وسط بیابان یا کویر هستید! هوای کویر حاوی مقداری آب است اما در مقایسه با یک مکان معمولی مقدار بسیار کمی است. صحرا دارای میانگین رطوبت 25 درصد است.
مدار اتصال DHT11 به آردوینو
تصویر زیر نحوه اتصال سنسور رطوبت DHT11 به برد آردوینو اونو را نشان میدهد.
سنسور DHT11 دارای 4 پایه است. پایه VCC به پایه 3.3 ولت یا 5 ولت آردوینو متصل میشود. پایه GND به GND آردوینو متصل میشود. پایه DATA به 4 آردوینو متصل میشود و پایه NC به هیچ جا متصل نمیشود. از یک مقاومت 4.7 کیلو اهم میتوانید برای پول آپ کردن پایه DATA استفاده کنید.
قطعات مورد نیاز
- برد آردوینو اونو
- سنسور رطوبت DHT11
- مقاومت 4.7 کیلو اهم
کد راه اندازی DHT11 با آردوینو
برنامه نویسی کد آردوینو برای راه اندازی سنسور رطوبت DHT11 بسیار ساده است. در مرحله اول شما باید کتابخانه DHT11 را به آردوینو اضافه کنید. در مرحله بعد کد را آپلود میکنید و سریال مانیتور را باز میکنید. دما و رطوبت در سریال مانیتور چاپ میشود.
در ابتدای کد ما کتابخانه DHT11 را فراخوانی میکنیم. سپس پین متصل به DHT11 را تعیین میکنیم و در نهایت یک آبجکت به نام dht11 ایجاد میکنیم.
#include <dht11.h> #define DHT11PIN 4 dht11 DHT11;
در قسمت void setup ما فقط ارتباط سریال را با نرخ 9600 آغاز میکنیم.
void setup(){ Serial.begin(9600); }
در قسمت void loop موارد خوانده شده از DHT11 را در سریال مانیتور چاپ میکنیم. ابتدا رطوبت را بر حسب درصد و سپس دما را بر حسب سانتی گراد در سریال مانیتور نمایش میدهیم. مقادیر جدید هر 2 ثانیه به سریال مانیتور ارسال میشوند.
void loop() { Serial.println(); int chk = DHT11.read(DHT11PIN); Serial.print("Humidity (%): "); Serial.println((float)DHT11.humidity, 2); Serial.print("Temperature (C): "); Serial.println((float)DHT11.temperature, 2); delay(2000); }
کد کامل:
#include <dht11.h> #define DHT11PIN 4 dht11 DHT11; void setup() { Serial.begin(9600); } void loop() { Serial.println(); int chk = DHT11.read(DHT11PIN); Serial.print("Humidity (%): "); Serial.println((float)DHT11.humidity, 2); Serial.print("Temperature (C): "); Serial.println((float)DHT11.temperature, 2); delay(2000); }