دوستان سلام .
توی یه پروژه دارم دماو رطوبت محیط و سردخانه رو اندازه گیری میکنم ، برای اینکار هم از dht22 ( داخل سردخانه) و dht11 ( داخل محیط) و اردینو مگا استفاده کردم ، سیم بندی و کدها درسته ولی dht22 بعد از تقریبا 12ساعت از کار میفته ، کسی علت رو میدونه ؟؟؟
فاصله زمانی اندازه گیری هم حدود 5 ثانیه است .
دیروز هم یه سنسور جدید خریدم ولی بازم همین مشکل ایجاد شد ، و امروز جای سنسور ها رو عوض کردم یعنی dht11 گذاشتم داخل سردخانه ولی هیچ مشکلی براش پیش نیومده!!!
حتی من برای اطمینان از اینکه نویز محیطیاثری روی اندازه گیری نزاره یه حلقه گذاشتم که اگر یه بار اطلاعات سنسور غلط بود تا 40 بار به فاصله زمانی 5 ثانیه سنسور رو چک کنه . ولی باز هم بی نتیجه بوده .
توی یه پروژه دارم دماو رطوبت محیط و سردخانه رو اندازه گیری میکنم ، برای اینکار هم از dht22 ( داخل سردخانه) و dht11 ( داخل محیط) و اردینو مگا استفاده کردم ، سیم بندی و کدها درسته ولی dht22 بعد از تقریبا 12ساعت از کار میفته ، کسی علت رو میدونه ؟؟؟
فاصله زمانی اندازه گیری هم حدود 5 ثانیه است .
دیروز هم یه سنسور جدید خریدم ولی بازم همین مشکل ایجاد شد ، و امروز جای سنسور ها رو عوض کردم یعنی dht11 گذاشتم داخل سردخانه ولی هیچ مشکلی براش پیش نیومده!!!
کد:
if ((sec % 5) == 0) { Serial.println("dht read"); Tin = dht_22x.readTemperature(); hum_in = dht_22x.readHumidity(); if ((isnan(Tin)) || (isnan(hum_in))) { Serial.println("Failed to read from DHT"); digitalWrite(buzzer , HIGH); do { draw_External_sensor_error(); digitalWrite(alarm , HIGH); delay(1500); u8g2.clear(); digitalWrite(alarm , LOW); delay(500); } while (digitalRead(silent) == 1); digitalWrite(alarm , HIGH); digitalWrite(buzzer , LOW); h = now.hour(); m = now.minute(); y = now.year(); mo = now.month(); d = now.day(); y = y - 2000; char file_name[] = "20000000.txt"; file_name[2] = y / 10 + '0'; file_name[3] = y % 10 + '0' ; file_name[4] = mo / 10 + '0'; file_name[5] = mo % 10 + '0'; file_name[6] = d / 10 + '0'; file_name[7] = d % 10 + '0'; myFile = SD.open(file_name , FILE_WRITE); myFile.print(now.hour(), DEC); myFile.print(":"); myFile.print(now.minute(), DEC); myFile.print("\t "); myFile.println("External Sensor Failed"); myFile.close(); delay(200); u8g2.setFontMode(0); u8g2.setDrawColor(1); u8g2.firstPage(); u8g2.setFont(u8g2_font_helvB12_tf); do { u8g2.drawFrame(1, 1, 126, 62); u8g2.drawStr(4, 3, "Check External"); u8g2.drawStr(4, 18, "Sensor."); } while (u8g2.nextPage()); delay(3000); u8g2.firstPage(); do { u8g2.drawFrame(1, 1, 126, 62); u8g2.drawStr(4, 3, "Please Wait ... "); } while (u8g2.nextPage()); unsigned int g = 0; [COLOR=#ff0000] do[/COLOR] [COLOR=#ff0000] {[/COLOR] [COLOR=#ff0000] Tin = dht_22x.readTemperature();[/COLOR] [COLOR=#ff0000] delay(5000);[/COLOR] [COLOR=#ff0000] g++;[/COLOR] [COLOR=#ff0000] if (g == 40)[/COLOR] { u8g2.firstPage(); u8g2.setFont(u8g2_font_helvR08_tf); do { u8g2.drawFrame(1, 1, 126, 62); u8g2.setCursor(4, 3); u8g2.print("External Sensor Failed."); u8g2.setCursor(4, 13); u8g2.print("Please Turn OFF "); u8g2.setCursor(4, 23); u8g2.print("the Device and "); u8g2.setCursor(4, 33); u8g2.print("Call to Maintenance."); } while (u8g2.nextPage()); [COLOR=#ff0000] while (1);[/COLOR] } [COLOR=#ff0000][FONT=Yekan] } while ((isnan(Tin)) && (isnan(hum_in))); // wait untill new sensor connected[/FONT][/COLOR]
دیدگاه