خانه / چگونه بسازیم / الکترونیکی / مدار دستگاه رطوبت سنج با استفاده از میکروکنترلر 8051

مدار دستگاه رطوبت سنج با استفاده از میکروکنترلر 8051

پروژه ای که امروز به شما تقدیم می شود یک دستگاه رطوبت سنج با استفاده از میکرو کنترلر 8051 است. دستگاه های حسگر رطوبت (رطوبت سنج ) به هیگرومتر (Hygrometer) نیز معروف هستند. دستگاه رطوبت سنج این پروژه می تواند رطوبت نسبی (RH) را از حدود 20 درصد تا 95 درصد اندازه گیری کند و این کار را با دقت 5% انجام خواهد داد که بسیار خوب و کاربردی است . اطلاعات رطوبت هوا روی یک نمایشگر LCD 16*2 به نمایش در می آید.

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

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

حسگر یا همان سنسور استفاده شده در این مدار ، حسگر DHT11 است . جزئیات و نحوه کار این حسگر در همین مطلب برای شما توضیح داده شده است .

نحوه کار سنسور DHT11 :

DHT11: سنسور دیجیتال رطوبت / دما سنج
DHT11: سنسور دیجیتال رطوبت / دما سنج

حسگر DHT11 یک سنسور ارزان و کاربردی است که برای سنجش رطوبت – دما  به کار می رود و دارای خروجی دیجیتال است . روش خازنی برای سنجش رطوبت و ترمیستور (Thermistor) برای سنجش دما به کار می رود. دستگاه رطوبت سنج بر اساس این سنسور طراحی شده است ، بنابراین عجیب نیست که بگوییم در واقع این سنسور است که می تواند رطوبت نسبی را در بازه 20% تا 95% اندازه گیری کند و دقتی برابر با 5% داشته باشد.

در مورد کاربرد دمایی این حسگر نیز باید بگوییم دمای اندازه گیری شده توسط حسگر DHT11 می تواند تا 50 درجه سانتی گراد باشد و دقت اندازه گیری سنسور در حد 2 درجه سانتی گراد است .روش ارتباط با این سنسور با میکرو کنترلر به وسیله ارتباط یک سیمی است (Single Wire) و نحوه ارتباط در عکس زیر نشان داده شده است.

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

این نوع ارتباط به ارتباط پس و پیش (to and fro) معروف است ، برقرار کردن ارتباط با حسگر DHT11 خیلی ساده است. پایه شماره 2 حسگر به پایه پورت میکرو کنترلر 8051 وصل شده است .شکل وصل کردن پایه ها در عکس زیر آورده شده است . شایان ذکر است که پایه اطلاعات (PIN2) سنسور DHT11 باید به وسیله یک مقاومت 10 کیلو اهمی به شکل پول آپ (Pull UP) بسته شود. (طبق عکس زیر)

نحوه ارتباط سنسور DHT11 با انواع میکرو کنترلر ها
نحوه ارتباط سنسور DHT11 با انواع میکرو کنترلر ها

توضیحات مدار دستگاه رطوبت سنج :

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

از آنجایی که این حسگر کارایی زیادی دارد ، تصمیم گرفتیم قبل از شروع توضیحات در مورد خود مدار دستگاه ، نحوه ارتباط سنسور DHT11 را با میکرو کنترلر ها برای شما توضیح دهیم.در شروع کار ، میکرو کنترلر باید یک پالس با طول 18 میلی ثانیه برای سنسور DHT11 ارسال کند. بعد از ارسال این سیگنال ، میکرو کنترلر پایه ارتباطی خود را پول آپ (Pull up) می کند و منتظر دریافت جواب DHT11 می ماند. این زمان انتظار بین 2 تا 40 میکرو ثانیه ممکن است طول بکشد.

سپس حسگر DHT11 خط ارتباطی را پول داون (Pull down) می کند و ولتاژ را در سطح پایین (LOW) به مدت 80 میکرو ثانیه نگه می دارد. سپس DHT11 خط ارتباطی را به مدت 80 میکرو ثانیه دیگر در حالت پول آپ یا سطح بالای ولتاژ منطقی (High) نگاه می دارد.سپس بار دیگر حسگر خط ارتباطی را به مدت 50 میکرو ثانیه پول داون (LOW) خواهد کرد. این کار برای این انجام می شود که سنسور اعلام کند که آماده فرستادن نتایج است. پالس های ولتاژ ارسال شده پس از این مدت ، نماینده یک بیت هستند. داده ارسالی هم 8 بیتی است . ولی ما باید منتظر 24 بیت ارسالی باشیم . چرا ؟ در پایین برای شما توضیح داده شده است.

فاصله بین این پالس ها هم به مدت 50 میکرو ثانیه خواهد بود و برای این است که داده ها از هم جدا بوده و به راحتی قابل خواندن توسط میکرو کنترلر باشند. منطق ارسال داده ها به این شکل است : وقتی طول پالس ارسالی از 26 تا 28 میکرو ثانیه باشد یعنی صفر منطقی و وقتی طول پالس ها بیش از 70 میکروثانیه است یعنی یک منطقی .برای این که کارمان راحت تر باشد می توانیم بگوییم ، طول پالس زیر 50 میکروثانیه به معنای صفر و بالای این مقدار به معنای یک خواهد بود.

در ساختنی بخوانید :  با ظرف خرسی عسل چراغ رومیزی مخصوص کودک درست کنید

اولین 8 بیتی ارسالی به این روش همان مقدار عددی رطوبت نسبی (RH) است. دومین هشت بیتی ارسالی هم رقم اعشاری رطوبت نسبی است.سومین و آخرین 8 بیتی ارسالی در واقع مقدار عددی دمای اندازه گیری شده توسط سنسور DHT11 خواهد بود.

برای DHT11 مقدار اعشاری ارسالی همیشه صفر است (شرکت سازنده برای رعایت پروتکل ها این مقدار را از داده ها حذف نکرده است) ما هم در این پروژه دستگاه رطوبت سنج جز مقدار رطوبت نسبی به داده دیگری نیاز نداریم.

پس چیزی که ما قرار است از داده های ارسالی به دست بیاوریم همان 8 بیت اول است که مقدار عددی رطوبت نسبی را نشان می دهد.

نقشه مدار دستگاه رطوبت سنج :

نقشه مدار دستگاه رطوبت سنج با استفاده از میکرو کنترلر 8051 و سنسور DHT11
نقشه مدار دستگاه رطوبت سنج با استفاده از میکرو کنترلر 8051 و سنسور DHT11

سنسور رطوبت DHT11 به پایه P3.1 میکروکنترلر 8051 وصل شده است .میکرو کنترلر 8051 ، معروف ترین تراشه میکرو کنتلر جهان است، در ساختنی چندین پروژه مختلف با استفاده از این IC مانند مدار نشان گر سطح آب قرار دارد . مقاومت R8 نقش همان مقاومت پول آپ برای راه ارتباطی سنسور و میکرو کنترلر 8051 را که در بالا اشاره کردیم بازی می کند.رله (Relay) به وسیله پایه P2.0 میکرو کنترلر کنترل می شود. البته در واقع ترانزیستور Q1 است که در نقش یک سوییچ عمل کرده و رله را فعال می کند (ترانزیستور چگونه کار می کند؟).R0 یک مقاومت پول آپ است و مقاومت R7 هم جریان بیس ترانزیستور Q1 را محدود می کند. D5 یک دیود هرز گرد (Free-Wheeling) است که از ایجاد جریان برگشتی از سیم پیچ رله به مدار جلوگیری می کند.خطوط ارتباطی نمایشگر LCD به پورت یا درگاه صفر میکرو کنترلر 8051 وصل شده اند. خطوط کنترلری مانند RS، R/E و E هم به ترتیب به P2.7 و P2.6 و P2.5 مرتبط شده اند.مقاومت R4 در واقع برای تنظیم کنتراست تصویر روی نمایشگر LCD است . مقاومت R5 هم جریان کشیده شده توسط نور پس زمینه LCD را کنترل می کند. خازن C9 یک خازن بای-پس است (By-Pass Capacitor) .خازن های C8 و C10 و کریستال کوارتز X1 هم برای زمان سنجی میکرو کنترلر استفاده می شوند.خازن C11 ، مقاومت R6 و سوییچ S2 هم مدار ریست کردن کل دستگاه را ایجاد می کنند.

کد برنامه دستگاه رطوبت سنج :

درباره کد برنامه دستگاه رطوبت سنج

پروتکل ارتباطی بین سنسور DHT11 و میکرو کنترلر 8051 را در بالا توضیح دادیم. خروجی داده های حسگر DHT11 به پایه P3.5 میکرو کنترلر وصل شده است . در شروع برنامه (حلقه بی نهایت MAIN) . P3.5 به شکل “بالا” نگه داشته می شود. سپس این پایه به حالت “پاین” در آمده و یک وقفه 18 میلی ثانیه ای ایجاد می گردد (DELAY1) . سپس این پایه دوباره به حالت “بالا” در می آیند. این حرکت همان فرمانی است که برای شروع به کار حسگر DHT11 لازم بود.

در ساختنی بخوانید :  آموزش ساخت پاوربانک بزرگ و مقاوم با باتری لپ تاپ قدیمی

حالا پایه ارتباطی بالا است و میکرو صبر می کند تا پایه ارتباطی به حالت “پایین” در بیاید. وقتی این پایه پایین بود یعنی DHT11 در حالت شروع فرستادن داده ها است .سپس میکرو در انتظار  پالس بالا می ماند. سپس میکرو دوباره به در انتظار حالت “پایین” می ماند. و بعد از این سیگنال دیدگر وقت شروع ارسال داده هاست .

ما در مورد منطق ارسال داده های DHT11 با شما صحبت کردیم . صفر یا یک منطقی بودن داده ارسالی به طول پالس آن بستگی دارد. پس میکرو کنترلر به محض شروع ارسال پالس حاوی اطلاعات ، تایمر 1 را روشن می کند و برنامه منتظر می ماند که پالس پایان یابد. همزمان با پایان پالس برنامه تایمر1 را هم خاموش می کند. حالا ریجستر TL1 در تایمر1 میکرو کنترلر 8051 حاوی اطلاعات طول پالس داده است. این داده از عدد 50 کم می شود. اگر پرچم کری (PSW.7) یا همان قرض گیری روشن باشد. به این معناست که این عدد از 50 میکرو ثانیه کم تر بوده است (صفر منطقی) و اگر روشن نباشد یعنی عدد از 50 میکرو بیشتر بوده است (یک منطقی).

اگر طول پالس از 50 میکرو ثانیه کمتر بوده باشد یا به عبارتی عدد صفر ارسال شده باشد ، ACC.0 صفر می شود. و اگر این عدد یک باشد ACC.0 یک می شود و ریجستر TL1 و PSW.7 خالی می شوند.

این حلقه به تعداد 8 بار ادامه پیدا می کند و هر بار داده های اکومولاتور یک واحد به چپ شیفت داده می شوند تا جا برای ثبت عدد جدید باز شود. چون در هر بار اجرای حلقه ACC.0 به روز می شود و عدد قبلی باید قبل از آن به سمت چپ شیف داده شود تا از بین نرود،از دستور RL برای شیفت دادن داده ها به سمت چپ در هر بار اجرا استفاده شده است .

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

حالا وقت آن است که زیر برنامه DINT برای آماده کردن صفحه نمایشگر LCD و زیر برنامه TEXT1 برای نشان دادن عبارت HYGROMETER فراخوانی شوند.
زیر برنامه بعدی به نام LINE2 برای این است که نشانگر تایپ را به خط دوم نماشیگر ببرد. سپس زیر برنامه HMDTY برای نشان دادن مقدار رطوبت نسبی در خط دوم نمایشگر فرا خوانده می شود. بعد از این زیر برنامه CHECK برای چک کردن این که آیا رطوبت بیش از 65% است یا نه فراخوانی خواهد شد.

اگر رطوبت بیش از %65 درصد باشد ، رله فعال خواهد شد و اگر نه رله غیر فعال خواهد شد. زیربرنامه DELAY2 که یک وقفه دو ثانیه ای ایجاد می کند برای این فراخوانی می شود که پروسه خواندن اطلاعات جدید از سنسور DHT11 به مدت 2 ثانیه بعد از پایان کار دوباره شروع شود. این کار ضروری است زیرا حسگر رطوبت DHT11 می تواند هر دو ثانیه یک بار اطلاعات جدیدی بفرستند و همچنین این کار نمایشگر LCD را پایدار می کند. پس از پایان این وقفه برنامه دوباره به قسمت MAIN جهش کرده و تمامی این پروسه که برای شما توضیح داده شد دوباره از نوع آغاز می گردد.

منبع

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

بیشتر بخوانید:

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

درباره مهرداد جمالی

مهرداد جمالی

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

پیشنهاد می کنیم

دستگاه فیدر یا خوراک دهنده اتوماتیک برای حیوانات خانگی نظیر خرگوش

دستگاه فیدر یا خوراک دهنده اتوماتیک حیوانات خانگی دارای اینترنت اشیا (IoT)

در این ساختنی میخواهیم یک دستگاه فیدر یا خوراک دهنده اتوماتیک و دارای اینترنت اشیا …

۵ دیدگاه ها

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

    • مهرداد جمالی

      با سلام ، کد برنامه نویسی در مطلب موجود است .
      این کد توسط “کامپایلر” (Compiler) به فایل هگز تبدیل شده و سپس توسط “پروگرامر” (Programmer) داخل حافظه میکرو ریخته می شود و برنامه ریزی به اتمام می رسد.
      از آنجایی که فایل هگز چندان قابل تغییر نیست. کد اصلی و قابل خواندن و تغییر و سفارشی سازی در اختیار کاربران قرار گرفته است.

      با تشکر

  2. آقای مهندس سلام
    با عرض معذرت و شرمندگی فراوان مزاحم همیشگی هستم در صورت امکان فایل هگز این برنامه را برایم بفرستید چون اینجا نمی توانند با این کد برنامه را روی میکرو بریزند به هر کجا مراجعه میکنم میگویند حتما باید فایل هگز وجود داشته باشد.
    اگر می توانید همین امروز برایم بگذارید واقعا متشکر خواهم شد .و سوال دیگر اینکه بالای ریسیستورR1 عدد ۵v+ زده شده در صورتی که ما ۸ پایه بیشتر نداریم پس مفهوم این ۵v+ که وصل شده چیست؟
    باعرض معذرت و تشکر

  3. آقای جمالی سلام . با عرض معذرت سوال قبلی را جواب ندادید به خدا قسم من کلی گشتم تا بعد از دو سه هفته وقت گذاشتن توانسته ام ای سی ۸۰۵۱ را پیدا کنم البته خود ۸۰۵۱ را هم نه ، ای سی ۸۹C52 را پیدا کرده ام حالا با این تفاصیل باز هم به مشکل فایل برخورده ام چونکه ساختن یک دماسنج و رطوبت سنج برای کاری که لازم دارم بسیار مهم است ضمنا تمام اجزاء این مدار را هم وصل کرده ام فقط برای ای سی معطل هستم لااقل اگر می توانید یک دماسنج و رطوبت سنج با atmega 8 و dht11 برایم قرار دهید چونکه این ای سی را هم تهیه کردم واز سایت های دیگر این پروژه را ساختم(دماسنج و رطوبت سنج با atmega 8 و dht11 ) ولی نتوانستم جواب بگیرم تا اینکه در سایت شما این پروژه را دیدم و این هم که ….
    حال از شما خواهش میکنم کمکم کنید تا بالاخره بعد از چندین ماه نتیجه ای بگیرم حداقل یک پروژه با atmega 8 و dht11 برایم قرار دهید تا بلکه خستگی این چند ماه را رفع کنم با عرض معذرت که سرتان را درد آوردم . ضمنا این را هم بگویم که از بس سوال و دیدگاه در این مدت برای شما فرستاده ام و جوابی نگرفته ام دیگر خسته شده ام و به ستوه آمده ام.در این شهر ما (کاشان) چونکه نمی توانند همه کاری انجام دهند دیگر تحمل ندارم لااقل شما کمک کنید .
    با تشکر

    • مهرداد جمالی

      با سلام ، فرآیند برنامه ریزی میکرو ۸۰۵۱ کار سختی نیست :
      – برنامه کامپایلر را باز می کنید.
      – کد داده شده درون مطلب را در کامپایلر کپی و پیست می کنید.
      – کد را کامپایل می کنید و در خروجی یک فایل هگز به شما داده می شود.
      – آن را با استفاده از برنامه پروگرامر درون IC می ریزید و تمام.

      حتی برخی از برنامه های کامپایلر خودشان می توانند نقش پروگرامر را هم بازی کنند و نیازی به برنامه دیگری نیست.
      یکی از لینک های دانلود برنامه کامپایلر (تولید هگز) خانواده IC های ۸۰۵۱ اینجاست :
      http://www.8051projects.info/files/assembler.zip
      این هم لینک دانلود پروگرامر خانواده ۸۰۵۱ :
      https://sourceforge.net/projects/mcu8051ide/files/Simple%20serial%20programmer/1.3.2/ssp89s-1.3.2.tar.gz/download

      اما در مورد IC خریداری شده توسط شما و درخواست پروژه :
      این IC در خانواده ۸۰۵۱ قرار دارد و احتمالا مشکلی از بابت برنامه ریزی آن نخواهید داشت. ما هم تلاش می کنیم پروژه در خواستی شما را با تراشه های ATMEGA به زودی در اختیار شما قرار دهیم.

      حوصله به خرج دهید و مطمئن باشید که بر موانع غلبه خواهید کرد و پروژه مورد نظرتان را انجام می دهید. به قول قدیمی ها ، کار نشد ندارد 🙂

      لینک هایی که شاید به دردتان بخورد :
      این مدار دماسنج با استفاده از میکرو های AVR و تراشه LM35 ساخته شده (البته رطوبت سنج ندارد):
      http://saakhtani.ir/archive/1395/11/53012

      این دستگاه دماسنج و رطوبت سنجی است که با آردوینو ساخته شده است :
      http://saakhtani.ir/archive/1396/02/57467

پاسخ دهید