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

ارسال گزارشات مثل دما و رطوبت از آردوینو به اکسل + آموزش ذخیره روی حافظه SD

سلام. پروژه ارسال گزارشات مثل دما و رطوبت از آردوینو به اکسل + آموزش ذخیره اطلاعات Arduino روی حافظه SD را آماده کردیم.

آموزش ارسال دما و رطوبت از Arduino به محیط کامپیوتر

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

داده های ذخیره شده را می توان به راحتی در یک برگه اکسل برای تجزیه و تحلیل های بیشتر باز کرد. برای حفظ تاریخ و زمان ما از ماژول معروف RTC DS3231 استفاده می کنیم و برای بدست آوردن دما و رطوبت از حسگر DHT11 استفاده خواهیم کرد.

در این پروژه آردوینو یاد میگیریم چطور اطلاعات آردوینو را در حافظه SD ذخیره کنیم. همچنین خواهیم آموخت چگونه اطلاعات را به طور مستقیم در اکسل شیت از طریق سریال ثبت کنیم.

توضیحات مدار پروژه رطوبت سنج و دما سنج

شماتیک مدار این پروژه Arduino در زیر نشان داده شده است.

توضیحات مدار پروژه رطوبت سنج و دما سنج

همانطور که در شماتیک مدار نشان داده شده است اتصالات بسیار ساده هستند. زیرا ما از آنها به عنوان ماژول استفاده کرده ایم و می توانیم مستقیماً آنها را روی یک برد بورد بسازیم. اتصالات پروژه را در جدول زیر مشاهده میکنید.

پین آردوینوپین ماژول
ماژول سنسور دما DHT11
Vcc5V
GndGnd
Nc

Nc
OutPin 7
ماژول زمان واقعی RTC DS3231
Vcc5V
GndGnd
SCLPin A5
SDAPin A4
ماژول کارت حافظه SD
Vcc5V
GndGnd
MISOPin 12
MOSIPin 11
SCKPin 13
CSPin 4

همچنین با ایجاد تغییرات کوچک میتوانید از بقیه سنسور های دما مثل LM35 استفاده کنید. ماژول RTC DS3231 با استفاده از ارتباط I2C با Arduino در ارتباط است و ماژول کارت SD با استفاده از ارتباط SPI به آردوینو متصل می شود.

قطعات مورد نیاز

  1. Arduino UNO (هر تخته آردوینو)
  2. سنسور دما DHT11
  3. ماژول DS3231 RTC
  4. ماژول کارت SD
  5. سنسور دما و رطوبت DHT11
سنسور دما و رطوبت DHT11

این سنسور قابلیت تشخیص دما در محدوده 0-50 درجه سانتی گراد را دارد. و دقت اندازه گیری دمای سنسور +-2 است. همچنین بخش رطوبت سنج این حسگر میتواند در محدوده 20 تا 90 درصد با دقت +-5% فعالیت کند.

سنسور دما و رطوبت DHT11

سنسور DHT11 هم به صورت ماژول و هم به صورت سنسور در دسترس است. در این پروژه ما از سنسور استفاده میکنیم. تنها تفاوت سنسور و ماژول در این است که ماژول دارای یک خازن و یک مقاومت متصل به پین خروجی است. بنابراین اگر از ماژول استفاده میکنید نیاز نیست که مقاومت و خازن را اضافه کنید.

حتما ببینید :  دانلود کتابخانه dht.h برای آردوینو + مشخصات سنسور دما و رطوبت DHT11

توضیحات کد آردوینو پروژه

ما باید برنامه Arduino را بنویسیم که بتواند موارد زیر را انجام دهد.

  1. داده های حسگر DTH11 (یا هر داده دیگری را که می خواهید وارد شود) بخواند.
  2. ابتدا I2C را بخواند تا داده های ماژول RTC را بخواند.
  3. برای ایجاد رابط ماژول کارت SD و آردوینو ، باس SPI را در ابتدا راه اندازی کند.
  4. تاریخ ، زمان ، دما و رطوبت را در کارت SD ذخیره کند.
  5. تاریخ ، زمان ، دما و رطوبت را در صفحه اکسل که در رایانه / لپ تاپ کار می کند، ذخیره کند.

مراحل فوق ممکن است پیچیده به نظر برسد اما بسیار آسان است. زیرا ما کتابخانه ها را داریم. کتابخانه ها به همراه کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده اند.

1. خواندن داده ها از DS3231

DS3231 یک ماژول RTC زمان واقعی است و برای حفظ تاریخ و زمان برای اکثر پروژه های الکترونیک استفاده می شود. این ماژول دارای منبع تغذیه سکه ای خاص خود است که با استفاده از آن تاریخ و زمان را حتی در صورت حذف برق اصلی یا ری استارت میکروکنترلر حفظ میکند. بنابراین وقتی تاریخ و زمان را در این ماژول تنظیم می کنیم، همیشه آن را حفظ می کند.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

استفاده از این ماژول به دلیل کتابخانه تهیه شده توسط آردوینو بسیار آسان است.

DS3231  rtc(SDA, SCL);
void Initialize_RTC()
{
  rtc.begin();


rtc.setDOW(FRIDAY);     // تنظیم روز هفته
rtc.setTime(18, 46, 45);     // تنظیم ساعت  12:00:00 (24 فرمت ساعته)
rtc.setDate(6, 30, 2017);   // تنظیم تاریخ
}

توجه: هنگام استفاده از این ماژول برای اولین بار باید تاریخ و زمان را تنظیم کنید. زمان را در کد بالا تنظیم کنید. اگر این کار را انجام ندهید هر بار که برد را راه اندازی کنید تاریخ و زمان دوباره تنظیم میشو. برای خواندن زمان با آردوینو میتوانید از RTC DS1307 نیز استفاده کنید.

2. خواندن داده ها از DHT11

DHT11 یک سنسور رطوبت و دما است. این سنسور مقادیر را ارسال می کند. دما و رطوبت به شکل یک سریال داده 8 بیتی از طریق پین خروجی ماژول به آردوینو ارسال میشوند.

erature و رطوبت به عنوان یک سریال داده 8 بیتی از طریق پین خروجی ماژول. این کتابخانه با استفاده از عملکرد سریال نرم افزار Arduino ، این داده ها را می خواند.

#define DHT11_PIN 7 //تنظیم پین خروجی سنسور
dht DHT; //تنظیم متغیر سنسور
void Read_DHT11()
{
int chk = DHT.read11(DHT11_PIN);
}

در اینجا ما پین خروجی را 7 تعریف کرده ایم. شما میتوانید هر پینی که از سریال پشتیبانی میکند را انتخاب کنید. DHT.read(pin number); مقدار دما و رطوبت را خوانده و در پارامتر های DHT.temperature و DHT.Humidity ذخیره میکند.

3. شروع کار با ماژول کارت SD

void Initialize_SDcard()
{
  // اگر کارت اس دی در دسترس نباشد
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    return;
  }

 // اگر کارت اس دی در دسترس باشد 
  File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// اطلاعات را وارد کن
  if (dataFile) {
    dataFile.println("Date,Time,Temperature,Humidity"); //نوشتن ردیف اول جدول اکسل
    dataFile.close();
  }
}

استفاده از کارت SD با Arduino به دلیل کتابخانه موجود بسیار آسان است که به طور پیش فرض به Arduino IDE اضافه شده اند. در تابع پیکربندی کارت SD ، یک فایل متنی با نام “LoggerCD.txt” ایجاد می کنیم و ردیف اول محتوای خود را می نویسیم. در اینجا مقادیر را با استفاده از “” جدا می کنیم. یعنی باید به ستون بعدی اکسل برویم.

4. نوشتن داده ها روی کارت SD

void Write_SDcard()
{
    // فایل متنی را باز کنید
  File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);

  // اگر فایل در دسترس بود بنویس :
  if (dataFile) {
    dataFile.print(rtc.getDateStr()); // نوشتن داده های تاریخ 
    dataFile.print(","); //رفتن به ستون بعد با کاما ","

    dataFile.print(rtc.getTimeStr()); // نوشتن داده های ساعت
    dataFile.print(","); //رفتن به ستون بعد با کاما ","

    dataFile.print(DHT.temperature); // نوشتن داده های دما
    dataFile.print(","); //رفتن به ستون بعد با کاما ","

    dataFile.print(DHT.humidity); // نوشتن داده های رطوبت
    dataFile.print(","); //رفتن به ستون بعد با کاما ","

    dataFile.println(); // پایان ردیف و رفتن به ردیف بعد
    dataFile.close(); //بستن فایل
  }
  else  // اگر فایل در دسترس نبود بنویس : 
  Serial.println("OOPS!! SD card writing failed");
}

همانطور که در ابتدا گفته شد قصد ما این است که تاریخ ، زمان ، دما و رطوبت را در کارت SD خود ذخیره کنیم. Arduino با کمک کتابخانه DS3231 و کتابخانه DHT11 قادر به خواندن این چهار پارامتر خواهد بود و آنها را در پارامترهای زیر ذخیره می کند. در جدول زیر نشان داده شده است.

تاریخrtc.getDateStr());
ساعتrtc.getTimeStr());
دماDHT.temperature
رطوبتDHT.humidity

اکنون می توانیم مستقیماً از این پارامترها استفاده کنیم تا آنها را در کارت SD ذخیره کنیم.

dataFile.print(پارامتر);

متوجه شدید که هر پارامتر با کاما از هم جدا می شود تا ظاهری خوانا تر ایجاد شود. برای نشان دادن پایان ردیف از dataFile.println(); استفاده می شود.

5. نوشتن داده ها روی اکسل با افزونه PLX-DAQ

PLX-DAQ افزونه مایکروسافت اکسل است که به ما کمک می کند مقادیر را از آردوینو به طور مستقیم روی یک فایل اکسل در رایانه خود بنویسیم. افزونه در فایل دانلودی انتهای صفحه قرار داده شده است.

شما میتوانید داده ها را به طور همزمان بنویسید و مانیتور کنید و همچنین میتوانید به صورت نمودار آن ها را نمایش دهید. همچنین در این جا نیازی به ماژول RTC ندارید ! و به راحتی میتوان از تاریخ و ساعت لپ تاپ خود استفاده کنید.

برای استفاده از این نرم افزار با Arduino، ما باید داده ها را به صورت سریال درست مانند نمایش مقادیر در مانیتور سریال ، به صورت سریال ارسال کنیم. خطوط کلیدی در زیر توضیح داده شده است.

void Initialize_PlxDaq()
{
Serial.println("CLEARDATA"); //پاک کردن پروژه های قدیم
Serial.println("LABEL,Date,Time,Temperature,Humidity"); //ترتیب قرار گیری مقادیر
}
void Write_PlxDaq()
  {
    Serial.print("DATA"); //دستور نوشتن اطلاعات در اکسل
    Serial.print(","); //رفتن به ستون بعد با کاما ,

    Serial.print("DATE"); // نوشتن تاریخ در اکسل
    Serial.print(","); //رفتن به ستون بعد با کاما ,

    Serial.print("TIME"); // نوشتن ساعت در اکسل
    Serial.print(","); //رفتن به ستون بعد با کاما ,

    Serial.print(DHT.temperature); // نوشتن دما در اکسل
    Serial.print(","); //رفتن به ستون بعد با کاما ,

    Serial.print(DHT.humidity); // نوشتن رطوبت در اکسل
    Serial.print(","); //رفتن به ستون بعد با کاما ,

    Serial.println(); // پایان ردیف و رفتن به ردیف بعد

  }

این نرم افزار می تواند کلمات کلیدی مانند LABEL ، DATA ، TIME ، DATE و … را تشخیص دهد. همانطور که در عملکرد نشان داده شده است، کلید واژه “LABEL” برای نوشتن اولین ردیف در برگه اکسل استفاده می شود. بعداً در تابع نوشتن ما از کلمه کلیدی “DATA” استفاده می کنیم تا نشان دهیم که اطلاعات باید به عنوان DATA در نظر گرفته شوند. برای اینکه نشان دهیم که باید به ردیف بعدی برویم ، باید از کاما (“،”) استفاده کنیم. برای نشان دادن پایان ردیف ، باید Serial.println(); را ارسال کنیم.

همانطور که قبلاً گفته شد می توانیم تاریخ و زمان سیستم را با ارسال کلمات کلیدی “DATE” و “TIME” به ترتیب مطابق شکل بالا بنویسیم.

توجه: هنگام استفاده از این نرم افزار PLX_DAQ از مانیتور سریال استفاده نکنید.

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

کار با پروژه ارسال اطلاعات Arduino به Excel ساده است. پس از آماده شدن سخت افزار و نرم افزار، زمان آن رسیده است تا برنامه را در برد آردوینو بارگذاری کنید. به محض بارگیری برنامه شما، مقادیر دما و رطوبت شما برای ذخیره سازی در کارت SD آماده می شود. شما باید مراحل زیر را دنبال کنید تا PLX-DAQ قادر به وارد کردن اطلاعات به برگه Excel در رایانه شما باشد.

مرحله 1: پرونده “Plx-Daq Spreadsheet” را که هنگام نصب بر روی دسک تاپ شما ایجاد شده است، باز کنید.

مرحله 2: اگر با یک اخطار امنیتی مواجه شدید، روی Options->Enable the content -> Finish -> OK کلیک کنید.

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

مرحله 3: اکنون نرخ baud را به “9600” تغییر دهید و درگاهی که آردوینو به آن متصل شده است را انتخاب کنید. سپس بر روی Connect کلیک کنید. مقادیر شما باید مانند آنچه در تصویر زیر نشان داده شده است وارد شوند.

ارسال اطلاعات از آردوینو به اکسل

می توانید این برگه اکسل را باز کنید و مقادیر ورودی را نظارت کنید. در حالی که این اتفاق می افتد کارت SD ما نیز همان مقادیر را ذخیره می کند. برای بررسی این مسئله به راحتی کارت SD را برداشته و آن را روی رایانه خود باز کنید. شما باید یک فایل متنی با نام “LoggerCD.txt” در آن پیدا کنید. وقتی باز شد چیزی شبیه به تصویر زیر را باید مشاهده کنید.

ذخیره اطلاعات آردوینو روی مموری رم SD

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

  1. اکسل را باز کنید سپس روی File->Open کلیک کرده و گزینه All file را در سمت راست پایین انتخاب کنید. سپس به کارت حافظه SD بروید و فایل LoggerCD را باز کنید.
  2. روی “Next” کلیک کنید و کاما را به عنوان جدا کننده (delimiter) انتخاب کنید. دوباره روی “Next” کلیک کنید. سپس Finish را بزنید.
  3. اکنون مقادیر شما مطابق شکل زیر در یک فایل اکسل باز خواهد شد.

باز کردن اطلاعات کارت حافظه در Excel

ما طوری تنظیم کرده ایم که مقادیر هر 5 ثانیه بروز شوند و قرار بگیرند. شما با تغییر کوچک در برنامه میتوانید زمان دلخواه خود را وارد کنید.

فیلم عملکرد پروژه

فیلم عملکرد پروژه در زیر قرار داده شده است. تماشای آن به شما در درک نحوه کار این پروژه کمک میکند.

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : سورس کامل ، شماتیک کامل

[post_shop]

دانلود فایل های پروژه

[/post_shop] [lrm_form default_tab=”register” logged_in_message=””]

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم.

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

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

دکمه بازگشت به بالا
بستن
بستن