This is an old revision of the document!
Proiectul constă în realizarea unei mini-sere inteligente cu un sistem automat de irigare și ventilație determinat de factorii de mediu (umiditatea solului, respectiv temperatură), precum și alte două funcționalități extra care facilitează dezvoltarea armonioasă a plantelor. Sera va avea un ecran pe care se va afișa starea curentă a plantelor, dar și un buton pentru pornirea unei melodii ce stimulează creșterea florilor.
Dacă te-ai găsit în situația să nu îti amintești când ai udat ultima dată plantele din casă sau, oricât ai încercat să ai grijă de o floare, aceasta tot nu pare că se simte bine în habitatul ei, o seră inteligentă este ceea ce îți trebuie. Sera utilizează un senzor de umiditate pentru a evalua când trebuie udat solul, declanșând ulterior pompa de apă ce facilitează hidratarea plantelor. Există și un senzor de temperatură care pornește un mic ventilator în interiorul serei pentru a răcori atmosfera. Pentru a face plantele și mai fericite am adăugat un difuzor ce pornește o melodie din muzica clasică, aceasta având un efect benefic asupra creșterii lor. Toți acești factori contribuie la starea de sănatate a plantelor, care va fi prezentată pe un display în exteriorul serei.
Lista pieselor:
Mediu de dezvoltare: Arduino IDE
Biblioteci folosite:
int value = analogRead(A0);
Serial.println(value);
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(1000);
// 1. Pamantul e prea umed pentru starea optima a plantei
if(value < 300) {
digitalWrite(WATER_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("Too much water!!!");
lcd.setCursor(0, 1);
lcd.print("I'm drowning...");
}
// 2. Conditii optime pentru dezvoltarea plantelor
else if (value > 300 && value < 850) {
digitalWrite(WATER_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("I'm happy <3 ");
lcd.setCursor(0, 1);
lcd.print("Perfect soil ");
} else {
// 3. Pamant uscat - se porneste pompa de apa pentru a uda plantele
digitalWrite(WATER_PIN, HIGH);
lcd.setCursor(0, 0);
lcd.print("Drinking water...");
lcd.setCursor(0, 1);
lcd.print("Pretty dry here :( ");
// 4. Pamantul este foarte uscat, deci pompa nu mai functioneaza
// => nu exista apa in rezervor: se va porni o alarma in acest caz
if(value > 1010) {
for (int thisNote = 0; thisNote < notes2; thisNote = thisNote + 2) {
// alarm for extreme soil dryness
// ...
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Refill the tank!!!");
}
}
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.