Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:avaduva:andrei.iacob1009 [2025/05/29 15:27]
andrei.iacob1009 [Software Design]
pm:prj2025:avaduva:andrei.iacob1009 [2025/05/29 15:32] (current)
andrei.iacob1009 [Software Design]
Line 341: Line 341:
       checkWater();​       checkWater();​
     }     }
-    delay(1000); //10sec = 10000+    delay(10000); //10sec = 10000
     counter++;     counter++;
     if(counter >= 6) {     if(counter >= 6) {
Line 360: Line 360:
     if (moisture ​ <= 300) {     if (moisture ​ <= 300) {
       water_count++;​       water_count++;​
-      Serial.println(water_count);​+      ​//Serial.println(water_count);​
       if(water_count == 5){//To wait for the water  to go through the pot.       if(water_count == 5){//To wait for the water  to go through the pot.
         watering();         watering();
Line 370: Line 370:
 checkWater() – determină nivelul apei din rezervor. checkWater() – determină nivelul apei din rezervor.
  
 +  //​Ultrasonic Sensor
 +  void  checkWater(){
 +    //Check the water level in the bucket.
 +    digitalWrite(TRIG,​LOW);​
 +    delayMicroseconds(1);​
 +    digitalWrite(TRIG,​HIGH);​
 +    delayMicroseconds(11);​
 +    digitalWrite(TRIG,​LOW);​
 +    duration_us = pulseIn(ECHO,​HIGH);​
 +    if (duration_us > 0)  {
 +      distance = 0.017 * duration_us; ​
 +      Serial.print(distance);​
 +      Serial.println(" ​ cm");
 +      if(distance > 8.4) {
 +        digitalWrite(LED,​ HIGH);
 +      } else {
 +        digitalWrite(LED,​ LOW);
 +      }
 +    }
 +  }
 +  ​
 checkBME280() – citește temperatura,​ umiditatea și presiunea aerului. checkBME280() – citește temperatura,​ umiditatea și presiunea aerului.
  
 +  //BME280
 +  void checkBME280(){
 +    // Get data from BME280 sensor
 +    float t = bme.readTemperature(); ​      // ​ C
 +    float h = bme.readHumidity(); ​         // %
 +    float p = bme.readPressure() ​ / 100.0F; // hPa
 +    Serial.print("​Temperature:"​);​
 +    Serial.println(t);​
 +    Serial.print("​Humidity:"​);​
 +    Serial.println(h);​
 +    Serial.print("​Pressure:"​);​
 +    Serial.println(p);​
 +    Serial.println();​
 +    lcd.setCursor(0,​ 0);
 +    lcd.print(String(t)+"​C ​ ");
 +    lcd.print(String(h)+"​% ​   ");
 +  }
 +  ​
 watering() – controlează udarea efectivă. watering() – controlează udarea efectivă.
  
 +  //Watering
 +  void watering(){
 +    Serial.write("​watering"​);​
 +    digitalWrite(relay,​ HIGH);
 +    delay(2000);​
 +    digitalWrite(relay,​ LOW);
 +    delay(8000);​
 +    completeWatering(); ​
 +  }
 + 
 completeWatering() și playMelody() – afiseaza un mesaj concomitent cu melodia si dupa determina noua valoare a umiditatii. completeWatering() și playMelody() – afiseaza un mesaj concomitent cu melodia si dupa determina noua valoare a umiditatii.
 +  //Music
 +  void completeWatering() {
 +    // Clear LCD and show message
 +    lcd.clear();​
 +    lcd.setCursor(0,​ 0);
 +    lcd.print(" ​  ​Thank ​ you!   "​);​
 +    lcd.setCursor(0,​ 1);
 +    lcd.print(" ​  (^ O ^)/     "​);​
 +    delay(1000);​ // Allow LCD to complete before sound starts
 +    playMelody();​
 +    // After melody, update sensor readings
 +    lcd.clear();​
 +    checkBME280();​
 +    int moisture = analogRead(A0);​
 +    lcd.setCursor(0,​ 1);
 +    lcd.print("​Moisture:​ " + String(moisture));​
 +  }
  
 +  void playMelody() {
 +    tone(PIN, DO, BEAT); delay(BEAT);​
 +    tone(PIN, RE, BEAT); delay(BEAT);​
 +    tone(PIN, MI, 1200); delay(BEAT);​
 +    delay(BEAT * 3);
 +    tone(PIN, RE, BEAT); delay(BEAT);​
 +    tone(PIN, DO, BEAT); delay(BEAT);​
 +    delay(BEAT);​
 +    tone(PIN, DO, BEAT); delay(BEAT);​
 +    tone(PIN, RE, BEAT); delay(BEAT);​
 +    tone(PIN, MI, BEAT); delay(BEAT);​
 +    tone(PIN, RE, BEAT); delay(BEAT);​
 +    tone(PIN, DO, BEAT); delay(BEAT);​
 +    tone(PIN, RE, 1200); delay(BEAT);​
 +    delay(4400);​
 +  }
  
 == Validarea funcționării == == Validarea funcționării ==
pm/prj2025/avaduva/andrei.iacob1009.1748521664.txt.gz · Last modified: 2025/05/29 15:27 by andrei.iacob1009
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0