در این پروژه قصد داریم تا یک دماسنج دیجیتالی بسازیم که علاوه بر نمایش دما بتوانیم دمای محیط را نیز کنترل کنیم. در مدار طراحی شده برای این پروژه، جهت اندازه گیری دما از سنسور دما DS18B20 که یک سنسور دیجیتالی اندازه گیری دما بسیار دقیق می باشد استفاده کردیم. همچنین پس از اندازه گیری دما توسط سنسور دما DS18B20 برای نمایش میزان دمای اندازه گیری شده از ماژول سون سگمنت 4 رقمه TM1637 استفاده شده است.
در طراحی مدار این پروژه یک رله نیز تعبیه شده است که در هنگامیکه دما از مقدار تعیین شده بیشتر شود، رله فعال می شود و تا مادامی که دما از مقدار تعیین شده ما بیشتر باشد رله روشن می ماند.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
سنسور دمای DS18B20 دیجیتال-اورجینال | 1 عدد |
ماژول نمایشگر سون سگمنت 4 رقمی TM1637 | 1 عدد |
ماژول رله 5 ولت مدل 1 کانال | 1 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 5 درصد | 1 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران | 1 عدد |
مرحله اول : اتصال سنسور دما DS18B20 به برد آردوینو
1- ابتدا سنسور دما DS18B20 را همانند تصویر زیر مقابل خود بگیرید.
2- پایه VDD یا VCC سنسور دمای DS18B20 را به پایه دیجیتال شماره 8 برد آردوینو متصل کنید.
3- پایه DQ سنسور دمای DS18B20 را به پایه دیجیتال شماره 9 برد آردوینو متصل کنید.
4- پایه GND سنسور دمای DS18B20 را به پایه دیجیتال شماره 10 برد آردوینو متصل کنید.
5- یک سر مقاومت 4/7 کیلو اهمی را به پایه دیجیتال شماره 8 برد آردوینو متصل کنید.
6- سر دیگر مقاومت 4/7 کیلو اهمی را به پایه دیجیتال شماره 9 برد آردوینو متصل کنید.
مرحله دوم : اتصال کلید به برد آردوینو
از این کلید برای ورود به منوی تنظیمات و تنظیم مقدار دمای دلخواه جهت کنترل دمای محیط بر حسب آن، استفاده می شود. که می توانید آنرا طبق توضیحات و نقشه شماتیک زیر به برد آردوینو متصل کنید.
1- یکی از پایه های تک سوئیچ را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه دیگر تک سوئیچ را به پایه دیجیتال شماره 12 بر روی برد آردوینو متصل کنید.
مرحله سوم : اتصال ماژول رله 5 ولت 1 کانال به برد آردوینو
1- پایه GND ماژول رله را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه +5V یا VCC ماژول رله را به پایه 5V بر روی برد آردوینو متصل کنید.
3- پایه IN ماژول رله را به پایه دیجیتال شماره 5 برد آردوینو متصل کنید.
مرحله چهارم : اتصال ماژول نمایگشر سون سگمنت TM1637
1- پایه GND ماژول سون سگمنت TM1637 را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه VCC ماژول سون سگمنت TM1637را به پایه 3.3V بر روی برد آردوینو متصل کنید.
3- پایه DIO ماژول سون سگمنت TM1637 را به پایه دیجیتال شماره 3 برد آردوینو متصل کنید.
4- پایه CLK ماژول سون سگمنت TM1637 را به پایه دیجیتال شماره 2 برد آردوینو متصل کنید.
مرحله پنجم : نصب کتابخانه TM1637.h در نرم افزار آردوینو
1- نرم افزار آردوینو را بر روی سیستم خود اجرا کنید، اگر بار اول است که با برد Arduino کار می کنید و این نرم افزار را بر روی سیستم خود ندارید، می توانید نرم افزار آردوینو و نحوه نصب آن را از اینجا دریافت نمائید.
2- کتابخانه TM1637.h را از اینجا دانلود کنید.
3- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه Grove_4-Digit_Display را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله ششم : نصب کتابخانه DallasTemperature.h در نرم افزار آردوینو
1- کتابخانه DallasTemperature.h را از اینجا دانلود کنید.
2- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه DallasTemperature را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله هفتم : نصب کتابخانه OneWire.h در نرم افزار آردوینو
1- کتابخانه OneWire.h را از اینجا دانلود کنید.
2- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه OneWire را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله هشتم : پروگرام کردن برنامه بر روی برد آردوینو
1- برد آردوینو را از طریق کابل USB به کامپیوتر متصل کنید.
2- نرم افزار آردوینو را بر روی سیستم خود اجرا کنید، اگر بار اول است که با برد Arduino کار می کنید و این نرم افزار را بر روی سیستم خود ندارید، می توانید نرم افزار آردوینو و نحوه نصب آن را از اینجا دریافت نمائید.
3- پس از اجرای نرم افزار آردوینو، از طریق منوی File بر روی گزینه New کلیک کنید.
4- تمامی کدهای زیر را کپی کنید و در پنجره جدید باز شده بچسبانید (Paste).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
//********************Temp Control Relay int PinRelay = 5; //********************Display int PinClkLcd = 2; int PinDioLcd = 3; #include <TM1637.h> #define CLK PinClkLcd #define DIO PinDioLcd TM1637 Display1(CLK, DIO); //********************Temp int PinVccTemp = 8; int PinDataTemp = 9; int PinGndTemp = 10; #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS PinDataTemp OneWire oneWire(ONE_WIRE_BUS); DallasTemperature Temp(&oneWire); int8_t Digitos[] = {8, 8, 8, 8}; int Temp_IN; int TempSettings = 33; //********************Switch int PinSW = 12; int TimeSW; int TimeDisplay; boolean Key; void setup() { Temp.begin(); Display1.set(7); Display1.init(); Display1.display(Digitos); Display1.point(POINT_OFF); pinMode(PinSW, INPUT_PULLUP); pinMode(PinRelay, OUTPUT); pinMode(PinVccTemp, OUTPUT); pinMode(PinGndTemp, OUTPUT); digitalWrite(PinRelay, HIGH); digitalWrite(PinVccTemp, HIGH); Temp.requestTemperatures(); delay(1000); } void loop() { Temp.requestTemperatures(); Temp_IN = Temp.getTempCByIndex(0); int8_t Digit2 = Temp_IN % 10 ; int8_t Digit1 = (Temp_IN % 100) / 10 ; Digitos[3] = 12 ; Digitos[2] = Digit2 ; Digitos[1] = Digit1 ; Digitos[0] = 19 ; Display1.display(Digitos); while (digitalRead(PinSW) == 0) { TimeSW++; if (TimeSW >= 3000) Settings(); delay(1); } TimeSW = 0; if (Temp_IN > TempSettings) digitalWrite(PinRelay, LOW); if (Temp_IN < TempSettings) digitalWrite(PinRelay, HIGH); } void Settings() { TimeSW = 0; Key = 1; while (true) { TimeSW++; TimeDisplay++; int8_t Digit2 = TempSettings % 10 ; int8_t Digit1 = (TempSettings % 100) / 10 ; if (TimeDisplay < 100) { Digitos[3] = 12 ; Digitos[2] = Digit2 ; Digitos[1] = Digit1 ; } else { Digitos[3] = 19 ; Digitos[2] = 19 ; Digitos[1] = 19 ; } Digitos[0] = 19 ; if (TimeDisplay > 200) TimeDisplay = 0; Display1.display(Digitos); if (digitalRead(PinSW) == 0 && Key == 0) { Key = 1; TimeSW = 0; TempSettings++; if (TempSettings > 99 ) TempSettings = 0; } if (digitalRead(PinSW) == 1 && Key == 1)Key = 0; if (TimeSW >= 3000) break; delay(1); } TimeSW = 0; } |
5- حال از طریق منوی File گزینه Save را انتخاب کنید و برنامه را در محل دلخواه خود ذخیره کنید.
6- پس از ذخیره برنامه از طریق منوی Tools به زیر منوی Board رفته و از لیست کشویی باز شده آیتم Arduino/Genuino Uno را انتخاب کنید.
7- دوباره از طریق همان منوی Tools به زیر منوی Port رفته و از لیست کشویی باز شده شماره پورت USB که از طریق آن برد آردینو به کامپیوتر متصل شده است را انتخاب کنید.
8- در پایان برای انتقال برنامه به برد آردوینو کافیست تا بر روی آیکون در نرم افزار آردوینو در نرم افزار آردوینو کلیک کنید.
مرحله نهم : راه اندازی پروژه
1- برد آردوینو را به صورت کامل از کامپیوتر جدا کنید.
2- توسط یک آداپتور 12 ولت DC با حداقل جریان 500 میلی آمپر برد آردوینو را راه اندازی کنید.
3- در صورتیکه در هنگام ساخت پروژه، تمامی مراحل قبل را به درستی انجام داده باشید باید دمای محیط را بر روی نمایشگر سون سگمنت مشاهده کنید.
4- در حالت پیش فرض مقدار دمای کنترل محیط بر روی عدد 33 درجه سانتی گراد تنظیم شده است. این به این معنا است که اگر دمای محیط از 33 درجه بیشتر شود رله روشن می شود و اگر دما محیط کمتر از 33 درجه شود رله خاموش می شود.
مرحله دهم : تغییر مقدار دمای کنترل محیط
1- کلید فشاری را به مدت 3 ثانیه نگه دارید، تا زمانیکه عدد دمای کنترل فعلی به صورت چشمک زن بر روی نمایشگر سون سگمنت ظاهر شود.
2- حال می توانید با هر بار فشار کلید، مقدار دمای مورد نظر خود را انتخاب کنید.
3- پس از انتخاب دمای مورد نظر برای ذخیره و اعمال تنظیم، تنها کافی است به مدت حداقل 3 ثانیه به کلید دست نزنید.
سلام دوست عزیز
تنها راه ارتباط فعلی ما جهت پشتیبانی فنی همین بخش نظرات است، شما می توانید سوالات خود را در بخش نظرات پروژه مطرح کنید و تا دریافت پاسخ صبور باشید، به دلیل حجم بالای سوالات که همه روزه توسط کاربران مطرح می شود در حال حاضر امکان پاسخگویی به سوالات از طریق تلفن و یا چت آنلاین برایمان مقدور نیست.
من فکر می کنم اخطار پیش روی شما به دلیل عدم نصب صحیح کتابخانه TM1637.h یا کتابخانه DallasTemperature.h در نرم افزار آردوینو است. لطفا کتابخانه نرم افزار آردوینو خود را بررسی کنید و مطمئن شوید هر سه کتابخانه معرفی شده در برنامه به صورت صحیح در نرم افزار آردوینو نصب شده باشند.
سلام خسته نباشید
چرا نمیشه فایل ها رو دانلود کرد؟
با سلام و احترام
لینک دانلود بررسی شد و مشکلی یافت نشد، برای دانلود فایل پروژه ابتدا باید عضو شوید و سپس وارد سایت شوید. همچنین در هنگام دانلود فایل در صورتیکه از ابزار تغییر آی پی استفاده می کنید آنرا غیرفعال کنید.
سلام وقت بخیر
من میخوام همین مدار رو درست کنم ولی قبل اینکه رله در دمای ۳۵ درجه به فن دستور بده که روشن بشه در دمای ۳۴ درجه یه چراغ رو به عنوان هشدار اول روشن کنه بعد فن شروع به کار کنه میشه راهنمای کنید که لامپ رو کجا قرار بدم و کد برنامه نویسی چی هست؟
ممنون میشم کمک کنید🙏🏻🙏🏻
سلام وقتتون بخیر . چگونه فن رو به مدار متصل کنیم ؟
سلام خسته نباشید
میشه توضیح بدید منبع تغذیه ای که به فن وصله رو چجوری باید وصل کرد
با سلام و احترام
پلاریته منفی منبع تغذیه را مستقیم به سیم منفی فن متصل کنید و سپس پلاریته مثبت تغذیه را به پاریه COM (مشترک) رله متصل کنید و در نهایت پایه NO (نرمال باز) رله را به سر مثبت سیم تغذیه فن متصل نمایید.
سلام خسته نباشید
ببخشید برای تنظیم دمای آب هم میشه از این مدار استفاده کرد ؟
با سلام و احترام
بله می توانید، فقط برای اندازه گیری دمای آب، باید حتما از سنسور دمای ضد آب DS18B20 استفاده کنید.