پروژه دماسنج و رطوبت سنج با سنسور DHT11

پروژه دماسنج و رطوبت سنج با سنسور DHT11 با میکروکنترلر ATMEGA8 و نمایشگر LCD 2*16 کاراکتری یک پروژه کاربردی و عملی است  که به زبان C در نرم افزار کامپایلر کدویژن نوشته شده و در پرتئوس شبیه سازی شده است.

پروژه دماسنج و رطوبت سنج با سنسور DHT11

قطعات مورد نیاز برای شبیه سازی این مدار در پرتئوس
  • میکروکنترلر ATMEGA8 یا ATMEGA16 (به توضیحات دانلود دقت کنید)
  • نمایشگر LCD 2*16
  • سنسور دما و رطوبت DHT11
  • مقاومت 4.7کیلواهم برای پول آپ سنسور

پروژه دماسنج و رطوبت سنج با سنسور DHT11

کتابخانه DHT11 در ورژن های قدیمی پرتئوس وجود ندارد از ورژن زیر برای شبیه سازی یا باز کردن این فایل استفاده کنید:

دانلود Proteus

همچنین برای ویرایش کد نوشته شده برای میکروکنترلر ATMEL AVR ATMEGA8 از نرم افزار زیر استفاده کنید:

همچنین برای ساخت عملی این پروژه و بستن آن روی بردبرد به قطعات زیر نیاز خواهید داشت
  • میکروکنترلر ATMEGA8 یا ATMEGA16 (به توضیحات دانلود دقت کنید)
  • نمایشگر LCD 2*16
  • سنسور دما و رطوبت DHT11
  • سیم برد بردی
  • مقاومت یک کیلو اهم بین پایه سه و زمین LCD
  • مقاومت 4.7کیلواهم برای پول آپ سنسور
  • منبع تغذیه 5 ولت (میتونید از USB کامپیوتر ، پرگرامر و یا منبع تغذیه آزمایشگاهی استفاده کنید.)
  • برد برد
  • پین هدر 40*1 برای لحیم روی پایه هایLCD
  • و مقداری حوصله 🙂

پروژه دماسنج و رطوبت سنج با سنسور DHT11

فایل های پروژه دماسنج و رطوبت سنج با سنسور DHT11 :::

نکته خیلی مهم: فایل های (سورس پروژه در کدویژن و فایل شبیه سازی در پروتئوس) زیر برای میکروکنترلر مگا16 هستش که در پروتئوس شبیه سازی شده. اول از شبیه ساز استفاده کنید و بعد با قطعات واقعی مدار را ببندید. همچنین لایبری توسط خود من نوشته نشده و برای همین عملکرد مدار در هر شرایطی تضمین شده نیست.

مطلب پیشنهادی:  ارتباط متلب با میکروکنترلر ( MATLAB+AVR )

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

پروژه های بیشتر را از اینجا دانلود کنید.

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

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

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

65 دیدگاه

  1. آیا برای احداث گل خانه استفاته از PLC بهتر است یا مداراتی از این دست که شما اشاره کرده اید
    امنیت در ست کار کردن وبدون خطا بودن( تا حدی) بسیار اهمیت دارد در انجام کار برای کارفرما

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

      سلام PLC بنظرم برای کاربرد های بزرگتر مناسب هست و برای یک گلخانه یک مدار صنعتی بهتر بنظرم جواب میده ! البته دقت کنید مدار باید دقیق برای گلخانه طراحی شده باشه…

  2. سلام مهندس برای استفاده از DHT22 باید چیکار کرد؟

  3. Khaniimostafa

    سلام لینک دانلود سورس برنامه نویسی dht11مشکل داره لطفا اصلاح کنید

  4. S

    با سلام
    با تشکر از زحماتتان

    اقا من مدار را بستم ولی دما و رطوبت را 0 نشان میدهد (سنسورم نمیدانم که ذرست است یا نه چون یک بار یک کم اب خورد بهش)
    مشکل از سنسور است به نظر شما؟

    اقا برای DHT22 اگر بخواهیم بزاریم باید ان جاهایی را که DHT11 است را به DHT22 تغییر دهیم؟بی زحمت توضیح دهید؟؟

    بعد میخواستم ببینم اگر اخر برنامه چندتا IF بزارم (میخوام همانند ترموستات بشود)که مشکلی ایجاد نمیکند؟؟

    ممنون با تشکر

  5. سعید ابوالحسنی

    سلام مدار رو بستم ولی چیزی نشان نمیدهد و تو حلقه خواندن ورودی گیر میکند.چکار کنم؟

  6. Sadra

    سلام.برنامتون کامل نیست درسته؟ 2 تا فایل تو زیپ گذاشتید که فقط یکیش توش کد هست و اینکه یه سری ثابت تعریف کردید که اصلا تو برنامه استفاده نشد مثل FE و اینکه اصلا مشخص نکردید که lcd به کدام خروجی متصله

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

      با سلام . بله فایل dht11.h را پاک کردیم و در داخل خود برنامه ، فانکشن int read_dht11(int *temp,int *humidity) را کپی کردیم ، در مورد ثابت ها اونا برای پورت سریال بودن که توابعش حذف شدن ، میتونید ثابت های مرتبط با USART را حذف کنید. برای چک کردن پایه های LCD میتونید از قسمت کانفیگ کدویژن ->کتابخونه ها -> قسمت LCD کاراکتری را ببنید و تغییرات را اعمال کنید.

  7. سلام در شبه سازی دما و رطوبت 0 نمایش میده احتمالا یه جای کد ایراد داره؟
    چکار کنم؟

  8. منصور علی پور

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

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

      سلام ، بازر اگر برای هشدار های خاصی نیاز دارید باید به یکی از پایه های میکروکنترلر (GPIO) یک بازر با ترانزیستور وصل کنید. لطفا بیشتر توضیح بدید برای چه لازم دارید تا بیشتر توضیح بدم.در ضمن در قسمت بالا تماس با ما سایت ، آیدی تلگرام و راه های تماس دیگر هست.

  9. لطفا آموزش راه اندازي سنسور هاي دماي ديگر را هم بذاريد روي سايت

  10. سلام آقا دمت گرم خیلی خوبه.

  11. سلام مهندس
    این پروزه رو هم کار کردم و هم پروگرام کردم روی ای سی با مقدار جرئی دما و رطوبت روبا خطا نشون میداد که مهم نبود .فقط میخواستم پورت b رو به عنوان خرویج معرفی کنم مثلا یک چیزی رو روشن کنم این خطا رو میداد .
    Error: D:\internet\AVR\d………………..: must declare first in block
    امکان داشته باشه منو راهنمایی کنید

  12. با سلام و تشکر
    مدار را ساختم ولی موقع امتحان روی عبارت dhtir می ماند و‌ عبارات بعدی نمایش داده نمی شود

  13. سلام
    فایل hex. که در قسمت دانلود سبز رنگ موجود هست مشکلی ندارد؟دوستان امتحان کردند عملی پروژرو؟
    سپاس فراوان

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

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

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

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

          سلام،
          1- مشکل میتونه از کلاک میکروکنترلر باشه که درست تنظیم نکردین.
          2- از مقاومت پول آپ سنسور
          3- مشکل میتونه از چین باشه ( میکروکنترلر و سسنور چینی ) البته احتمالش ضعیفه
          4- سیسم کشی ها
          و در آخر هم مشکل از اینا نبود باید یک کد جدید با لایبری جدید برای پروژه پیدا کنید. میتونید با یک کد دیگه هم تست کنید. مثلا توی همین سایت یکی دوتا پروژه دیگه مثل ” گلخانه هوشمند ” از این سنسور استفاده میکنه دانلود کنید و از کد اون استفاده کنید.

  14. سلام
    کد atmega8 داخل فولدر پاک شده و فقط atmega 16 هست.آیا مشکلی داشته که پاک شده؟
    امکان آپلود دوباره کد 8 هست؟؟

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

      سلام، متاسفانه برای سال 1395 هست و کدا از روی سیستم پاک شدن…ولی خیلی ساده برید در قسمت کانفیگ کدویژن عوض کنید و در سطر اول کد هم عوض کنید تبدیل میشه به مگا8 و البته به پایه های LCD و سنسور دقت کنید، لازم شد اونا را هم اصلاح کنید.

  15. سلام این برنامه واسه atemega16 است برنامه a8 بفرست

  16. چطوری میشه این برنامه رو به برنامه دقیق که اعشاری هم داره تغییر داد
    مثلا دما باشه 26.5 و رطوبت 50.9

  17. سلام ببخشید چطور میتونم با رسیدن دما و رطوبت به حد مشخص شده یک رله رو قطع و وصل کنم

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

      سلام،
      روش ساده: یک دستور شرطی IF بنویسید.
      IF TEMPERATURE == 10
      Relay = ON
      ELSE
      Relay = OFF
      این روش ساده است و در پروژه ها یک مشکل کوچولو ایجاد میکنه رله هی قطع و وصل میشه. ولی برای شروع خوبه.
      روش پیشرفته: اگر بخواهید دما را در یک رنج مشخص یا در یک عدد مشخص نگه دارید باید سراغ کنترلرها بروید. مقاله زیر برای شروع خوبه:
      کنترل کننده PID

  18. سلام امکان اش هست به پروژه رله هم اضافه کنید

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

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

      یکی از پایه های میکروکنترلر (مثلا PORTA.1) را به عنوان خروجی تعریف کنید:
      DDRA.1 = 1
      بعد هر جا نیاز بود این پایه را با دستورات زیر خاموش و روشن کنید.
      PORTA.1 = 1
      روشن میکنه.
      PORTA.1=0
      خاموش میکنه.
      برای تمیزی کد میتونید در بالا برای پایه اسم تعیین کنید. با define# میشه اینکار را کرد.
      رله را هم با یک ترانزیستور به این پایه وصل کنید. برای دیدن شماتیک مدارات مشابه دیگر موجود در سایت را چک کنید.

  19. سلام وقتون بخیر
    با چه فرکانسی کار میکنه میشه تنظیمات کدویزاردش رو هم بگید

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

      برای دیدن تنظیمات فرکانسش و موارد دیگر میتونید اول پروژه را با نرم افزار کد ویژن باز کنید و بعد از منو Project گزینه Configure را انتخاب کنید. فرکانس فعلی پروژه روی 8مگاهرتز است.

  20. سلام
    میشه بجای ال سی دی از سون سگمنت استفاده کرد؟

  21. خجالت بکش اقای نه به اصطلاح مهندس ما اینقدر وسیله گرفتیم که از رو این پروژه ی مسخره شما استفاده کنیم حالا که برنامه نویسیشو میزنیم میبینیم ماله اتمگا ۱۶ نه اتمگا ۸

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

      سلام، آقا آرمان. ببخشید مدتی قبل کد قبلی را پاک کردم و یک کد جدید را آپلود کردم و یادم نبود به مگا16 هستش. نیازی نیست عصبی بشید و همه چیز را دور بریزید کافیه در برنامه MEGA16 به MEGA8 تبدیل کنید و همچنین در تنظیمات فایل پروژه، و همچنین پایه های ال سی دی را هم برای مگا8 تغییر بدید از محیط گرافیکی تنظیمات پروژه و پایه ای که سنسور وصل شده و مجدد کامپایل کنید و در پرتئوس تست کنید. بازم من عذر خواهی میکنم.

  22. سلام خسته نباشید.یکی از دوستان به این مدار احتیاج داره و به من گفته براش بسازم.مشکلی نداره کمی تغییر در برنامه شما بدم و یک خروجی به ان اضافه کنم ؟؟به عنوان نویسنده این برنامه مشکلی ندارید؟؟؟

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

      سلام، مشکلی نداره میتونید استفاده کنید. اگر خواستین کد و مدار اصلاح شده خودتان و تجربیات ساختش را در قسمت دیدگاه های این نوشته میتونید منتشر کنید تا دوستان دیگر هم استفاده کنند.

      • با تشکر. مدار رو درست کردم و قبل از اون برنامه خودتون رو تست کردم.هیچ مشکلی نداشت و کامل کار میکرد.فقط دوتا حلقه if به برنامه شما اضافه کردم که خروجی رو فعال و غیر فعال کنم.و بخش adc رو هم فعال کردم و یک ولوم برای مدار گذاشتم که مرز فعال شدن خروجی رو بشه تنظیم کرد.و همچنین چون به دما نیاز نداشتیم بخش نمایش دما رو هم حذف کردم.اگر مایل باشید برنامه رو هم براتون میفرستم توی سایتتون بزارید با تشکر⁦♥️⁩

  23. سلام ممنون از توضیحاتتون
    من برای پروژم باید یه رطوبت سنج با dht11 و atmega8 درست کنم
    همه فایل هایی که قرار دادید هم دانلود کردم اما درست نتونستم شبیه سازی کنم و کد رو برای atmeg8 تغییر بدم متاسفانه تا حالا نه با پروتئوس کار کردم نه با کدویژن
    ممنون میشم اگر کسی فایل مربوط به خود 8 رو داره برام ارسال کنه
    خیلی خیلی ممنون

  24. سلام
    ممنون از سایت خوبتون
    راستش من میخوام یه تغییراتی تو برنامه بدم تا این پروژه برای کاری که میخوام انجام بدم مناسبتر بشه
    ولی مشکل اینجاست که با کدویژن آشنایی ندارم و بیشتر با بسکام کار کردم
    کسی هست برنامه بسکام این پروژه رو داشته باشه(جواب گرفته باشه) بیزحمت برای من ایمیل کنه
    mojyou22@gmail.com

  25. با سلام
    استاد بنده پروژه شما رو بدون هیچ دستکاری روی برد برد بستم
    در زمان شروع به کار و اتصال به برق روی DHT11*melec.ir
    گیر میکنه

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

      سلام، احتمالا داخل تابع خواندن از سنسور گیر می‌کند. چک کنید سنسور درست وصل شده باشد. حتما کلاک میکروکنترلر را چک کنید. در صورت امکان با کد دیگر یا روش دیگری سنسور را تست کنید.

      دوتا نکته شاید غیرمرتبط به مشکل: توی پرتئوس شبیه سازی کنید. نظرات بالا را نگاه کلی بندازید شاید قبلا دوستان تجربه‌ای داشتن.

    • درست شد منم همین مشکلو دارم

  26. سلام
    لطفا طریقه استفاده کردنش رو با مگا 8 بگید برنامشو بزارید

  27. سلام من پروزه دماسنج و رطوبت سنج DHT11 را خریدم اما توضیح خط به خط کد ویزن نیست

  28. سلام وقت بخیر
    جناب من میخوام روی همین پروژه ۴ تا کلید بزارم و با این ۴تا کلید دمای دلخواه رو تنظیم کنم و درخروجی هیتر و فن باشه،مثلا بگم اگر دما بین ۲۰تا۳۰ درجه باشه فن و هیتر خاموش و اگر دما کمتر ۲۰ درجه شد ،هیتر روشن بشه و اگر بیشتر ۳۰ درجه شد ،فن روشن بشه
    من هر کاری میکنم نمیتونم این ۴تا کلید رو بزارم و خطا میده
    ممنون میشم کمکم کنید که برنامه نویسی این ۴تا کلید چطور باشه، کارم خیلی گیره

  29. سلام
    بنده ساختم ولی اسم سایت فقط رو lcd میاد و کلا همونجا گیر میکنه
    مشکل از کجاس ؟

  30. سلام ببخشید چه جوری کد های نوشته شده رو به میکروکنترلر انتقال بدم؟

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

  32. fa ameli

    سلام وقتتون بخیر
    من دقیقا همین کد فایل سورس را داخل کد ویژن قرار میدهم و هیچ اروری ندارم ولی وقتی برنامه را داخل پروتئوس ران میکنم، ال سی دی چیزی را نمایش نمی دهد

  33. سلام ببخشید واسه تغذیه از باتری هم میشه استفاده کرد

  34. سید حسین موسوی

    سلام
    توروخدا یکی کدشو برای atmega8 بفرسته
    هرکار میکنم درست نمیشه
    ایمیل
    hosein1231383@gmail.com

    ممنونم