نمایش نتایج: از 1 به 10 از 27
Like Tree7 لایک

موضوع: کنترل دما و رطوبت با اردوینو Uno ؟؟؟

Hybrid View

  1. #1
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط Smead نمایش پست ها
    سلام، وقت بخیر
    من تو مبحث اردوینو مبتدی هستم و چیز زیادی بلد نیستم ولی برای یک کاری به شدت به اردوینو نیاز دارم.

    بزارین اول با یک سوال شروع کنم... میشه با اردوینو Uno چند کار همزمان انجام داد؟ یعنی چند برنامه بدی بهش و برات چند کار همزمان انجام بده؟
    اولین و مهم ترین کاری که میخوام انجام بده کنترل رطوبت و دما با سنسور DHT11 و نمایش دما و رطوبت روی صفحه نمایش OLED تک رنگ هستش و اینکه دما و رطوبتو در یک حد مشخصی نگهداره. یعنی به دوتا رله که یکی برای رطوبت ساز هست و یکی دیگه فن متصل بشه و وقتی دما و رطوبت بالا رفت فن شروع کنه به کار کردن و وقتی رطوبت از 75% پایینتر اومد رطوبت ساز رو فعال کنه و فن خاموش باشه.
    از اونجایی که تو کد نویسی اردوینو حرفه ای هستم... رفتم سایت های خارجی و یه چرخ زدم و سورس کد وکتابخانه اینو پیدا کردم به شرح زیر(البته دارم سعی میکنم یاد بگیرم ولی این مورد اضطراریه) :
    کد:
    #include <U8glib.h>  // U8glib library
    #include <dht.h>     // DHT library
    
    #define dht_apin A5  // Analog pin to which the sensor is connected
    dht DHT;
                   /*Uncomment and comment*/
    U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9, 8);  // DIN=13, CLK=11, CS=10, DC=9, Reset=8
    //U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9, 8); // DIN=13, CLK=11, CS=10, DC=9, Reset=8
    //U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8); // DIN=13, CLK=11, CS=10, DC=9, Reset=8
    
    void draw(void) 
    {
       u8g.setFont(u8g_font_fub17r);   // select font
       u8g.drawStr(0, 20, "Temp: ");   // put string of display at position X, Y
       u8g.drawStr(0, 60, "Hum: ");
       u8g.setPrintPos(72, 20);        // set position
       u8g.print(DHT.temperature, 0);  // display temperature from DHT11 in Celsius
       u8g.println("C"); 
       u8g.setPrintPos(60, 60);        // set position
       u8g.print(DHT.humidity, 0);     // display humidity from DHT11
       u8g.println("%");
    }
    void setup(void) 
    {
    
    }
    
    void loop(void)
    {
       DHT.read11(dht_apin);  // Read apin on DHT11
       u8g.firstPage();  
       do 
    {
       draw();
    }  while( u8g.nextPage() );
       delay(2000);  // Delay of 2 sec before accessing DHT11 (min - 2sec)
    }
                               /*END OF FILE*/
    این برای همون سنسور و صفحه نمایش هست ولی مشکلی که داره اینه که هیچ کنترلی بر دما و رطوبت نداره، یعنی براش تعریف نشده که وقتی رطوبت بالای 80% رسید (ینی همون مقدار max سنسور) یا دما بالا رفت رله 1 رو فعال کنه تا درصد بیاد پایین و همینطور کمتر شدنی رله 2 رو فعال کنه....
    ممنون میشم کمکم کنید اینم اضافه کنم، ولتاژ خود دستکاه ها که ربطی به مشخصات رله نداره؟ 220 هم باشه روشن میکنه؟

    کارهای دیگه ای که میخوام انجام بده؛ اضافه کردن یک تایمر برای کنترل رله سوم که برای دستگاه دیگه هست. (روشن کردنش در بازه زمانی مشخص و طولانی مثلا ماهی دوبار به مدت 1 دقیقه)

    و اخری وصل شه به سنسور فتوسل که رله 4 رو کنترل کنه برای کنترل لامپ و روشنایی. شب خاموش شه، روز روشن شه
    با فعال شدن هر کدوم از عملیات هم رو صفحه OLED اهمی چیزی بنویسه.
    و دوتا کلید هم باشه که یکیش خودش روشن شه و دیگری باهاش چیز دیگه رو روشن کنیم و واسه ایناهم نوشته بیاد.
    امکانش هست همچین چیزی؟ یا باید چندتا اردوینو بگیرم؟ بنظرم تعداد پین هاش کفایت میکنه
    پیشاپیش ممنونم.
    علیک سلام
    بستگی به تعریفت از همزمانی داره ، یه موقع هست واقعا دوتا کار همزمان انجام میشن اما یه مواقعی هم هست اون دوتا کار تو بازه های زمانی کوتاه و در کنار هم دارن انجام میشن و به نظر میاد واقعا همزمان هستن (وقتی زیاد بهش فکر میکنم گیج میشم )
    آردوینو توی هر بازه زمانی میاد اون دستوراتی که تو بهش میدی رو انجام میده و از اونجایی که تو این دستورات رو معمولا تو یه حلقه تکرار میذاری (loop) هی پشت سر هم اون کارا رو میکنه و از اونجایی که سرعتش نسبتا بالاس به نظر میاد داره اون کار ها رو با هم انجام میده ، تصور کن آردوینو مثل یه آدم کاراش رو انجام میداد و میتونستی سرعتش رو کم کنی ، اول میرفت سنسور رطوبت رو میخوند بعد دما رو بعد میومد نگاه میکرد ببینه حد مجاز مقادیر چقدره بعد قکر میکرد و مقایسه میکرد مقدار ها رو با حد مجاز بعدم تصمیم میگرفت و دستگاه خنک کننده یا گرم کننده رو روشن میکرد حالا همین رو سرعتش رو ببر بالا توی بازه های خیلی کوچیک این کار رو میکنه و چون ما اونقدر سریع نمیبینیم به نظرمون میاد داره همه کار ها رو با هم میکنه
    در مورد کاری هم که میخوای بکنی همین کدی که از brainy کپی کردی خیلی خوبه هرچی هم کم داشت فکر کن خودت جای آردوینو بودی چیکار میکردی و همونو کد کن
    موفق باشی
    اگه مشکل داشتی یه سر بزن به وبلاگ آموزش آردوینو وبلاگ آردوینو | تازه ترین های آردوینو و دنیای فن آوری
    ویرایش توسط siib : 04-21-2016 در ساعت 02:44 PM

  2. #2
    Senior Member
    تاریخ عضویت
    Apr 2016
    نوشته ها
    116
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    علیک سلام
    بستگی به تعریفت از همزمانی داره ، یه موقع هست واقها دوتا کار همزمان انجام میشن اما یه مواقعی هم هست اون دوتا کار تو بازه های زمانی کوتاه و در کنار هم دارن انجام میشن و به نظر میاد واقعا همزمان هستن (وقتی زیاد بهش فکر میکنم گیج میشیم )
    آردوینو توی هر بازه زمانی میاد اون دستوراتی که تو بهش میدی رو انجام میده و از اونجایی که تو این دستورات رو معمولا تو یه حلقه تکرار میذاری (loop) هی پشت سر هم اون کارا رو میکنه و از اونجایی که سرعتش نسبتا بالاس به نظر میاد داره اون کار ها رو با هم انجام میده ، تصور کن آردوینو مثل یه آدم کاراش رو انجام میداد و میتونستی سرعتش رو کم کنی ، اول میرفت سنسور رطوبت رو میخوند بعد دما رو بعد میومد نگاه میکرد ببینه حد مجاز مقادیر چقدره بعد قکر میکرد و مقایسه میکرد مقدار ها رو با حد مجاز بعدم تصمیم میگرفت و دستگاه خنک کننده یا گرم کننده رو روشن میکرد حالا همین رو سرعتش رو ببر بالا توی بازه های خیلی کوچیک این کار رو میکنه و چون ما اونقدر سریع نمیبینیم به نظرمون میاد داره همه کار ها رو با هم میکنه
    در مورد کاری هم که میخوای بکنی همین کدی که از brainy کپی کردی خیلی خوبه هرچی هم کم داشت فکر کن خودت جای آردوینو بودی چیکار میکردی و همونو کد کن
    موفق باشی
    اگه مشکل داشتی یه سر بزن به وبلاگ آموزش آردوینو وبلاگ آردوینو | تازه ترین های آردوینو و دنیای فن آوری
    ممنون از وقتی که گذاشتی
    پس چیزی که میخوام عملا شدنیه؟
    حالا میتونم یکی دو مورد حذف کنم ولی چندتاش ضروریه
    کدوماشو میتونم به راحتی اجرا کنم و چطور؟
    درموردوبلاگ هم اونجارو قبلا بوک مارک کردم عالیه 😊😉
    ممنون

  3. #3
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط Smead نمایش پست ها
    ممنون از وقتی که گذاشتی
    پس چیزی که میخوام عملا شدنیه؟
    حالا میتونم یکی دو مورد حذف کنم ولی چندتاش ضروریه
    کدوماشو میتونم به راحتی اجرا کنم و چطور؟
    درموردوبلاگ هم اونجارو قبلا بوک مارک کردم عالیه ������������
    ممنون
    آره کاملا شدنی هست ،
    منظورت از "کلیدی که خودش روشن میشه" رو نفهمیدم اما بازم هرچی باشه با uno که نباید مشکلی داشته باشی و همش شدنیه ، نمایشگر nokia 5110 مناسبه
    رله هم نمیتونی همینجوری یه رله وصل کنی به آردوینو باید از ماژول رله مخصوص آردوینو استفاده کنی (توان آردوینو اونقدا بالا نیست)
    و اینکه باید رله ت رو جوری انتخاب کنی که متناسب اون 220 ولت اختلاف پتانسیل و جریانت باشه که یه وقت خال نزنه (نچسبه)
    اگه رله مناسب رو پیدا کردی میتونی با رله روی ماژول جایگزین کنی یا با یه درایور ازش استفاده کنی
    اینا همه ش تو وبلاگ هست ، لطفا مطالعه فرمایید

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO