صفحه 4 از 4 نخستنخست ... 234
نمایش نتایج: از 31 به 37 از 37
Like Tree13 لایک

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

  1. #31
    Junior Member
    تاریخ عضویت
    Jun 2016
    نوشته ها
    16
    نقل قول نوشته اصلی توسط cjmj نمایش پست ها
    سلام
    یه فیلم گرفتم از روش کار کردنش:

    VID_20160211_222004

    کد:
    #include <EEPROM.h>
    #include <Bounce2.h>
    #include <DHT.h>
    #include <LiquidCrystal.h>
    
    #define setBUTTON 13
    #define upBUTTON 12
    #define downBUTTON 11
    #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-5) 
           {
           digitalWrite (temprelay, LOW);
           }
      
       if ((h) >= humiditySetpoint){
       digitalWrite (humidityrelay, LOW);
       }
           else if ((h) <=humiditySetpoint-10)
           {
           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;
      }}
    سلام
    من میخوام این پروژه رو بسازم ولی مبتدی هستم . اگه میشه قطعاتی که استفاده کردید و همچنین کد برنامه رو به من بدید .
    راستی اگه میشه ی توضیحی هم در مورد اتصال پبین ها به اردینو بهم بدی.
    ممونت میشم اگه کمکم کنی

  2. #32
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط wolf نمایش پست ها
    سلام
    من میخوام این پروژه رو بسازم ولی مبتدی هستم . اگه میشه قطعاتی که استفاده کردید و همچنین کد برنامه رو به من بدید .
    راستی اگه میشه ی توضیحی هم در مورد اتصال پبین ها به اردینو بهم بدی.
    ممونت میشم اگه کمکم کنی
    توی این پروژه از موارد زیر استفاده شده :
    ماژول آماده سنسور دما و رطوبت - آب و هوا AM2301/DHT21


    LCD کارکتری 1602 آبی - ال سی دی کاراکتری 16x2 - نمایشگر 2*16 کارکتری - LCD 1602

    http://shop.aftabrayaneh.com/Arduino_UNO_R3.html

    کلید فشاری مینیاتوری - میکرو سوئیچ

    اتصال تک تک اینها جداگانه هست
    شما وصل می کنی ( میتونی از هدر برنامه هم کمک بگیری)

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

    البته علاوه بر اینها یک سری سیم بردبردی هم میخوای
    جستجو - dupo

    اگر قصد دارید این رشته رو ادامه بدید به نظر من از هر کدوم 40 تا بخرید چون زمان هایی پیش میاد که از نون شب واجب ترن

  3. #33
    Junior Member
    تاریخ عضویت
    Nov 2016
    نوشته ها
    1
    من تازه کارم مجبور شدم از کد شما استفاده کنم همه چیز درسته نمیدونم چرا رله فعال نمیشه وقتی دما و رطوبتو تایین میکنی خواهشا جواب منو بدین نیازش دارم

  4. #34
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط aryainz نمایش پست ها
    من تازه کارم مجبور شدم از کد شما استفاده کنم همه چیز درسته نمیدونم چرا رله فعال نمیشه وقتی دما و رطوبتو تایین میکنی خواهشا جواب منو بدین نیازش دارم

    چک کن رله ات سالمه یا نه .
    Vcc و gnd اش رو وصل کن .
    حالا به صورت سخت افزاری چک کن ببین پین تحرکیش رو وقتی با سیم وصل می کنی به گراند رله وصل میشه یا نه .
    اگر وصل شد که یعنی رله ات 0 فعاله و سالمه و برای کد نویسی باید پین دیجیتالی که بهش وصل کردی رو low کنی .

    اگر با گراند گردن پین تحریکش رله وصل نشد دو حالت داره :
    1. رله خرابه
    2. رله 1 فعاله . برای کد نویسی باید پین دیجیتالی که بهش وصل کردی رو hjigh کنی .

    این تست رو بکن . هم از سلامت رله ات مطمئن میشی هم میفهمی 0 فعاله یا 1 فعال .
    لایک کردن

  5. #35
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نقل قول نوشته اصلی توسط wolf نمایش پست ها
    سلام
    من میخوام این پروژه رو بسازم ولی مبتدی هستم . اگه میشه قطعاتی که استفاده کردید و همچنین کد برنامه رو به من بدید .
    راستی اگه میشه ی توضیحی هم در مورد اتصال پبین ها به اردینو بهم بدی.
    ممونت میشم اگه کمکم کنی
    من همچین منویی میخوام درست کنم اما نمیدونم از کجا شروع کنم .کپی کردنم بلد نیستم چون ماژول هام فرق میکنه من سنسور دماsht دارم lcd که فرقی نمیکنه بلوتوث ساعت و رله چهار کانال که به زودی 4 کانال دیگه اضافه میشه و یک سنسور فتوسل
    ی منوی تنظیم همچین مدلی میخوام باشه که بشه دستی تنظیم کنی دما رطوبت و....
    کسی هست که کدهایی ک تا الان درست کردم بدم برام منوش بسازه ؟

  6. #36
    Junior Member
    تاریخ عضویت
    May 2018
    نوشته ها
    2

    ترو خدا به منم کمک کنین بسازم😢

    سلام من اصلا بلد نیستم چطوری سیم بندی شده به منم یاد بدید چطوریه خواهش میکنم🤕

  7. #37
    Junior Member
    تاریخ عضویت
    May 2018
    نوشته ها
    2
    نقل قول نوشته اصلی توسط cjmj نمایش پست ها
    سلام
    یه فیلم گرفتم از روش کار کردنش:

    VID_20160211_222004

    کد:
    #include <EEPROM.h>
    #include <Bounce2.h>
    #include <DHT.h>
    #include <LiquidCrystal.h>
    
    #define setBUTTON 13
    #define upBUTTON 12
    #define downBUTTON 11
    #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-5) 
           {
           digitalWrite (temprelay, LOW);
           }
      
       if ((h) >= humiditySetpoint){
       digitalWrite (humidityrelay, LOW);
       }
           else if ((h) <=humiditySetpoint-10)
           {
           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;
      }}
    منم مبتدی هستم اگه میشه آموزش سیم بندی رو هم قرار بدین ممنون

صفحه 4 از 4 نخستنخست ... 234

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

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

SEO by vBSEO