This shows you the differences between two versions of the page.
pm:prj2025:ccristi:alex.moldoveanu0510 [2025/05/30 08:38] alex.moldoveanu0510 [Hardware Design] |
pm:prj2025:ccristi:alex.moldoveanu0510 [2025/05/30 09:10] (current) alex.moldoveanu0510 [Software Design] |
||
---|---|---|---|
Line 68: | Line 68: | ||
#include "SoftwareSerial.h" | #include "SoftwareSerial.h" | ||
#include "DFRobotDFPlayerMini.h" | #include "DFRobotDFPlayerMini.h" | ||
+ | #include "LiquidCrystal_I2C.h" | ||
+ | |||
+ | // LCD pe adresa 0x27, cu 16 coloane si 2 randuri | ||
+ | |||
+ | LiquidCrystal_I2C lcd(0x27, 16, 2); | ||
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX | SoftwareSerial mySoftwareSerial(10, 11); // RX, TX | ||
DFRobotDFPlayerMini myDFPlayer; | DFRobotDFPlayerMini myDFPlayer; | ||
+ | |||
void printDetail(uint8_t type, int value); | void printDetail(uint8_t type, int value); | ||
+ | |||
int play_in_progress=0; // if = 1 then player is working | int play_in_progress=0; // if = 1 then player is working | ||
+ | |||
const int buttonPin = 2; | const int buttonPin = 2; | ||
const int buttonPin2 = 7; | const int buttonPin2 = 7; | ||
- | const int relayPin = 4; | + | const int relayPin = 2; |
int buttonState = 0; | int buttonState = 0; | ||
Line 95: | Line 103: | ||
digitalWrite(relayPin, HIGH); | digitalWrite(relayPin, HIGH); | ||
| | ||
- | Serial.println(F("Bun venit!")); | + | lcd.begin(); |
+ | lcd.backlight(); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0, 0); | ||
+ | lcd.print("Sistem activ"); | ||
myDFPlayer.begin(mySoftwareSerial); | myDFPlayer.begin(mySoftwareSerial); | ||
Line 119: | Line 131: | ||
digitalWrite(relayPin, HIGH); | digitalWrite(relayPin, HIGH); | ||
+ | |||
+ | lcd.begin(); | ||
+ | lcd.backlight(); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0, 0); | ||
+ | lcd.print("Sistem activ"); | ||
+ | | ||
} | } | ||
Line 136: | Line 155: | ||
if (waterSensor < 100 && lightSensor < 50) { | if (waterSensor < 100 && lightSensor < 50) { | ||
digitalWrite(relayPin, LOW); | digitalWrite(relayPin, LOW); | ||
+ | |||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0, 0); | ||
+ | lcd.print("Udare automata"); | ||
+ | |||
delay(2000); | delay(2000); | ||
digitalWrite(relayPin, HIGH); | digitalWrite(relayPin, HIGH); | ||
Line 150: | Line 174: | ||
manual_watering(); | manual_watering(); | ||
} | } | ||
- | } | + | } |
</code> | </code> | ||
Line 168: | Line 191: | ||
Care au fost rezultatele obţinute în urma realizării proiectului vostru. | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
</note> | </note> | ||
+ | |||
+ | Irigarea s-a realizat automat in functie de umiditatea solului, un senzor analogic declansand pornirea unei pompe de apa printr-un releu, la sesizarea lipsei de lumina data de la fotorezistenta. | ||
+ | |||
+ | Dupa udare, utilizatorul a fost notificat sonor printr-o melodie redata de un buzzer (+ vizual pe LCD). | ||
+ | |||
+ | Sistemul a functionat stabil, fara blocaje, cu afisari corecte si control fiabil al releului, optimizat printr-o logica eficienta de initializare. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul propus ofera o solutie practica si eficienta pentru monitorizarea si udarea automata a plantelor, fara ca utilizatorul sa intervina zilnic. Prin folosirea senzorilor si a componentelor de afisare si control, sistemul poate gestiona parametri importanti precum umiditatea solului, temperatura si nivelul apei. | ||
+ | |||
+ | Proiectul este usor de refacut, adaptabil si poate fi extins. Desi a fost gandit pentru plante de apartament, structura modulara permite folosirea lui si in aplicatii mai complexe, inclusiv in sisteme IoT. | ||
===== Download ===== | ===== Download ===== | ||
Line 193: | Line 225: | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
+ | |||
+ | - Pentru modulul MP3: https://www.instructables.com/Tutorial-of-MP3-TF-16P/ | ||
+ | Cat si datasheetul: https://www.electronicoscaldas.com/datasheet/DFR0299-DFPlayer-Mini-Manual.pdf?srsltid=AfmBOopRyqEZlLLECGWZad9qkzdOQHsyO3ZfRmh8OgPTLugA3A6b7Q1f | ||
+ | |||
+ | - Releu datasheet: https://www.electronicoscaldas.com/datasheet/DFR0299-DFPlayer-Mini-Manual.pdf?srsltid=AfmBOopRyqEZlLLECGWZad9qkzdOQHsyO3ZfRmh8OgPTLugA3A6b7Q1f | ||
+ | |||
+ | - ALPHA TEST: displayul LCD: https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?search_query=lcd+&results=215 | ||
+ |