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

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

Hybrid View

  1. #1
    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. #2
    مدیر گروه
    تاریخ عضویت
    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. #3
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نقل قول نوشته اصلی توسط wolf نمایش پست ها
    سلام
    من میخوام این پروژه رو بسازم ولی مبتدی هستم . اگه میشه قطعاتی که استفاده کردید و همچنین کد برنامه رو به من بدید .
    راستی اگه میشه ی توضیحی هم در مورد اتصال پبین ها به اردینو بهم بدی.
    ممونت میشم اگه کمکم کنی
    من همچین منویی میخوام درست کنم اما نمیدونم از کجا شروع کنم .کپی کردنم بلد نیستم چون ماژول هام فرق میکنه من سنسور دماsht دارم lcd که فرقی نمیکنه بلوتوث ساعت و رله چهار کانال که به زودی 4 کانال دیگه اضافه میشه و یک سنسور فتوسل
    ی منوی تنظیم همچین مدلی میخوام باشه که بشه دستی تنظیم کنی دما رطوبت و....
    کسی هست که کدهایی ک تا الان درست کردم بدم برام منوش بسازه ؟

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

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

SEO by vBSEO