آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

ساخت ترموستات آردوینو با امکان تنظیم حد بالا و پایین دما سنسور DS18B20

Arduino-thermostat-ds18b20-lcd-2x16-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 

در آموزش بخش اول ساخت دماسنج با سنسور DS18B20، دمای محیط خوانده شده و سپس در شیلد ال سی دی نمایش داده میشود. در آموزش بخش دوم، یک ترموستات طراحی خواهیم کرد. با تعیین حد دمای بالا و دمای پایین در برنامه، توسط ماژول رله خروجی را کنترل خواهیم کرد.

 


۱ – سنسور و برد ترموستات


سنسور دما DS18B20

سنسور دما DS18B20 دارای کابل و کاملا ضد آب می‌باشد. زمانی که نیاز دارید، دمای محیط را به صورت تماسی اندازه‌گیری کنید، سنسور DS18B20 بسیار کاربردی خواهد بود. دمای مطلوب جهت اندازه گیری توسط سنسور DS18B20، با توجه به اینکه با کابل PVC پوشیده شده است، ۱۲۵ درجه سانتی گراد تخمین زده شده است. با این وجود پیشنهاد می‌شود آن را زیر ۱۰۰ درجه سانتی گراد نگهداری کنید. از آنجایی که انتقال سیگنال کاملا دیجیتالی است، حتی در فواصل طولانی هم خطا در دریافت دمای محیط نخواهید داشت. سنسور دما DS18B20 از ۹ تا ۱۲ بیت دمای قابل تنظیم را فراهم می‌کند. اتصال سنسور تنها توسط یک سیم با یک میکروپروسسور و ولتاژ ۳ تا ۵٫۵ ولت انجام می‌شود. همانطور که اشاره شد، ولتاژ کاری سنسور DS18B20 از ۳ تا ۵٫۵ ولت DC است. دقت اندازه‌گیری سنسور بین محدوده دمایی – ۱۰ تا + ۸۵ درجه سانتی گراد برابر ±۰٫۵ می‌باشد. محدوده اندازه‌گیری دمای سنسور DS18B20 بین – ۵۵ تا + ۱۲۵ درجه سانتی گراد و -۶۷ تا + ۲۵۷ درجه فارنهایت می‌باشد. سنسور دما DS18B20 دارای سه پایه سیگنال و VCC و GND می‌باشد. طول سیم سنسور ۹۰ سانتی متر است و پایه های آن با سه رنگ زرد، مشکی و قرمز مشخص شده است.

 

ماژول رله Relay Module

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

 

شیلد ال سی دی آردوینو Arduino LCD Shield

شیلد ال سی دی آردوینو Arduino LCD Shield با در اختیار داشتن ۶ کلید بر روی آن در پروژه های اینترنت اشیا بسیار پرکاربرد است. این شیلد از طریق پایه های دیجیتال و آنالوگ با برد میکروکنترلر آردوینو ارتباط برقرار میکند. با تعریف هر یک از کلیدها در کد برنامه می‌توانید وضعیت هر یک از سنسورها را تغییر دهید. در این آموزش از برد آردوینو مگا Arduino Mega2560 برای ارتباط با شیلد ال سی دی استفاده شده است. در آموزش راه اندازی سه مدل ال سی دی کاراکتری LCD، توابع لازم جها فعال سازی شیلد و کتابخانه های مورد نیاز توضیح داده شده است. آن را مطالعه کنید و در صورت سوال از همان طریق اقدام نمایید.

ترموستات دیجیتال با آردوینو و سنسور DS18B20 - دیجی اسپارک

آموزش های پیش نیاز

آموزش راه اندازی سه مدل ال سی دی کاراکتری LCD

آموزش استفاده از رله Relay در پروژه اینترنت اشیاء IOT

 


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


در آموزش ساخت ترموستات آردوینو برای راه اندازی سنسور DS18B20 و ال سی دی LCD نیاز به فراخوانی کتابخانه آن ها خواهیم داشت:

کتابخانه DallasTemperature

  • کتابخانه DallasTemperature جهت راه اندازی سنسور DS18B20 استفاده می‌شود. لینک دانلود کتابخانه در صفحه محصول سنسور DS18B20 با کابل ضد آب در فروشگاه دانشجوکیت قرار گرفته شده است. آن را دانلود و سپس فراخوانی کنید.

کتابخانه LiquidCrystal

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

کتابخانه onewire

  • کتابخانه onewire برای راه اندازی سنسور دما DS18B20 فراخوانی می‌شود. کتابخانه onewire به صورت پیش فرض در لیست کتابخانه های آردوینو قرار دارد. آن را فراخوانی کنید.

 

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

  • سیم زرد رنگ دیجیتال سنسور دما DS18B20 را به همراه یک مقاومت ۴٫۷ کیلواهم به پایه دیجیتال آردوینو Arduino Mega2560 اتصال دهید.
  • سیم قرمز رنگ سنسور دما DS18B20 به پایه VCC آردوینو Arduino Mega2560 اتصال دهید.
  • سیم مشکی رنگ سنسور دما DS18B20 را به پایه GND آردوینو Arduino Mega2560 اتصال دهید.

 


۳ – کدنویسی ترموستات آردوینو


 

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر پلاس شوید.

 

و یا جهت دانلود کدهای برنامه به صورت کامل کلیک کنید.

 


۴ – تحلیل کدهای ترموستات آردوینو


 

نحوه ی فراخوانی کتابخانه

تعریف یک پایه ثابت برای سنسور دما

فراخوانی تابع Arduino Lcd Shield

قبلا در آموزش راه اندازی ۳ مدل ال سی دی کاراکتری، توابع لازم جهت اجرا و راه اندازی شیلد ال سی دی آردوینو کامل توضیح داده شده است. برای مطالعه آموزش و نحوه ی فراخوانی توابع وارد لینک زیر شده و توابع را بررسی کنید.

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

تعریف ساختار تصمیم if , else

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

ساختار تصمیم else if

حال با توجه به ساختار if و else، اگر بخواهیم از دستور if برای تست شرط های متعددی استفاده کنیم، باید آن ها را به صورت تو در تو فراخوانی کنیم.

ساختار تصمیم Switch

ساختار تصمیم Switch جهت تصمیم گیری های چندگانه بر اساس مقادیر مختلف یک عبارت استفاده می‌شود. به طور کلی برای تصمیم گیری هایی که بیش از سه انتخاب وجود داشته باشد، از ساختار Switch استفاده میکنیم.

حال باید توسط تابع های گفته شده بین دو محدوده دمایی حد بالا و حد پایین شرط گذاری کنید. در ابتدا یک حد بالا و یک حد پایین تعریف کنید:

سپس بین این دو محدوده دمایی شرط گذاری کنید. به عنوان مثال در این کد پس از بالا رفتن دما و رسیدن به حد دمای بالا، رله به عنوان خروجی فعال میگردد. هنگامی که دمای سنسور کاهش یابد، مجددا رله غیر فعال شده و خروجی عمل نمیکند.

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

 

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

سنسور دما DS18B20 با کابل ضد آب

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

شیلد ال سی دی آردوینو Arduino LCD Shield

کابل مخصوص بردبورد 

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

 

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

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

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

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

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

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

۱۴ دیدگاه

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

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

  • با سلام
    میشه یکم درباره سنسور توضیح بیشتری بدید آخه سنسور های ntc موجود در بازار دارای دو پایه هستند ولی این سنسورسه سیم دارد
    آیا با خود سنسور های ntc (که دارای دوپایه هستند) این ترموستات را ساخت؟

    • سلام
      سنسور DS18b20 دارای کابل و کاملا ضد آب و از ۹ تا ۱۲ بیت دمای قابل تنظیم را فراهم می‌کند. در متن آموزش توضیحات مربوط به سنسورکامل توضیح داده شده است و همچنین دیتاشیت آن را می‌توانید از لینک زیر در قسمت دانلود مطالعه نمایید.
      سنسور دما DS18B20 ضد آب با کابلبرای استفاده از سنسور دمای مورد نظر خودتان باید کتابخانه آن را فراخوانی کنید و محدودیتی در ساخت ترموستات نخواهید داشت.

  • باسلام و خسته نباشید
    آیا میشه این پروژه رو با arduino uno راه اندازی کرد چون مگا ندارم!
    به نظرتون میشه.
    باتشکر

    • سلام
      بله هیچ تفاوتی ندارد. تنها باید در کد آردوینو پایه های دیجتیال مورد استفاده را تغییر داد.

  • سلام من در زمینه تجهیزات مکانیکی کار میکنم و اطلاعات خیلی کمی راجع به الکترونیک دارم
    میخوام روی یه دستگاه مکانیکی مثل پمپ این ترموستات رو نصب کنیم تا زمانی که دمای تجهیز بالا رفت این سیستم الارم بده مد نظرم بود که از سنسور دمای آب موتور ماشین که قابلیت پیچ شدن روی بدنه پمپ داره استفاده کنم……..ممنون میشم اگر بتونید کمک کنید

  • سلام وقت بخیر میشه همین پروژه رو با سون سگمنت۴تایی راه اندازی کنید و برای تغییر مقدار دمای بالا و پایین رله از دکمه set استفاده کنید یعنی فقط دکمه set,min,max داشته باشیم یا برای راه اندازیش یکم توضیح بدین ممنون میشم . من مشکلم بر روی دکمه set هست.