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

الکترونیک و رباتیک -> برد های توسعه 1638 3 کاربر آکادمی پارتینه

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

مواد اولیه :
# عنوان تعداد لینک
0 برد بورد 1 لینک خرید
1 ماژول دما و رطوبت DHT11 1 لینک خرید
2 سیم جامپر 1 لینک خرید
3 برد آردوینو 1 لینک خرید

مرحله 1 : اتصالات و دیاگرام مداری

مطابق با دیاگرام، ماژول را به آردوینو متصل کنید.

مرحله 2 : کد آردوینو برای ارتباط DHT11 با متلب

پس از اتصال سنسور دما و رطوبت به آردوینو کدی را  برنامه‌ای را که در ادامه توضیح داده می‌شود، با استفاده از کامپایلر آردوینو IDE در آردوینو بارگذاری کنید.

#include <DHT.h>  


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

#define DHTPIN 4 

 درقسمت "void setup" سنسور DHT11 را راه‌اندازی اولیه کنید.

void setup() {
  Serial.begin(9600);
  delay(2000);
  dht.begin();   // initialise DHT11 sensor
}

در حلقه اصلی برنامه "void loop" قدار دما و رطوبت را به صورت float تنظیم کنید.

داده‌های دما و رطوبت را از آردوینو با استفاده از فرمان ()float temp = dht.readTemperature و ()float humi = dht.readHumidity بخوانید. سپس این مقادیر را به صورت سریال چاپ کنید تا متلب بتواند مقادیر را بخواند.

void loop() {                                            
  float temp = dht.readTemperature();   //read temperature data
float humi = dht.readHumidity();   //read temperature data
 Serial.print(temp);
  Serial.print(humi);
  delay(2000);}

مرحله 3 : کد متلب برای ترسیم داده‌ها

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

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

s = serial('COM18');

گام سوم: در کد زیر دستور ()fopen به منظور ارتباط سریال بین آردینو و متلب به کار می‌رود. سپس داده های سریال دریافتی را در متغیری به نام "out" ذخیره می‌شوند. متغیر out رشته ای نه رقمی است که چهار رقم اول داده‌های دما و 5 رقم باقی‌مانده بیانگر میزان رطوبت است. بنابراین ، با استفاده ازدستور ((Temp(i)=str2num(out(1:4و ((Humi(i)=str2num(out(5:9 به ترتیب داده‌های دما و رطوبت را خوانده می‌شوند.

fopen(s)
out = fscanf(s)
Temp(i)=str2num(out(1:4));
Humi(i)=str2num(out(5:9));

گام چهارم: بعد از ایجاد برنامه به صورت گفته شده ، روی "Run " کلیک کرده تا کد پردازش شده و منتظر شوید تا متلب مطابق با آنچه در تصویر مشاهده می‌کنید در حالت "Busy" قرار بگیرد.

 اگر کد بدون هیچ خطایی اجرا شود، میزان دما و رطوبت به صورت Real Time ب ظاهر می‌شوند. در اینجا داده‌ها هر دو ثانیه یکبار به روزرسانی می‌شوند؛ زیرا دو ثانیه زمان لازم برای ارسال اطلاعات به پورت سریال توسط سنسور DHT11 است.

گام پنجم: برای بررسی مقدار ثبت شده دما و رطوبت مطابق با تصویر زیر بر روی متغیر مربوطه در پنجره فضای کاری کلیک کنید. در داخل

"dialog box" تمامی مقادیر ذخیره شده در متغیرهای مربوطه وجود دارند.