نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
برای این کار می توانید از 2 روش استفاده کنید روش اول میتونید 2 عدد adc میکرو را اختصاص بدید به دو پتانسیومتر 10 کیلو اهم که با چرخش هریک از این پتانسیومتر ها (ولوم ها) مقدار دما و رطوبت را برای فعال کردن رله ها تعیین کنید. روش دوم هم میتوانید از 2 عدد کلید فشاری استفاده کنید که مقدار را برای فعال کردن رله ها تعیین کنید ، این برای کنترل روی داده های سنسور ها
برای راه اندازی ال سی دی هم میتوانید از 5110 استفاده کنید که راه اندازیش هم برای شما راحت می باشد.
لزومی نداره دستی کنترل بشه میخوام فقط تو کد تعریف کنم براش و خودش انجام بده، صفحه نمایش هم OLED حدودا یک اینچی گرفتم که تک رنگ آبی هستش و فکر نکنم فرق چندانی با 5110 داشته باشه، بنظرم این خوشگلتر بود 😀
به هر حال کد نمایش رو OLED رو بالا گذاشتم و اینم یه کد دیگه برای تعریف کنترل دما و رطوبت، ولی صفحه نمایش این کد فرق میکنه... کدوما رو باید تغییر بدم؟ و چکار کنم که بجای فعال کردن فن، رله رو فعال کنه؟
کد:
#include "DHT.h"
 
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define fan 4
 
int maxHum = 60;
int maxTemp = 40;
 
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  pinMode(fan, OUTPUT);
  Serial.begin(9600); 
  dht.begin();
}
 
void loop() {
  // Wait a few seconds between measurements.
  delay(2000);
 
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  
  if(h > maxHum || t > maxTemp) {
      digitalWrite(fan, HIGH);
  } else {
     digitalWrite(fan, LOW); 
  }
  
  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.println(" *C ");
 
}
البته تو اینجا سنسور DHT22 تعریف شده که دقیق تره