ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2013/07/12
    76
    54

    راهنمایی جهت تنظیم رطوبت و دمای گلخانه توسط آردینو

    سلام و عرض خسته نباشید
    من یه سنسور دما و رطوبت am2301 با آردینو uno راه اندازی کردم که دما و رطوبت رو روی یک ال سی دی 2*16 نمایش میده.
    حالا من میخواستم که یکم این پروژه رو حرفه ای تر کنم ولی بیشتر از این در توانم نیست
    میخوام که بتونم دما و رطوبت دلخواه خودم رو به آردینو بدم و وقتی که دما و رطوبت ثبت شده توسط سنسور به سطح دلخواه من رسید دو عدد رله یکی برای دما و یکی برای رطوبت فعال بشه.
    برای مثال: میخوایم که دمای یک گلخونه رو روی دمای 30 درجه و رطوبت 80 درصد نگه داریم مثلا در حالت عادی دمای گلخانه 40 درجه و رطوبتش 50 درصده. خوب ما تعیین کریم که دما باید روی 30 درجه باشه و بالا نره و رطوبت باید روی 80 درصد باشه و پایین نیاد.
    پس باید توسط دو تا رله که به آردینو وصله و یکی رو به تهویه کننده ی هوا و یکی رو به رطوبت ساز وصل کردیم دما و رطوبت رو کنترل کنیم.
    خوب من توی این پروژه میخوام از سه تا کلید استفاده کنم یکی Set و یکی UP و یکی DOWN.
    وفتی دکمه ی set رو یک بار زدم با کلید های UP و DOWN بتونم دمای دلخواهم رو کم و زیاد کنم ، و بار دوم که دکمه ی set رو زدم بتونم رطوبت دلخواهم رو کم و زیاد کنم و وقتی دکمه ی set رو نگه داشتم اطلاعات ذخیره بشه همین

    ممنون میشم اگه دوستان مرا راهنمایی کنند.

    اینم از کد هایی که تا اینجا تونستم بنویسم:

    کد:
    #include "Bounce2.h"
    #include "DHT.h"
    #include "LiquidCrystal.h"
    
    #define setBUTTON 13
    #define upBUTTON 12
    #define downBUTTON 11
    
    Bounce setBUTTONDebouncer;
    Bounce upBUTTONDebouncer;
    Bounce downBUTTONDebouncer;
    
    volatile int up = 30;
    
    #define DHTPIN 2
    #define DHTTYPE DHT21
    
    DHT dht(DHTPIN, DHTTYPE);
    LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
    
    const int temprelay = 10;
    const int humidityrelay = 9;
    
    
    void setup() {
     lcd.begin(16, 2);
     lcd.clear();
    
     dht.begin();
    
      setBUTTONDebouncer.attach (setBUTTON);
      setBUTTONDebouncer.interval(50);
      
      upBUTTONDebouncer.attach (upBUTTON);
      upBUTTONDebouncer.interval(50);
    
      downBUTTONDebouncer.attach (downBUTTON);
      downBUTTONDebouncer.interval(50);
    
      
       pinMode (setBUTTON, INPUT_PULLUP);
       pinMode (upBUTTON, INPUT_PULLUP);
       pinMode (downBUTTON, INPUT_PULLUP);
    }
    
    void loop() {
     
    setBUTTONDebouncer.update();
    upBUTTONDebouncer.update();
    downBUTTONDebouncer.update();
    
     
    if (setBUTTONDebouncer.fell ())
    {
      lcd.clear();
      lcd.print("Set Humidity:");
      delay(10000);
      lcd.clear();
    }
    
     if(upBUTTONDebouncer.fell())
     {
     up++;
     
      lcd.setCursor(7,2);
      lcd.print(up);
    
     }
    
      
     
    
     delay(1000);
    
     float h = dht.readHumidity();
     float t = dht.readTemperature();
    
     if (isnan(h) || isnan(t)) {
      lcd.clear();
      lcd.setCursor(1,0);
      lcd.print("Failed to read ");
      lcd.setCursor(0,1);
      lcd.print("from DHT sensor!");
      delay(2000);
      lcd.clear();
      return;
     }
    
     if ((t) >= 28){
     digitalWrite (temprelay, HIGH);
     }
        else if ((t) <= 24) 
        {
        digitalWrite (temprelay, LOW);
        }
     
        if ((h) <= 78){
        digitalWrite (humidityrelay, HIGH);
        }
        else if ((h) >=92)
        {
        digitalWrite (humidityrelay, LOW);
        }
    
     
      lcd.print("Humidity:");
      lcd.setCursor(10,0);
      lcd.print(h);
      lcd.setCursor(15,0);
      lcd.print("%");
      lcd.setCursor(1,1);
      lcd.print("Temp:");
      lcd.setCursor(7,1);
      lcd.print(t);
      lcd.setCursor(12,1);
      lcd.print(" *C ");
    }
  2. #2
    2013/04/09
    1,171
    227

    پاسخ : راهنمایی جهت تنظیم رطوبت و دمای گلخانه توسط آردینو

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...
  3. #3
    2013/07/12
    76
    54

    پاسخ : راهنمایی جهت تنظیم رطوبت و دمای گلخانه توسط آردینو

    نقل قول نوشته اصلی توسط mohammad...
    سلام
    اینطوری که نمیشه کتابخانه ها رو هم قرار بده اگر می خوای زودتر به نتیجه برسی
    دوست عزیز من چند ماه پیش این پست رو گذاشتم و همون موقع ها به نتیجه رسیدم و پروژه رو کامل کردم. اگه خواستنین کدهاش رو با فایل pcb رو قرار میدم.
  4. #4
    2013/04/09
    1,171
    227

    پاسخ : راهنمایی جهت تنظیم رطوبت و دمای گلخانه توسط آردینو

    نقل قول نوشته اصلی توسط cjmj
    دوست عزیز من چند ماه پیش این پست رو گذاشتم و همون موقع ها به نتیجه رسیدم و پروژه رو کامل کردم. اگه خواستنین کدهاش رو با فایل pcb رو قرار میدم.
    سلام
    بله این هم یه سوتی می تونه باشه در کل :rolleyes: اگر تاریخشو می دیدم با احتیاط سوال می پرسیدم :biggrin:
    اگر که قرار بدین به بقیه کاربران عزیز که با اردیونو می خوان شروع کنن کمک بزرگی می کنید
    ممنون از شما

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...
  5. #5
    2013/07/12
    76
    54

    پاسخ : راهنمایی جهت تنظیم رطوبت و دمای گلخانه توسط آردینو

    اینم از کد ها:




    کد:
    #include <EEPROM.h>
    #include <Bounce2.h>
    #include <DHT.h>
    #include <LiquidCrystal.h>
    
    #define setBUTTON 11
    #define upBUTTON 12
    #define downBUTTON 14
    #define DHTPIN 2
    #define DHTTYPE DHT21
    
    Bounce set;
    Bounce up;
    Bounce down;
    
    DHT dht(DHTPIN, DHTTYPE);
    LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
    
    const byte temprelay = 10, humidityrelay = 9;
    byte humiditySetpoint = 85;
    byte tempSetpoint = 20;
    unsigned long prevMillis = 0;
    unsigned long currentmillis = millis();
    static byte prevdownButton;
    static byte prevupButton;
    static byte prevsetButton;
    static byte prevSetMode;
    byte setMode;
    
    void setup() {
    
     lcd.begin(16, 2);
     lcd.clear();
    
     dht.begin();
    
     set.attach (setBUTTON);
     set.interval(30);
     up.attach (upBUTTON);
     up.interval(30);
     down.attach (downBUTTON);
     down.interval(30);
    
     pinMode (setBUTTON, INPUT_PULLUP);
     pinMode (upBUTTON, INPUT_PULLUP);
     pinMode (downBUTTON, INPUT_PULLUP);
    
     humiditySetpoint = EEPROM.read(0);
     tempSetpoint = EEPROM.read(1);
    }
    
    void loop() {
    
     set.update();
     up.update();
     down.update();
    
     float h = dht.readHumidity();
     float t = dht.readTemperature();
    
     if (isnan(h) || isnan(t)) {
      lcd.clear();
      lcd.setCursor(1, 0);
      lcd.print("Failed to read ");
      lcd.setCursor(0, 1);
      lcd.print("from DHT sensor!");
      delay(2000);
      lcd.clear();
      return;
     }
    
     if ((t) >= tempSetpoint) {
      digitalWrite (temprelay, HIGH);
     }
     else if ((t) <= tempSetpoint - 3)
     {
      digitalWrite (temprelay, LOW);
     }
    
     if ((h) >= humiditySetpoint) {
      digitalWrite (humidityrelay, LOW);
     }
     else if ((h) <= humiditySetpoint - 7)
     {
      digitalWrite (humidityrelay, HIGH);
     }
    
     if ( setMode != 0) {
      if (currentmillis - prevMillis >= 10000UL) {
       setMode = 0;
       prevMillis = currentmillis;
      }
     }
    
     if (set.fell()) {
      setMode++;
     }
     prevsetButton = setBUTTON;
    
     if (setMode >= 3) {
      setMode = 0;
     }
     if (setMode != prevSetMode) {
      lcd.clear();
      prevSetMode = setMode;
     }
    
     switch (setMode) {
      case 0://normal
       lcd.print("Humidity:");
       lcd.setCursor(10, 0);
       lcd.print(h);
       lcd.setCursor(15, 0);
       lcd.print("%");
       lcd.setCursor(1, 1);
       lcd.print("Temp:");
       lcd.setCursor(7, 1);
       lcd.print(t);
       lcd.setCursor(12, 1);
       lcd.print(" *C ");
       prevMillis = currentmillis;
       break;
    
      case 1://edit temp
       if ('upButton' != prevupButton) {
        if (up.fell()) {
         tempSetpoint = tempSetpoint + 1;
        }
        prevupButton = 'upButton';
       }
       if ('downButton' != prevdownButton) {
        if (down.fell()) {
         tempSetpoint = tempSetpoint - 1;
        }
        prevdownButton = 'downButton';
       }
       lcd.setCursor(0, 0);
       lcd.print("Set temp:");
       lcd.setCursor(7, 1);
       lcd.print(tempSetpoint);
       lcd.setCursor(9, 1);
       lcd.print("*C");
       EEPROM.write(1, tempSetpoint);
       break;
    
      case 2://edit humidity
       if ('upButton' != prevupButton) {
        if (up.fell()) {
         humiditySetpoint = humiditySetpoint + 1;
        }
        prevupButton = 'upButton';
       }
       if ('downButton' != prevdownButton) {
        if (down.fell()) {
         humiditySetpoint = humiditySetpoint - 1;
        }
        prevdownButton = 'downButton';
       }
       lcd.setCursor(0, 0);
       lcd.print("Set Humidity:");
       lcd.setCursor(7, 1);
       lcd.print(humiditySetpoint);
       lcd.setCursor(9, 1);
       lcd.print("%");
       EEPROM.write(0, humiditySetpoint);
       break;
     }
    }
نمایش نتایج: از 1 به 5 از 5

موضوعات مشابه

  1. سنسور رطوبت و دمای SHT11
    توسط kamyabi در انجمن میکروکنترلرهای AVR
    پاسخ: 15
    آخرين نوشته: 2018/09/24, 00:51
  2. مشکل در شناختن برد آردینو توسط کامپیوتر
    توسط parsafar در انجمن سایر ماژول ها
    پاسخ: 6
    آخرين نوشته: 2017/12/27, 10:25
  3. پاسخ: 20
    آخرين نوشته: 2016/06/23, 20:08
  4. پاسخ: 30
    آخرين نوشته: 2016/04/15, 09:42
  5. کنترل رطوبت در گلخانه از چه سنسور رطوبتی ؟
    توسط adc در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2011/08/22, 14:42

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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