اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

اندازه گیری همزمان دمای چهار نقطه

در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. گاهی مواقع لازم است تا توسط یک دستگاه دمای چندین نقطه را اندازه گیری کنید و مقادیر به دست آمده را به صورت جدا از طریق LCD کاراکتری تعبیه شده در مدار به کاربران نمایش دهید،

همانطور که می دانید اگر بخواهیم برای عملی کردن این پروژه از سنسورهای معمول همانند سنسور دما LM35 یا دیگر سنسورهای مشابه استفاده کنیم باید برای هر سنسور دما از یک پایه مستقل در میکروکنترلر AVR استفاده کنیم. به همین دلیل در برخی پروژه ها به دلیل میزان گستردگی پروژه بیشتر پایه های میکروکنترلر AVR مورد استفاده قرار می گیرند و ما با محدودیت پایه های میکروکنترلر روبه رو می شویم.

بعد قبل
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
بعد قبل


نقشه شماتیک پروژه

نقشه شماتیک پروژه اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

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

مقاومت 1 کیلو اهم با توان 0.25 وات و تلرانس 5 درصد4 عدد
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد4 عدد
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد1 عدد
پتانسیومتر خوابیده 10K کیلو اهم تک‌دور مدل DIP1 عدد
دیود 1N40076 عدد
خازن الکترولیتی 470uf میکروفاراد 16 ولت1 عدد
خازن عدسی 100nF نانوفاراد2 عدد
رگولاتور ولتاژ 5 ولت L78051 عدد
سنسور دمای DS18B20 دیجیتال-اورجینال4 عدد
آی سی ULN2804A مدل DIP اورجینال1 عدد
میکروکنترلر ATMEGA8A-PU مدل DIP تایوانی با 28 پایه1 عدد
سوکت آی سی 28 پایه باریک مدل معمولی1 عدد
سوکت آی سی 18 پایه مدل معمولی1 عدد
ترمینال پیچی 2 پین مدل KF300 رنگ آبی1 عدد
ترمینال پیچی 3 پین مدل KF300 رنگ آبی4 عدد
لامپ LED قرمز سایز 3mm میلی متر مدل مات4 عدد
LCD کاراکتری مدل 16×2 با Backlighting آبی1 عدد
پین هدر نری صاف 1x40 با ارتفاع 11 میلیمتر - مشکی1 عدد
پین هدر مادگی صاف 1x40 با فاصله پایه 2.54 میلیمتر - مشکی1 عدد
تک سوئیچ 4 پایه DIP سایز 6x6x5 میلیمتر4 عدد
رله 12V ولت معمولی تک کنتاکت با جریان 10 آمپر4 عدد
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران1 عدد

ساخت دماسنج با سنسور DS18B20

در این پروژه دمای چهار محیط مختلف را با استفاده از 4 سنسور دمای DS18B20 مجزا اندازه گیری می کنیم و سپس با استفاده از مقادیر به دست آمده میزان دما محیط را کنترل می کنیم و همچنین توسط میکروکنترلر ATmega8 از خانواده میکروکنترلرهای AVR, مقدار دمای اندازه گیری شده را بر روی صفحه نمایش ال سی دی کاراکتری 2*16 نمایش می دهیم. برای راه اندازی سنسور دمای DS18B20 با میکروکنترلر AVR باید از پروتکل ارتباط 1-WIRE استفاده نمود. به همین دلیل شما می توانید هر تعداد سنسور دمای DS18B20 را فقط توسط یک پایه از میکروکنترلر AVR به صورت همزمان راه اندازی کنید و دمای اندازه گیری شده توسط هر سنسور را به صورت کاملا مجزا توسط میکروکنترلر AVR فراخوانی کنید.

پروتکل ارتباطی WIRE-1 یکی از جدید ترین پروتکل های استفاده شده در میکروکنترلرهای AVR, که توسط شرکت Dallas طراحی شده است. برعکس بقیه پروتکل ها, محدودیت کابل استفاده شده آن تا 30 متر است. این پروتکل شبیه به پروتکل های شبکه طراحی شده است و قابلیت شناسایی سیستم های متصل به میکرو را دارد. سرعت شناسایی 50 سیستم در ثانیه است. سیستم هایی که به این روش مجهز هستند دارای یک ID به طول 8 بایت بوده که شناسه سیستم مورد نظر است و همین ID توسط میکرو باید در اول برنامه, برای پیدا کردن سیستم مورد نظر, جستجو شود. لازم به ذکر است در این پروژه برنامه میکروکنترلر AVR در محیط نرم افزار BASCOM-AVR و به زبان بیسیک BASIC نوشته شده است.


نقشه جاگذاری قطعات بر روی برد PCB

نقشه جاگذاری قطعات بر روی PCB پروژه اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

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

هویه1 عدد
سیم لحیم1 عدد
کف چین1 عدد
قلع کش1 عدد

نحوه کنترل دما محیط

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


ویدیو ضبط شده از نحوه راه اندازی و عملکرد پروژه

در زیر یک ویدئو از نحوه عملکرد پروژه ساخته شده اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20 ضبط شده است, که می توانید برای درک بیشتر از نحوه عملکرد پروژه به صورت آنلاین مشاهده و یا از انتهای همین پست دانلود نمائید.

 


دانلود مستندات پروژه

توجه: به دلیل توقف فعالیت سایت امکان دریافت پروژه وجود ندارد.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 محیط برنامه نویسی : Bascom-AVR

 برنامه نویسی شده به زبان : Basic

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 17 ژانویه 2018

40 دیدگاه

  1. سلام و ادب/ ممنون از راهنمایی
    میکرو را تعویض کردم و با دوباره پروگرامر کردن میکرو جدید مشکل حل شد
    فقط یه راهنمایی
    من این را می خواهم برای زمستان استفاده کنم

    میخام دما که min یا کمتر از min شد رله روشن بشود و وقتی به max و بالاتر از max شد خاموش بشود و دوباره اگر دما به min رسید یا پایین تر از min روشن بشه

    الان وقتی min میشه و کمتر میشه روشن میشه و وقتی بیشتر از max هم میشه باز دوباره روشن میشه

    من میخام برای زمستان اگه دما مثلاً بیشتر از max بود (((روشن نشه)) و اگه کمتر از min شد روشن بشه تا برسه به دمای max و بعدش خاموش بشه

    میخام مثل ترموستات عمل کنه

    ممنون میشم راهنمایی بفرمایید

  2. سلام دوست عزیز
    بسیار خوشحالیم که مشکل برطرف شد و توانستید مدار را راه اندازی کنید.
    برای مسئله ای که فرمودید در فایل برنامه خط 521 الی 550 برنامه را با دستورات زیر جایگزین کنید

    حال برنامه را دوباره در نرم افزار بسکام کامپایل کنید و فایل هگز جدید را بر روی میکروکنترلر پروگرام کنید.

  3. بسیار عالی و کامل بود لطف کردید
    ممنون
    دو تا راهنمایی هم از شما بزرگوار داشتم

    سوال اولم اینکه اگه بخام برای تابستان

    فقط با یه گزینه مثلاً صفر و یک کردن یه قسمتی از داخل تنظیمات منو ؛
    عملکرد رله ها تغییر کند [ یعنی الان با زحمتی که شما کشیدید (با کم شدن دما ازmin رله روشن میشه و به max رسید خاموش میشود؛
    این عمل در تابستان برعکس بشه و با max روشن و به min رسید خاموش شود) ]
    این امکان پذیر هست؟ اگه بله یه راه ساده که خیلی کد تغییر نکنه میشه یکم راهنمایی کنید

    چون خیلی تعداد کدها زیاد هست و با اضافه کردن، اجازه نمیده

    من یه متغییر از نوع dim تعریف کردم و مقدار اولیه را صفر دادم
    بعد در قسمت chek tem یه if قبل از دستور شما نوشتم که اگه مقدار متغیر صفر بود دستور اجرا بشه و قبل از return با یک else گفتم همون دستور ها اما با تغییری که در دستور دادم، اجرا بشود.

    که در پایان ارور 107% و فایل hex هم ساخت ولی روی میکرو همه چی قاطی بود فکر کنم چون تعداد کد ها زیاد بود.

    البته نمیدونستم چطوری باید این متغیر تابستان یا زمستان کردن رو توی “منو” تعریف و مقدارشو بتونم تغییر بدم

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

    فقط اینکه نمیشه از no یا nc رله در تابستان به جای هم استفاده کرد باید حتماً رله وصل بشه تا خطای احتمالی کم بشه چون اگه بیش از 3 یا 4 دقیقه برنامه قاطی کنه و رله وصل بمونه همه چی نابود میشه. (این نابودی بیشتر توی زمستان هست چون هیتر به رله وصل میشه)

    البته این چند روزی که دارم پروژه رو تست میکنم چند باری برنامه هنگ کرده و همه دماهایی سنسور 00.0 نمایش میده که با خاموش و روشن کردن درست شده و این هم نمیدونم چکار کنم

    این هنگ کردنش منو نگران کرده
    اگه اینم هم راهنمایی کنید ممنون میشم
    که یه وقتی این اتفاق نیوفته و درصد خطا به نزدیک صفر برسه ممنون میشم

    ببخشید سوالام زیاد شد

  4. سلام دوست عزیز
    ما روزانه بیش از 100 درخواست کاربران سایت را بررسی و تا جای ممکن به آن ها پاسخ می دهیم، لطفا توجه داشته باشید توسعه و شخصی سازی پروژه ها به دلیل زمانبر بودن از زمان ما خارج است و این موضوع کاملا بر عهده کاربران است. درخواست بعدی شما قابل انجام است، اما به شرط اینکه به زبان برنامه نویسی Basic تسلط کافی داشته باشید تا بتوانید کدها را به صورت بهینه بنویسید.
    جهت راهنمایی بیشتر، شما می توانید یک متغیر به عنوان تعیین کننده زمستان و تابستان تعیین کنید و در شرط های موجود در زیر برنامه Chek_temp آن متغیر را بررسی کنید. به عنوان مثال برای دمای سنسور اول در زیر برنامه Chek_temp به شکل زیر می توانید بنویسید: (در مثال زیر متغیر Season فصل را نشان می دهد، اگر 0 باشد یعنی زمستان و اگر 1 باشد یعنی تابستان)

  5. سلام خسته نباشید میخواستم همین پروژه رو سیم کارتی کنم تا بتونم از طریق پیامک یا اینترنت دما هارو ببینم و وضعیتو چک کنم و بتونم در زمان نیاز رله هارو خاموش و روشن کنم ایا امکانش هست منون میشم جواب بدین

  6. سلام دوست عزیز
    بله این امکان وجود دارد – شما می توانید با استفاده از ماژول های GSM مثل ماژول SIM800L میزان دما را از طریق پیامک و یا بستر GPRS ارسال کنید. البته انجام این موارد نیاز به تسلط کافی به برنامه نویسی میکروکنترلرها و همچنین تجربه کار با ماژول های GSM را دارد.

  7. سلام
    پروژه را خریداری کردم.
    تشکر از پروژه خوبتون

    میخاستم این پروژه را از ۴ سنسور به ۲۰ سنسور و ۲۰ رله افزایش بدم
    امکانش هست شما زحمتشو بکشید هزینه اش را پرداخت کنم
    هر کاری کردم نتونستم اینو تغییر بدم ارور میده
    میخام برای زمستان اگر دما هر سنسور کمتر از ۱۰ درجه شد، رله فعال بشه و تا ۱۳ درجه که شد رله خاموش بشه
    این روند برای تمامی سنسورها ادامه داشته باشه
    فقط همین در زمستان دمای سنسورها بین ۱۰ الی ۱۳ درجه باشه

  8. با سلام و احترام
    در حال حاضر به دلیل پروژه ای که مشغول کار بر روی آن هستیم امکان قبول و یا توسعه پروژه برایمان مقدور نیست.
    پیشنهاد می کنیم با توجه به آموزش های برنامه نویسی موجود در اینترنت و همین سایت ابتدا سطح برنامه نویسی خود در زبان basic را افزایش دهید و سپس با توجه به نمونه کدهای نوشته شده برای 4 سنسور در این پروژه برنامه را برای استفاده از تعداد سنسورهای بیشتر توسعه دهید.

  9. سلام و عرض ادب
    من دوتا سوال در مورد این پروژه داشتم
    1- اگه بخوام فقط یک سنسور داشته باشم و بقیه سنسورها حذف بشن باید کجا برنامه رو تغییر بدم؟
    2- در صورتی که برای تنظیم دما تا دو رقم اعشار نیاز داشته باشیم باید کجا برنامه را تغییر داد؟
    مرسی ممنونم

  10. با سلام و احترام
    به دلیل حجم بالای سوالات، محدودیت زمان و زمانبر بودن شخصی سازی پروژه‌ها هرگونه توسعه و یا ویرایش برنامه ها به عهده خود کاربران می باشد.
    برای دو رقم نمودن اعشار دما در هنگام نمایش می توانید خط 599 برنامه را Ss = Format(ss , “0”) پیدا کنید و به این شکل Ss = Format(ss , “00”) تغییر دهید.
    برای حذف یک یا چند سنسور نیز بهتر است ابتدا الگو برنامه نویسی و متغیرهای استفاده شده برای پیاده سازی یک سنسور در برنامه پروزه را پیدا کنید و سپس اقدام به حذف الگوها و متغیرهای مشابه برای تعریف و پیاده سازی دیگر سنسورها کنید.

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

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

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