پروژه دماسنج و رطوبت سنج با سنسور DHT11 با میکروکنترلر ATMEGA8 و نمایشگر LCD 2*16 کاراکتری یک پروژه کاربردی و عملی است که به زبان C در نرم افزار کامپایلر کدویژن نوشته شده و در پرتئوس شبیه سازی شده است.
قطعات مورد نیاز برای شبیه سازی این مدار در پرتئوس
- میکروکنترلر ATMEGA8 یا ATMEGA16 (به توضیحات دانلود دقت کنید)
- نمایشگر LCD 2*16
- سنسور دما و رطوبت DHT11
- مقاومت 4.7کیلواهم برای پول آپ سنسور
کتابخانه DHT11 در ورژن های قدیمی پرتئوس وجود ندارد از ورژن زیر برای شبیه سازی یا باز کردن این فایل استفاده کنید:
همچنین برای ویرایش کد نوشته شده برای میکروکنترلر ATMEL AVR ATMEGA8 از نرم افزار زیر استفاده کنید:
همچنین برای ساخت عملی این پروژه و بستن آن روی بردبرد به قطعات زیر نیاز خواهید داشت
- میکروکنترلر ATMEGA8 یا ATMEGA16 (به توضیحات دانلود دقت کنید)
- نمایشگر LCD 2*16
- سنسور دما و رطوبت DHT11
- سیم برد بردی
- مقاومت یک کیلو اهم بین پایه سه و زمین LCD
- مقاومت 4.7کیلواهم برای پول آپ سنسور
- منبع تغذیه 5 ولت (میتونید از USB کامپیوتر ، پرگرامر و یا منبع تغذیه آزمایشگاهی استفاده کنید.)
- برد برد
- پین هدر 40*1 برای لحیم روی پایه هایLCD
- و مقداری حوصله 🙂
فایل های پروژه دماسنج و رطوبت سنج با سنسور DHT11 :::
نکته خیلی مهم: فایل های (سورس پروژه در کدویژن و فایل شبیه سازی در پروتئوس) زیر برای میکروکنترلر مگا16 هستش که در پروتئوس شبیه سازی شده. اول از شبیه ساز استفاده کنید و بعد با قطعات واقعی مدار را ببندید. همچنین لایبری توسط خود من نوشته نشده و برای همین عملکرد مدار در هر شرایطی تضمین شده نیست.
پروژه های بیشتر را از اینجا دانلود کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
آیا برای احداث گل خانه استفاته از PLC بهتر است یا مداراتی از این دست که شما اشاره کرده اید
امنیت در ست کار کردن وبدون خطا بودن( تا حدی) بسیار اهمیت دارد در انجام کار برای کارفرما
سلام PLC بنظرم برای کاربرد های بزرگتر مناسب هست و برای یک گلخانه یک مدار صنعتی بهتر بنظرم جواب میده ! البته دقت کنید مدار باید دقیق برای گلخانه طراحی شده باشه…
سلام مهندس برای استفاده از DHT22 باید چیکار کرد؟
سلام کتابخونه DHT11 را باید در کد جایگزین کرد.
سلام لینک دانلود سورس برنامه نویسی dht11مشکل داره لطفا اصلاح کنید
دوست عزیز لینک دانلود سالم هست . برای دانلود باید عضو سایت باشین . اگر مشکلی بود اطلاع بدید.
با سلام
با تشکر از زحماتتان
اقا من مدار را بستم ولی دما و رطوبت را 0 نشان میدهد (سنسورم نمیدانم که ذرست است یا نه چون یک بار یک کم اب خورد بهش)
مشکل از سنسور است به نظر شما؟
اقا برای DHT22 اگر بخواهیم بزاریم باید ان جاهایی را که DHT11 است را به DHT22 تغییر دهیم؟بی زحمت توضیح دهید؟؟
بعد میخواستم ببینم اگر اخر برنامه چندتا IF بزارم (میخوام همانند ترموستات بشود)که مشکلی ایجاد نمیکند؟؟
ممنون با تشکر
سلام مدار رو بستم ولی چیزی نشان نمیدهد و تو حلقه خواندن ورودی گیر میکند.چکار کنم؟
با سلام ، احتمالا مشکل از سنسور هست . مقاومت pullup را وصل کردین ؟ به پایه های سنسور دقت کنید.
سلام.برنامتون کامل نیست درسته؟ 2 تا فایل تو زیپ گذاشتید که فقط یکیش توش کد هست و اینکه یه سری ثابت تعریف کردید که اصلا تو برنامه استفاده نشد مثل FE و اینکه اصلا مشخص نکردید که lcd به کدام خروجی متصله
با سلام . بله فایل dht11.h را پاک کردیم و در داخل خود برنامه ، فانکشن int read_dht11(int *temp,int *humidity) را کپی کردیم ، در مورد ثابت ها اونا برای پورت سریال بودن که توابعش حذف شدن ، میتونید ثابت های مرتبط با USART را حذف کنید. برای چک کردن پایه های LCD میتونید از قسمت کانفیگ کدویژن ->کتابخونه ها -> قسمت LCD کاراکتری را ببنید و تغییرات را اعمال کنید.
سلام در شبه سازی دما و رطوبت 0 نمایش میده احتمالا یه جای کد ایراد داره؟
چکار کنم؟
از لینک زیر فایل جدید را دانلود کنید :
دانلود
سلام، من یه برد رطوبت سنج رو منتاژ کردم ولی جایی برای بازر توش نبود میخواستم بدونم بازرشو کجای کیت قرار بدم که تا مدار عمل میکنه بازر به صدا در بیاد؟ اگه ممکنه با تلگرام جوابمو بدید به ایمیل و کامپیوتر دسترسی ندارم.
سلام ، بازر اگر برای هشدار های خاصی نیاز دارید باید به یکی از پایه های میکروکنترلر (GPIO) یک بازر با ترانزیستور وصل کنید. لطفا بیشتر توضیح بدید برای چه لازم دارید تا بیشتر توضیح بدم.در ضمن در قسمت بالا تماس با ما سایت ، آیدی تلگرام و راه های تماس دیگر هست.
سلام،من کدویژن و پروتئوس بلد نیستم،میشه خواهش کنم عکس mega8 رو برای من بفرستین🙏
لطفا آموزش راه اندازي سنسور هاي دماي ديگر را هم بذاريد روي سايت
سلام آقا دمت گرم خیلی خوبه.
سلام مهندس
این پروزه رو هم کار کردم و هم پروگرام کردم روی ای سی با مقدار جرئی دما و رطوبت روبا خطا نشون میداد که مهم نبود .فقط میخواستم پورت b رو به عنوان خرویج معرفی کنم مثلا یک چیزی رو روشن کنم این خطا رو میداد .
Error: D:\internet\AVR\d………………..: must declare first in block
امکان داشته باشه منو راهنمایی کنید
سلام ، این خطا برای این هست که متغییر را در جای درستش تعریف نکردید ، باید اول تابع تعریف کنید.
سلام
الان بخوام با mega 8 کار کنه میتونم تغییرش بدم؟
با سلام و تشکر
مدار را ساختم ولی موقع امتحان روی عبارت dhtir می ماند و عبارات بعدی نمایش داده نمی شود
سلام
فایل hex. که در قسمت دانلود سبز رنگ موجود هست مشکلی ندارد؟دوستان امتحان کردند عملی پروژرو؟
سپاس فراوان
سلام، لطفا برای اطمینان از عملکرد پروژه کد را داخل پروتئوس اجرا کنید. اگر مشکلی برخوردید اطلاع بدید و همچنین روی برد بورد هم چک کنید بازم مشکلی داشتین با توضیحات کامل اینجا بفرستید تا بررسی کنیم.
سلام
قربان من شدیدا به مشکل خوردم و لنگ این پروژه هستم
اگر امکانش باشه در واتس اپ یا ایمیل سوال کنم از شما ممنون میشم
بنده با پروتئوس امتحان کردم پاسخ دادم
ولی روی برد برد جواب نگرفتم.
علت های احتمالیو اگه ممکنه بفرمایین من بررسی کنم
سلام،
1- مشکل میتونه از کلاک میکروکنترلر باشه که درست تنظیم نکردین.
2- از مقاومت پول آپ سنسور
3- مشکل میتونه از چین باشه ( میکروکنترلر و سسنور چینی ) البته احتمالش ضعیفه
4- سیسم کشی ها
و در آخر هم مشکل از اینا نبود باید یک کد جدید با لایبری جدید برای پروژه پیدا کنید. میتونید با یک کد دیگه هم تست کنید. مثلا توی همین سایت یکی دوتا پروژه دیگه مثل ” گلخانه هوشمند ” از این سنسور استفاده میکنه دانلود کنید و از کد اون استفاده کنید.
سلام
کد atmega8 داخل فولدر پاک شده و فقط atmega 16 هست.آیا مشکلی داشته که پاک شده؟
امکان آپلود دوباره کد 8 هست؟؟
سلام، متاسفانه برای سال 1395 هست و کدا از روی سیستم پاک شدن…ولی خیلی ساده برید در قسمت کانفیگ کدویژن عوض کنید و در سطر اول کد هم عوض کنید تبدیل میشه به مگا8 و البته به پایه های LCD و سنسور دقت کنید، لازم شد اونا را هم اصلاح کنید.
سلام برنامه نویسی واسه atmmega16 است
سلام این برنامه واسه atemega16 است برنامه a8 بفرست
چطوری میشه این برنامه رو به برنامه دقیق که اعشاری هم داره تغییر داد
مثلا دما باشه 26.5 و رطوبت 50.9
سلام ببخشید چطور میتونم با رسیدن دما و رطوبت به حد مشخص شده یک رله رو قطع و وصل کنم
سلام،
روش ساده: یک دستور شرطی IF بنویسید.
IF TEMPERATURE == 10
Relay = ON
ELSE
Relay = OFF
این روش ساده است و در پروژه ها یک مشکل کوچولو ایجاد میکنه رله هی قطع و وصل میشه. ولی برای شروع خوبه.
روش پیشرفته: اگر بخواهید دما را در یک رنج مشخص یا در یک عدد مشخص نگه دارید باید سراغ کنترلرها بروید. مقاله زیر برای شروع خوبه:
کنترل کننده PID
سلام امکان اش هست به پروژه رله هم اضافه کنید
سلام، در حالت کلی بله امکان اتصال رله وجود داره ولی متاسفانه بدلیل کمبود وقت نمیرسیم کد را ویرایش کنیم. ولی روند کلی کار به شرح زیر است.
یکی از پایه های میکروکنترلر (مثلا PORTA.1) را به عنوان خروجی تعریف کنید:
DDRA.1 = 1
بعد هر جا نیاز بود این پایه را با دستورات زیر خاموش و روشن کنید.
PORTA.1 = 1
روشن میکنه.
PORTA.1=0
خاموش میکنه.
برای تمیزی کد میتونید در بالا برای پایه اسم تعیین کنید. با define# میشه اینکار را کرد.
رله را هم با یک ترانزیستور به این پایه وصل کنید. برای دیدن شماتیک مدارات مشابه دیگر موجود در سایت را چک کنید.
سلام وقتون بخیر
با چه فرکانسی کار میکنه میشه تنظیمات کدویزاردش رو هم بگید
برای دیدن تنظیمات فرکانسش و موارد دیگر میتونید اول پروژه را با نرم افزار کد ویژن باز کنید و بعد از منو Project گزینه Configure را انتخاب کنید. فرکانس فعلی پروژه روی 8مگاهرتز است.
سلام
میشه بجای ال سی دی از سون سگمنت استفاده کرد؟
سلام، بله میشه استفاده کرد ولی باید کد سون سگمنت را بهش اضافه کنید.
خجالت بکش اقای نه به اصطلاح مهندس ما اینقدر وسیله گرفتیم که از رو این پروژه ی مسخره شما استفاده کنیم حالا که برنامه نویسیشو میزنیم میبینیم ماله اتمگا ۱۶ نه اتمگا ۸
سلام، آقا آرمان. ببخشید مدتی قبل کد قبلی را پاک کردم و یک کد جدید را آپلود کردم و یادم نبود به مگا16 هستش. نیازی نیست عصبی بشید و همه چیز را دور بریزید کافیه در برنامه MEGA16 به MEGA8 تبدیل کنید و همچنین در تنظیمات فایل پروژه، و همچنین پایه های ال سی دی را هم برای مگا8 تغییر بدید از محیط گرافیکی تنظیمات پروژه و پایه ای که سنسور وصل شده و مجدد کامپایل کنید و در پرتئوس تست کنید. بازم من عذر خواهی میکنم.
نه شما ببخشید من بد حرف زدم عذرخواهی میکنم
خواهش میکنم اتفاقه دیگه میافته 🙂
سلام خسته نباشید.یکی از دوستان به این مدار احتیاج داره و به من گفته براش بسازم.مشکلی نداره کمی تغییر در برنامه شما بدم و یک خروجی به ان اضافه کنم ؟؟به عنوان نویسنده این برنامه مشکلی ندارید؟؟؟
سلام، مشکلی نداره میتونید استفاده کنید. اگر خواستین کد و مدار اصلاح شده خودتان و تجربیات ساختش را در قسمت دیدگاه های این نوشته میتونید منتشر کنید تا دوستان دیگر هم استفاده کنند.
با تشکر. مدار رو درست کردم و قبل از اون برنامه خودتون رو تست کردم.هیچ مشکلی نداشت و کامل کار میکرد.فقط دوتا حلقه if به برنامه شما اضافه کردم که خروجی رو فعال و غیر فعال کنم.و بخش adc رو هم فعال کردم و یک ولوم برای مدار گذاشتم که مرز فعال شدن خروجی رو بشه تنظیم کرد.و همچنین چون به دما نیاز نداشتیم بخش نمایش دما رو هم حذف کردم.اگر مایل باشید برنامه رو هم براتون میفرستم توی سایتتون بزارید با تشکر♥️
سلام، خیلی هم عالی. ممنون بابت اشتراک تجربه خودتون. اگر علاقمند بودید برام ایمیل (قسمت تماس با ما هستش) کنید تا لینکش را زیر نوشته بذارم. بازم خیلی ممنون
چشم حتما
طراحی pcb و شماتیک همرو میفرستمبراتون
سلام ممنون از توضیحاتتون
من برای پروژم باید یه رطوبت سنج با dht11 و atmega8 درست کنم
همه فایل هایی که قرار دادید هم دانلود کردم اما درست نتونستم شبیه سازی کنم و کد رو برای atmeg8 تغییر بدم متاسفانه تا حالا نه با پروتئوس کار کردم نه با کدویژن
ممنون میشم اگر کسی فایل مربوط به خود 8 رو داره برام ارسال کنه
خیلی خیلی ممنون
سلام یک ایمیل به من بدید من برنامه رو براتون درست میکنم ارسال میکنم
oliver.2001a@gmail.com
سلام
ممنون از سایت خوبتون
راستش من میخوام یه تغییراتی تو برنامه بدم تا این پروژه برای کاری که میخوام انجام بدم مناسبتر بشه
ولی مشکل اینجاست که با کدویژن آشنایی ندارم و بیشتر با بسکام کار کردم
کسی هست برنامه بسکام این پروژه رو داشته باشه(جواب گرفته باشه) بیزحمت برای من ایمیل کنه
mojyou22@gmail.com
با سلام
استاد بنده پروژه شما رو بدون هیچ دستکاری روی برد برد بستم
در زمان شروع به کار و اتصال به برق روی DHT11*melec.ir
گیر میکنه
سلام، احتمالا داخل تابع خواندن از سنسور گیر میکند. چک کنید سنسور درست وصل شده باشد. حتما کلاک میکروکنترلر را چک کنید. در صورت امکان با کد دیگر یا روش دیگری سنسور را تست کنید.
دوتا نکته شاید غیرمرتبط به مشکل: توی پرتئوس شبیه سازی کنید. نظرات بالا را نگاه کلی بندازید شاید قبلا دوستان تجربهای داشتن.
درست شد منم همین مشکلو دارم
سلام
لطفا طریقه استفاده کردنش رو با مگا 8 بگید برنامشو بزارید
سلام من پروزه دماسنج و رطوبت سنج DHT11 را خریدم اما توضیح خط به خط کد ویزن نیست
سلام، ناصر جان از کجا خریدی این رایگان هست که 🙂
سلام وقت بخیر
جناب من میخوام روی همین پروژه ۴ تا کلید بزارم و با این ۴تا کلید دمای دلخواه رو تنظیم کنم و درخروجی هیتر و فن باشه،مثلا بگم اگر دما بین ۲۰تا۳۰ درجه باشه فن و هیتر خاموش و اگر دما کمتر ۲۰ درجه شد ،هیتر روشن بشه و اگر بیشتر ۳۰ درجه شد ،فن روشن بشه
من هر کاری میکنم نمیتونم این ۴تا کلید رو بزارم و خطا میده
ممنون میشم کمکم کنید که برنامه نویسی این ۴تا کلید چطور باشه، کارم خیلی گیره
سلام، راهنمایی برای نوشتن کد که احتمالا خیلی وقت ببره و شاید یک دوست یا همکار بهتر بتونه کمک کنه. ولی پروژههای زیر خیلی کمک میکنن بهتون. کلید هم دارن:
ترموستات دیجیتال با AVR
https://lnkd.in/e2SGaZM
مدار ترموستات با 4 سنسور و 4 رله
https://lnkd.in/edmX_ui
کنترل کننده PID : ساختار ، طرز کار، طراحی و روش های میزان کردن
https://melec.ir/pid-controller
سلام
بنده ساختم ولی اسم سایت فقط رو lcd میاد و کلا همونجا گیر میکنه
مشکل از کجاس ؟
سلام ببخشید چه جوری کد های نوشته شده رو به میکروکنترلر انتقال بدم؟
سلام این پروژه فقط برای روی برد برده
یعنی اگه من بخوام روی فیبر درست کنم قطعات دیگه ای نمیخواد بی زحمت پاسخ بدهید
سلام وقتتون بخیر
من دقیقا همین کد فایل سورس را داخل کد ویژن قرار میدهم و هیچ اروری ندارم ولی وقتی برنامه را داخل پروتئوس ران میکنم، ال سی دی چیزی را نمایش نمی دهد
سلام ببخشید واسه تغذیه از باتری هم میشه استفاده کرد
سلام
توروخدا یکی کدشو برای atmega8 بفرسته
هرکار میکنم درست نمیشه
ایمیل
hosein1231383@gmail.com
ممنونم