Peamised funktsioonid:
✅ Mõõdab mitmesuguseid keskkonnanäitajaid:
- Temperatuur (nt TMP36 või DHT11)
- Valgustase (fototakisti – LDR)
- Niiskuseandur(uuri ise) jne
✅ Kuvab kõik andurite mõõtmised LCD-ekraanil
- Näiteks: “Temp: 24°C Valgus: 320”
- Reaalajas uuenevad väärtused

#include <LiquidCrystal.h>
int buzzer = 9;
int tempPin = A1; // TMP36
int ldrPin = A0; // LDR (valgusandur)
const int buttonPin = 13;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
pinMode(buzzer, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Кнопка подключена к земле
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("Alarm valmiduses");
delay(1000);
lcd.clear();
}
void loop() {
float tempC = analogRead(tempPin) * 0.160; // TMP36 andmetöötlus
int lightLevel = analogRead(ldrPin);
bool alarmSilenced = digitalRead(buttonPin) == LOW; // Кнопка нажата
Serial.print("Temp: ");
Serial.print(tempC);
Serial.print(" C Light: ");
Serial.println(lightLevel);
// Kuvame alati ekraanile andmed
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(tempC);
lcd.print("C "); // puhastab jäägid
lcd.setCursor(0, 1);
lcd.print("Valgus: ");
lcd.print(lightLevel);
lcd.print(" "); // puhastab jäägid
// Reageerimine ohtudele
if (tempC > 30 || lightLevel < 200) {
if (!alarmSilenced) {
noTone(buzzer); // muusika peatub
alarmSignal(); // mängib ainult kui nupp pole vajutatud
} else {
noTone(buzzer); // vaikib
}
} else {
// Kõik normis – mängib taustamuusikat
tone(buzzer, 440); // A4 toon
delay(200);
noTone(buzzer);
}
delay(500);
}
void alarmSignal() {
tone(buzzer, 1000); delay(100);
noTone(buzzer); delay(100);
tone(buzzer, 1000); delay(100);
noTone(buzzer); delay(100);
tone(buzzer, 1000); delay(300);
noTone(buzzer);
}