[HELP] online monitoring of a switch

part 1

// libraries definition
#include <Wire.h>               // library for wire connection
#include <LiquidCrystal_I2C.h>  // library for I2C LCD
#include "RTClib.h"             // library for real time clock
#include <avr/wdt.h>            // library for default watchdog functions
#include <avr/interrupt.h>      // library for interrupts handling
#include <avr/sleep.h>          // library for sleep
#include <avr/power.h>          // library for power control

// frequency musical notes
#define NOTE_C6  1047
#define NOTE_C3  131
#define NOTE_G3  196
#define NOTE_DS3  156

// pins definition
int levelSensorPin = 0;
int moistureSensorPin = 1;
int audioPin = 2;
int soggyLEDPin = 3;
int moistsoilLEDPin = 4;
int drysoilLEDPin = 5;
int pumpLEDPin = 6;
int pumpPin = 7;
int HSensorVCC = 9;
int LSensorVCC = 10;
int LCDBacklight = 8;

// variables
int levelSensorValue;       // stores the level sensor values
float moistureSensorValue;    // stores the moisture sensor values
int j = 0;
float MP;
int z;
int x;
int Val = 0;

// system messages
const char *string_table[] =
{
  //0
  "     Welcome! :D",
  //1
  "   LOW Water Level",
  //2
  "      Dry soil",
  //3
  "     Moist soil",
  //4
  "     Soggy soil",
  //5
  "The water pump is on",
  //6
  "       BALOOT",
  //7
  "  Watering System",
  //8
  "    Please wait!"
};

// objects definition
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27, 20, 4);

//icon for water droplet
byte Droplet[8] =
{
  B00100,
  B00100,
  B01010,
  B01010,
  B10001,
  B10001,
  B10001,
  B01110,
};


void setup() {

  //wdt function start
  watchdogSetup();

  // serial initialization
  Serial.begin(9600);

  // LCD initialization
  lcd.init();
  lcd.backlight();     // Backlight On
  lcd.clear();         // clearscreen

  // Wire initialization
  Wire.begin();

  //creating LCD Char.
  lcd.createChar(1, Droplet);

  // RTC initialization
  RTC.begin();
  if (!RTC.isrunning()) {
    // date and time adjust as the PC computer date and time
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }

  // Arduino pins initalization
  pinMode(audioPin, OUTPUT);
  pinMode(soggyLEDPin, OUTPUT);
  pinMode(moistsoilLEDPin, OUTPUT);
  pinMode(drysoilLEDPin, OUTPUT);
  pinMode(pumpLEDPin, OUTPUT);
  pinMode(pumpPin, OUTPUT);
  pinMode(HSensorVCC, OUTPUT);
  pinMode(LSensorVCC, OUTPUT);
  pinMode(LCDBacklight, INPUT);

  //initial Pin Values for 9, 10, 7.
  digitalWrite(HSensorVCC, HIGH);
  digitalWrite(LSensorVCC, HIGH);
  digitalWrite(pumpPin, HIGH);

  // LCD initial messages
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(string_table[6]);
  lcd.setCursor(0, 1);
  lcd.print(string_table[7]);
  lcd.setCursor(0, 3);
  lcd.print(string_table[0]);
  wdt_reset();
  // reads the sensors
  levelSensorValue = analogRead(levelSensorPin);
  moistureSensorValue = analogRead(moistureSensorPin);
  // initialization delay
  delay(5000);
}


void loop() {

  //LCD Backlight button
  Val = digitalRead(LCDBacklight);
  while (Val == 1)
  {
    z = 0;
    Serial.println(z);
    Val = digitalRead(LCDBacklight);
  }

  //LCD turn of alarm
  if (z == 8) {
    for (int p = 0; p < 3; p++) {
      tone(audioPin, NOTE_C6, 250);
      delay(150);
    }
    noTone(audioPin);
  }

  lcd.clear();
  lcdbacklightsetting();
  wdt_reset();

  // RTC parameters definition
  DateTime myRTC = RTC.now();
  int H = myRTC.hour();
  int M = myRTC.minute();
  int S = myRTC.second();

  // call Clock Function
  RightHour();

  MP = (((1000 / moistureSensorValue) - 0.984251968) * 100) / 4.0157480315;

  //printing Sensor's values in serial monitoring and LCD
  Serial.println("Moisture is");  //in case of monitoring sensor values
  Serial.println(moistureSensorValue);
  Serial.println("Water Level is:");
  Serial.println(levelSensorValue);
  Serial.println("The Z is:");
  Serial.println(z);
  Serial.println("The X is:");
  Serial.println(x);
  //
  lcd.clear();
  lcd.setCursor(5, 0);
  lcd.write(1);
  lcd.setCursor(7, 0);
  lcd.print(MP);
  lcd.setCursor(12, 0);
  lcd.print("%");
  lcd.setCursor(1, 2);
  lcd.print("The Tank Level is:");
  if (levelSensorValue <= 600) {
    lcd.setCursor(0, 3);
    lcd.print("  The Tank is Full");
  }
  else {
    lcd.setCursor(0, 3);
    lcd.print(string_table[1]);
  }
  delay(2000);

  // if low water level: plays the low level alarm
  if (levelSensorValue > 600) {
    wdt_reset();
    // system messages
    lcd.clear();
    RightHour();
    lcd.setCursor(0, 3);
    lcd.print(string_table[1]);
    // plays the alarm sound
    for (int i = 0; i < 2; i++) {

      //audio alarm
      tone(audioPin, NOTE_G3, 200);
      delay(200);
      tone(audioPin, NOTE_C3, 200);
      delay(200);
      tone(audioPin, NOTE_DS3, 200);

      //LED Alarm
      digitalWrite(pumpLEDPin, HIGH);
      digitalWrite(drysoilLEDPin, HIGH);
      digitalWrite(soggyLEDPin, HIGH);
      digitalWrite(moistsoilLEDPin, HIGH);
      delay(50);
      digitalWrite(pumpLEDPin, LOW);
      digitalWrite(drysoilLEDPin, LOW);
      digitalWrite(soggyLEDPin, LOW);
      digitalWrite(moistsoilLEDPin, LOW);
      delay(50);
      digitalWrite(pumpLEDPin, HIGH);
      digitalWrite(drysoilLEDPin, HIGH);
      digitalWrite(soggyLEDPin, HIGH);
      digitalWrite(moistsoilLEDPin, HIGH);
      delay(50);
      digitalWrite(pumpLEDPin, LOW);
      digitalWrite(drysoilLEDPin, LOW);
      digitalWrite(soggyLEDPin, LOW);
      digitalWrite(moistsoilLEDPin, LOW);
      delay(850);
      noTone(audioPin);
    }
  }

  // check the moisture range
  if (moistureSensorValue >= 750) {
    // in case of dry soil:
    // system messages
    wdt_reset();
    lcd.clear();
    RightHour();
    lcd.setCursor(0, 3);
    lcd.print(string_table[2]);
    // lights up the correct LED
    digitalWrite(drysoilLEDPin, HIGH);
    digitalWrite(moistsoilLEDPin, LOW);
    digitalWrite(soggyLEDPin, LOW);
    // plays the alarm sound
    tone(audioPin, NOTE_C6, 100);
    delay(1000);
    noTone(audioPin);
  }
  if ((moistureSensorValue < 750) && (moistureSensorValue >= 238)) {
    // in case of moist soil:
    // system messages
    wdt_reset();
    lcd.clear();
    RightHour();
    lcd.setCursor(0, 3);
    lcd.print(string_table[3]);
    // lights up the correct LED
    digitalWrite(drysoilLEDPin, LOW);
    digitalWrite(moistsoilLEDPin, HIGH);
    digitalWrite(soggyLEDPin, LOW);
    delay(1000);
  }

exceed 9000 limit
go to part 2 for continue