سلام، وقت بخیر
من تو مبحث اردوینو مبتدی هستم و چیز زیادی بلد نیستم ولی برای یک کاری به شدت به اردوینو نیاز دارم.
بزارین اول با یک سوال شروع کنم... میشه با اردوینو Uno چند کار همزمان انجام داد؟ یعنی چند برنامه بدی بهش و برات چند کار همزمان انجام بده؟
اولین و مهم ترین کاری که میخوام انجام بده کنترل رطوبت و دما با سنسور DHT11 و نمایش دما و رطوبت روی صفحه نمایش OLED تک رنگ هستش و اینکه دما و رطوبتو در یک حد مشخصی نگهداره. یعنی به دوتا رله که یکی برای رطوبت ساز هست و یکی دیگه فن متصل بشه و وقتی دما و رطوبت بالا رفت فن شروع کنه به کار کردن و وقتی رطوبت از 75% پایینتر اومد رطوبت ساز رو فعال کنه و فن خاموش باشه.
از اونجایی که تو کد نویسی اردوینو حرفه ای هستم... رفتم سایت های خارجی و یه چرخ زدم و سورس کد وکتابخانه اینو پیدا کردم به شرح زیر(البته دارم سعی میکنم یاد بگیرم ولی این مورد اضطراریه) :
کد:
#include <U8glib.h> // U8glib library
#include <dht.h> // DHT library
#define dht_apin A5 // Analog pin to which the sensor is connected
dht DHT;
/*Uncomment and comment*/
U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9, 8); // DIN=13, CLK=11, CS=10, DC=9, Reset=8
//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9, 8); // DIN=13, CLK=11, CS=10, DC=9, Reset=8
//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8); // DIN=13, CLK=11, CS=10, DC=9, Reset=8
void draw(void)
{
u8g.setFont(u8g_font_fub17r); // select font
u8g.drawStr(0, 20, "Temp: "); // put string of display at position X, Y
u8g.drawStr(0, 60, "Hum: ");
u8g.setPrintPos(72, 20); // set position
u8g.print(DHT.temperature, 0); // display temperature from DHT11 in Celsius
u8g.println("C");
u8g.setPrintPos(60, 60); // set position
u8g.print(DHT.humidity, 0); // display humidity from DHT11
u8g.println("%");
}
void setup(void)
{
}
void loop(void)
{
DHT.read11(dht_apin); // Read apin on DHT11
u8g.firstPage();
do
{
draw();
} while( u8g.nextPage() );
delay(2000); // Delay of 2 sec before accessing DHT11 (min - 2sec)
}
/*END OF FILE*/
این برای همون سنسور و صفحه نمایش هست ولی مشکلی که داره اینه که هیچ کنترلی بر دما و رطوبت نداره، یعنی براش تعریف نشده که وقتی رطوبت بالای 80% رسید (ینی همون مقدار max سنسور) یا دما بالا رفت رله 1 رو فعال کنه تا درصد بیاد پایین و همینطور کمتر شدنی رله 2 رو فعال کنه....
ممنون میشم کمکم کنید اینم اضافه کنم، ولتاژ خود دستکاه ها که ربطی به مشخصات رله نداره؟ 220 هم باشه روشن میکنه؟
کارهای دیگه ای که میخوام انجام بده؛ اضافه کردن یک تایمر برای کنترل رله سوم که برای دستگاه دیگه هست. (روشن کردنش در بازه زمانی مشخص و طولانی مثلا ماهی دوبار به مدت 1 دقیقه)
و اخری وصل شه به سنسور فتوسل که رله 4 رو کنترل کنه برای کنترل لامپ و روشنایی. شب خاموش شه، روز روشن شه
با فعال شدن هر کدوم از عملیات هم رو صفحه OLED اهمی چیزی بنویسه.
و دوتا کلید هم باشه که یکیش خودش روشن شه و دیگری باهاش چیز دیگه رو روشن کنیم و واسه ایناهم نوشته بیاد.
امکانش هست همچین چیزی؟ یا باید چندتا اردوینو بگیرم؟ بنظرم تعداد پین هاش کفایت میکنه
پیشاپیش ممنونم.