سلام و عرض خسته نباشید
من یه سنسور دما و رطوبت am2301 با آردینو uno راه اندازی کردم که دما و رطوبت رو روی یک ال سی دی 2*16 نمایش میده.
حالا من میخواستم که یکم این پروژه رو حرفه ای تر کنم ولی بیشتر از این در توانم نیست
میخوام که بتونم دما و رطوبت دلخواه خودم رو به آردینو بدم و وقتی که دما و رطوبت ثبت شده توسط سنسور به سطح دلخواه من رسید دو عدد رله یکی برای دما و یکی برای رطوبت فعال بشه.
برای مثال: میخوایم که دمای یک گلخونه رو روی دمای 30 درجه و رطوبت 80 درصد نگه داریم مثلا در حالت عادی دمای گلخانه 40 درجه و رطوبتش 50 درصده. خوب ما تعیین کریم که دما باید روی 30 درجه باشه و بالا نره و رطوبت باید روی 80 درصد باشه و پایین نیاد.
پس باید توسط دو تا رله که به آردینو وصله و یکی رو به تهویه کننده ی هوا و یکی رو به رطوبت ساز وصل کردیم دما و رطوبت رو کنترل کنیم.
خوب من توی این پروژه میخوام از سه تا کلید استفاده کنم یکی Set و یکی UP و یکی DOWN.
وفتی دکمه ی set رو یک بار زدم با کلید های UP و DOWN بتونم دمای دلخواهم رو کم و زیاد کنم ، و بار دوم که دکمه ی set رو زدم بتونم رطوبت دلخواهم رو کم و زیاد کنم و وقتی دکمه ی set رو نگه داشتم اطلاعات ذخیره بشه همین
ممنون میشم اگه دوستان مرا راهنمایی کنند.
اینم از کد هایی که تا اینجا تونستم بنویسم:
من یه سنسور دما و رطوبت 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 "); }
دیدگاه