Mjerenje razine vlažnosti zemlje

Zadatak

Izmjerite razinu vlažnosti zemlje u tegli sa cvijetom. Na Arduino MKR1000 shield spojite senzor vlažnosti i zvučnik. Kada razina vlažnosti padne ispod određene vrijednosti (u ovom primjeru vrijednost je 500), neka zvučnik svira melodiju te obavještava vlasnika da zalije cvijet.

Prikaz spajanja

Senzor vlažnosti spojite na izvod A0.
Zvučnik spojite na izvod 8.

Arduino kod
// definiranje nota
#define NOTE_C4  262
#define NOTE_G3  196
#define NOTE_A3  220
#define NOTE_B3  247

// definiranje melodije
int melodija[] = {
  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, NOTE_B3, NOTE_C4
};

// definiranje vremena trajanja nota
int notaTrajanjaSve[] = {
  4, 8, 8, 4, 4, 4, 4
};

int razinaVlage = 0; // definiranje varijable u koju se pohranjuje očitanje senzora vlažnosti

void setup() {
  
}

void loop() {
  razinaVlage = analogRead(A0); // očitavanje razine vlažnosti i spremanje u odgovarajuću varijablu
  if(razinaVlage < 500){ // vrijednost 500 moguće mijenjati ovisno o željenoj razini vlažnosti zemlje
    for (int nota = 0; nota < 7; nota++) {
      int notaTrajanja = 1000 / notaTrajanjaSve[nota];
      tone(8, melodija[nota], notaTrajanja);
      int pauza = notaTrajanja * 1.30;
      delay(pauza);
      noTone(8);
    }
  }
}