سلام و عرض خسته نباشید
من یه سنسور دما و رطوبت 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 ");
}




دیدگاه