آردوینو آموزش آردوینو دسته‌بندی نشده پروژه های آردوینو کیت آردوینو

آموزش ساخت ترموستات با آردوینو و ماژول دما رطوبت DHT11 و نمایش LCD

Arduino-Sensor-Kit-Thermostat-DHT11-Module-digispark
نوشته شده توسط پریسا پوربلورچیان

در آموزش ماژول دما و رطوبت DHT11 از پکیج ۳۷ سنسور آردوینو با LCD بخش اول به معرفی ماژول دما رطوبت DHT11 پرداختیم. با ایجاد حرارت در مجاورت سنسور، دمای سنسور افزایش یافت و مقدار نهایی دما بر روی ال سی دی نمایش داده شد. در انتهای آموزش، یک پروژه تعریف کردیم که توسط یکی از کاربران خلاق دیجی اسپارک ارسال شده است و تنها تغییراتی در نمایش ال سی دی با توجه به تغییر ال سی دی استفاده شده لحاظ شده است. در ادامه به معرفی پروژه و کد آن خواهیم پرداخت. در ادامه این آموزش جذاب با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

 

ترموستات Thermostat

ترموستات یکی از مهم‌ترین ابزارها در صنایع مختلف و مدیریت مصرف انرژی است. توسط ترموستات دما محیطی که مورد نیاز است، در محدوده خاصی نگه داشته می‌شود. موارد استفاده در اتاق خواب، کل فضای ساختمان، مانند حال و پذیرایی، راه پله‌های ساختمان، دستگاه‌های جوجه کشی، صنایع مختلف و… می‌باشد. توسط ترموستات فرآیندهای بسیار مهمی مدیریت می‌شوند. در فاز کلان اینترنت اشیاء IOT هر کدام از این ترموستات Thermostat اطلاعات را به سرور مورد نظر ارسال می‌کند. بنابراین میتوان از این طریق مدیریت دقیقی روی مصرف انرژی در شاخه‌های مختلف داشت. در آینده اینترنت اشیاء به کمک انساها خواهد آمد تا در تمامی لایه‌های زندگی بتوان به کاهش مصرف انرژی کمک کند.

 

هدف آموزش ساخت ترموستات آردوینو

در این آموزش با استفاده از سنسور DHT11، هنگامی که دمای سنسور به مقدار تعیین شده از قبل رسید، ماژول رله فعال شده و سپس ماژول بیزر آلارم ارسال می‌کند. همچنین تغییرات دما در ال سی دی LCD نمایش داده می‌شود. در ادامه به بررسی اتصالات و کد آردوینو می‌پردازم.

 

ماژول دما و رطوبت DHT11

ماژول دما و رطوبت DHT11 از سنسورهای پرکاربرد جهت تشخیص دما می‌باشد. سنسور DHT11 کالیبره شده و دارای خروجی دیجیتال است. محدوده اندازه گیری رطوبت بین ۲۰ تا ۹۰% RH و محدوده‌ی دما از ۰ تا ۵۰ درجه سانتی گراد می‌باشد. ولتاژ کاری ماژول DHT بین ۳٫۳ تا ۵ ولت DC است. فاصله انتقال سیگنال در ماژول DHT11 تا ۲۰ متر می‌باشد. ماژول دما و رطوبت DHT11 بسیار مقرون به صرفه، دارای کیفیت‌ عالی و واکنش سریع نسبت به تغییر دمای محیط است. این سنسور دما رطوبت به ترتیب دارای ۳ پایه GND, VCC, Signal می‌باشد.

 

ماژول رله ۵ ولت تک کانال

ماژول رله تک کانال Relay 1channel دارای ولتاژ ۵ ولت و ولتاژ خروجی ۲۲۰ ولت می‌باشد. رله تک کانال دارای توان ۱۰ آمپر است و برای پروژه‌های DIY انتخاب مناسبی است. رله Relay در الکترونیک همانند کلید عمل می‌کند. در واقع رله‌ها سوییچ‌هایی هستند که مدارهای الکترونیکی را باز و بسته می‌کنند. پایه وسط مشترک و دو پایه کناری یکی NO به مفهوم Normally Open یعنی به صورت پیش فرض در حالت باز قرار دارد. پایه دیگر NC به مفهوم Normally Close یعنی به صورت پیش فرض در حالت بسته قرار دارد. چنانچه در مورد اتصال رله آشنایی ندارید به پست آموزش استفاده از رله Relay در پروژه اینترنت اشیاء IOT که توسط همکارم نوشته شده است؛ مراجعه کنید.

 

ماژول بیزر ۵ ولت

ماژول بیزر Buzzer Module همانطور که از نامش پیداست، به عنوان آشکار ساز صوتی در پروژه‌های الکترونیک استفاده می‌شود. بیزر Buzzer توسط یک مدار الکتریکی و یا یک سیگنال صوتی نوسان و هدایت می‌شود. ولتاژ کاری ماژول بیزر موجود در پکیج ۳۷ سنسور آردوینو ۵ ولت DC است. دیگر نیازی به تعریف فرکانس کاری برای عملکرد آن نخواهیم داشت. به عبارتی با شوک الکتریکی ماژول اکتیو فعال خواهد شد. برای ماژول بیزر باید کدهای متفاوت با فرکانس های مختلف و دلخواه تعیین کرد که توجه به این نکته در کدها الزامی است.

 آموزش ساخت ترموستات با سنسور DHT11 و برد آردوینو - دیجی اسپارک

 

فراخوانی کتابخانه ترموستات با آردوینو

در این آموزش از کتابخانه‌های DHT11Adafruit_sensor استفاده ‌می‌کنیم. لینک دانلود کتابخانه DHT11 و Adafruit_Sensor در صفحه محصول سنسور دما و رطوبت DHT11 در قسمت دانلود قرار دارد. با کلیک بر روی لینک هر دو کتابخانه را دانلود نمایید، سپس در مسیر Arduino / Library قرار دهید. در این آموزش از ال سی دی کاراکتری ۱۶*۲ به همراه درایور I2C استفاده می‌کنیم. بدین جهت برای راه اندازی ال سی دی نیاز به فراخوانی کتابخانه LiquidCrystal_I2C خواهیم داشت. لینک دانلود کتابخانه LiquidCrystal_I2C در صفحه محصول راه انداز LCD کاراکتری LCD Driver PCF8574 با رابط I2C در قسمت دانلود قرار دارد. کتابخانه را دانلود و در مسیر arduino/Library قرار دهید. همچنین برای راه اندازی ال سی دی نیاز به کتابخانه wire خواهیم داشت که به صورت پیش فرض در لیست کتابخانه Arduino قرار دراد. تنها کافیست از مسیر Sketch/ Include Library کتابخانه wire را فراخوانی کنید. راهنمای نصب کتابخانه در آموزش نصب کتابخانه در نرم افزار آردوینو کامل توضیح داده شده است، در صورت نیاز ابتدا مطالعه کرده و سپس کتابخانه ها را نصب کنید.

 

اتصالات مدار ترموستات آردوینو

  • پایه سیگنال (S) سنسور DHT11 را به پایه ۸ آردوینو اتصال دهید.
  • پایه VCC سنسور DHT11 را به پایه ۵ ولت آردوینو اتصال دهید.
  • پایه GND سنسور DHT11 را به پایه GND آردوینو اتصال دهید.
  • پایه سیگنال (S) ماژول رله Relay را به پایه ۱۰ آردوینو اتصال دهید.
  • پایه VCC ماژول رله Relay را به پایه ۵ ولت آردوینو اتصال دهید.
  • پایه GND ماژول رله Relay را به پایه GND آردوینو اتصال دهید.
  • پایه سیگنال (S) ماژول بیزر Buzzer را به پایه ۹ آردوینو اتصال دهید.
  • پایه VCC ماژول بیزر Buzzer را به پایه ۵ ولت آردوینو اتصال دهید.
  • پایه GND ماژول بیزر Buzzer را به پایه GND آردوینو اتصال دهید.

 

 

ال سی دی LCD 16*2 با رابط I2C

در این آموزش از ال سی دی گرافیکی ۲*۱۶ با درایور راه انداز I2C استفاده می‌کنیم. ماژول راه انداز LCD با تراشه PCF8574 و رابط I2C مناسب برای مدیریت ال سی دی های کاراکتری و باعث کاهش حجم سیم کشی در طی پروژه خواهد شد. راه انداز LCD کاراکتری با رابط I2C دارای ۴ پایه SCL , SDA, VCC و GND است. در ادامه اتصال ال سی دی LCD به آردوینو را توضیح خواهم داد.

 

اتصال ال سی دی I2C به آردوینو

  • پایه SCL ماژول راه انداز ال سی دی با رابط I2C را به پایه آنالوگ A5 آردوینو اتصال دهید.
  • پایه SDA ماژول راه انداز ال سی دی با رابط I2C را به پایه آنالوگ A4 آردوینو اتصال دهید.
  • پایه VCC ماژول راه انداز ال سی دی با رابط I2C را به پایه ۵ ولت آردوینو اتصال دهید.
  • پایه GND ماژول راه انداز ال سی دی با رابط I2C را به پایه GND آردوینو اتصال دهید.

 

وسایل مورد نیاز ساخت ترموستات

شیلد آردوینو پروتوتایپ Arduino Shield Prototype

ماژول نمایشگر ۱۶*۲ کاراکتری با راه انداز I2C

برد آردوینو Arduino UNO R3 

ماژول دما و رطوبت DHT11

ماژول رله تک کانال ۵ ولت

کابل فلت نری به نری

کابل فلت نری مادگی

ماژول بیزر ۵ ولت

مدار دماسنج ترموستات با آردوینو Arduino و سنسور DHT11 - دیجی اسپارک

 

کد ترموستات با آردوینو و DHT11

 

تحلیل کد آردوینو Arduino

 کد را در نرم افزار آردوینو Arduino کپی کنید. سپس طبق آموزش اتصالات گفته شده، اتصالات را برقرار کنید. کد را کامپایل و سپس آپلود کنید. در ابتدا سنسور DHT11 دمای محیط  Temp و رطوبت Humid را در ال سی دی LCD نمایش می‌دهد. با ایجاد بخار در مجاورت سنسور DHT و یا ایجاد حرارت توسط شعله Flame دمای سنسور دما رطوبت DHT11 را افزایش دهید. همانطور که در کد برنامه مشخص شده است، دمای تنظیم شده ۲۷ درجه ی سانتی گراد maxTemp =27 است. با افزایش دما هنگامی که دمای سنسور DHT11 به بیش از ۲۷ درجه سانتی گراد رسید، ماژول رله Relay فعال شده و در ال سی دی LCD تغییرات دما نمایش داده می‌شود، سپس ماژول بیزر Buzzer فعال شده و آلارم ارسال خواهد کرد.

 

 

تنظیمات دما در ترموستات با آردوینو

همانطور که گفته شد در این کد دمای تنظیم شده ۲۷ درجه سانتی گراد است. حال برای تغییر این دما و مشخص کردن دمای مورد نظر خود باید در کد برنامه دمای مورد نظر را تعریف کنید. خط ۹ برنامه آردوینو به صورت زیر است. دمای مورد نظر خود را در این قسمت وارد کنید:

 

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

 

پروژه

اخیرا تصمیم گرفته‌ایم برای تعامل بیشتر با شما کاربران و ایجاد موقعیتی در راستای رقابت دانش کاربران، در انتهای هر آموزش یک پروژه تعریف می‌کنیم. به اولین کاربری که به پروژه تعریف شده پاسخ صحیح بدهد، بن خرید به ارزش ۳۰ هزار تومان از فروشگاه دانشجو کیت ارایه خواهد شد. پروژه: با استفاده از دو عدد میکروسوئیچ، برای این برنامه منو بسازید که با همین دو میکروسوئیچ دمای حد بالا و حد پایین برای ترموستات قابل تنظیم باشد. استفاده از دیبانسیگ Debouncing کلیدها را ایزوله کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۶ دیدگاه

  • سلام خانم مهندس خیلی اموزش جالبی بود و کاربردی ببخشید یه سوال داشتم اگر میشه راهنمایی به فرمایید که چگونه تعیین کنم که وقتی به رطوبت پایین محیط رسید رله فعال شود چون من برا دما نمی خوام؟؟؟

    • سلام
      از توجه شما ممنونم.
      کد برنامه ترجمه شده است و اگر دقت کنید در این کد یک maxtemp تعریف کرده ایم. سپس در حلقه LOOP توسط تابع IF شرط گذاری کردیم که اگر دما از مقدار maxtemp بیشتر شود، رله فعال شود. حال در کدها مقدار رطوبت هم تعریف و خواندن دیتای آن هم تعریف شده، پس باید مقدار رطوبت مرود نظر را در کد اضافه و شرط گذاری کنید. پیشنهاد می‌کنم در ابتدا خط به خط کدهای برنامه را تحلیل کنید و سپس در صورت مشکل از همین طریق اقدام کنید تا راهنمایی کنم.

  • سلام .این خطا ؟
    Arduino: 1.8.5 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\Hr\Documents\Arduino\sketch_apr15a\sketch_apr15a.ino:3:123: fatal error: DHT.h: No such file or directory

    #include // ع©طھط§ط¨ط®ط§ظ†ظ‡ DHT ط±ط§ ط·ط¨ظ‚ ظ…ط±ط§ط­ظ„ ع¯ظپطھظ‡ ط´ط¯ظ‡ ط¯ط± ط¢ظ…ظˆط²ط´ ظپط±ط§ط®ظˆط§ظ†غŒ ع©ظ†غŒط¯

    ^

    compilation terminated.

    Multiple libraries were found for “LiquidCrystal_I2C.h”
    Used: C:\Users\Hr\Documents\Arduino\libraries\jm_LiquidCrystal_I2C
    Not used: C:\Program Files\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
    exit status 1
    Error compiling for board Arduino/Genuino Uno.
    Invalid library found in C:\Users\Hr\Documents\Arduino\libraries\Rtc_by_Makuna: C:\Users\Hr\Documents\Arduino\libraries\Rtc_by_Makuna
    Invalid library found in C:\Users\Hr\Documents\Arduino\libraries\Rtc_by_Makuna: C:\Users\Hr\Documents\Arduino\libraries\Rtc_by_Makuna

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • سلام
      کتابخانه DHT را نصب کنید. لینک دانلود کتابخانه در متن آموزش قرار داده شده است. نتیجه را از همین طریق اعلام نمایید تا راهنمایی کنم.

  • Arduino: 1.8.5 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\Hr\Documents\Arduino\libraries\jm_LiquidCrystal_I2C\I2CIO.cpp:29:26: fatal error: jm_Scheduler.h: No such file or directory

    #include

    ^

    compilation terminated.

    Multiple libraries were found for “LiquidCrystal_I2C.h”
    Used: C:\Users\Hr\Documents\Arduino\libraries\jm_LiquidCrystal_I2C
    Not used: C:\Program Files\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master
    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • سلام
      این ارور مربوط به کتابخانه LCD میباشد. لینک دانلود کتابخانه liquidcrystal_i2c در متن آموزش قسمت فراخوانی کتابخانه در صفحه محصول LCD قرار داده شده است. آن را دانلود کنید و سپس مجددا کامپایل کنید. در صورت برخورد به مشکل از همین طریق اقدام نمایید.