This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:smartplant [2023/05/29 12:28] alexandra.badescu |
pm:prj2023:ndrogeanu:smartplant [2023/05/29 23:02] (current) alexandra.badescu |
||
---|---|---|---|
Line 32: | Line 32: | ||
* Breadboard | * Breadboard | ||
- | {{:pm:prj2023:ndrogeanu:hardware_smart_plant.png?200|}} | + | {{:pm:prj2023:ndrogeanu:schema_plant.png?200|}} |
- | {{:pm:prj2023:ndrogeanu:hardware_planta.png?200|}} | + | {{:pm:prj2023:ndrogeanu:poza_plant.jpeg?200|}} |
- | + | ||
- | + | ||
- | + | ||
- | <note tip> | + | |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | |
- | </note> | + | |
===== Software Design ===== | ===== Software Design ===== | ||
- | #include <LiquidCrystal_I2C.h> | + | Zip cod sursa: {{:pm:prj2023:ndrogeanu:proiect_pm_smart_plant.zip?200|}} |
- | #include <dht11.h> | + | |
- | dht11 DHT11; | + | |
- | LiquidCrystal_I2C lcd(0x27,16,2); | + | |
- | int sensorPin = A0; | + | |
- | int buzzerPin = 3; | + | |
- | int sensorValue = 0; | + | |
- | int relayPin = 2; | + | |
- | void setup() { | + | |
- | lcd.init(); | + | |
- | pinMode(sensorPin, INPUT); | + | |
- | pinMode(buzzerPin, OUTPUT); | + | |
- | tone(buzzerPin, 1000, 2000); | + | |
- | pinMode(relayPin, OUTPUT); | + | |
- | Serial.begin(9600); | + | |
- | } | + | |
- | void loop() { | + | |
- | delay(2000); | + | |
- | sensorValue = analogRead(sensorPin); | + | |
- | int chk = DHT11.read(A1); | + | |
- | float moisturePercentage; | + | |
- | float temperature = (float)DHT11.temperature; | + | |
- | float humidity = (float)DHT11.humidity; | + | |
- | moisturePercentage= 100.00 - (sensorValue/1023)*100; | + | |
- | lcd.clear(); | + | |
- | lcd.setCursor(0,0); | + | |
- | lcd.print("Temp:"); | + | |
- | lcd.print(temperature); | + | |
- | lcd.print((char)223); | + | |
- | lcd.print("C"); | + | |
- | lcd.setCursor(0, 1); | + | |
- | lcd.print("Humidity:"); | + | |
- | lcd.print(humidity); | + | |
- | lcd.print("Moisture"); | + | |
- | lcd.print(moisturePercentage); | + | |
- | lcd.print("%"); | + | |
- | if (digitalRead(A0) == HIGH) { | + | |
- | tone(buzzerPin, 440); // A4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 494); // B4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 523); // C4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 587); // D4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 659); // E4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 698); // F4 | + | |
- | delay(1000); | + | |
- | tone(buzzerPin, 784); // G4 | + | |
- | delay(1000); | + | |
- | noTone(buzzerPin); | + | |
- | delay(1000); | + | |
- | digitalWrite(relayPin, HIGH); | + | |
- | //delay(5000); | + | |
- | //digitalWrite(relayPin, LOW); | + | |
- | //delay(5000); | + | |
- | } | + | |
- | } | + | |
<note tip> | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Am folosit biblioteca dht11.h pentru senzorul dht11 si biblioteca LiquidCrystal_I2C.h pentru ecranul LCD 1602 I2C. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Citesc valoarea analogica de la pinul A0, care este conectat la un senzor de umiditate a solului. Citesc temperatura si umiditatea aerului utilizand senzorul DHT11 conectat la pinul A1 si afisez aceste valori pe ecranul LCD. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | Verific starea senzorului de umiditate a solului prin citirea pinului A0. Daca senzorul este activ (starea pinului este HIGH), se activeaza un buzzer care emite o melodie si se activeaza releul care porneste pompa de apa. |
- | * (etapa 3) surse şi funcţii implementate | + | |
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | + | Videoclip: https://www.youtube.com/watch?v=OQWCfkdNruk | |
- | <note tip> | + | |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi s-a parut un proiect foarte interesant, cea mai grea parte mi s-a parut implementarea releului si a pompei. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Bibliotecile folosite: |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | {{:pm:prj2023:ndrogeanu:dht11.zip?200|}} |
- | + | {{:pm:prj2023:ndrogeanu:liquidcrystal_i2c-1.1.2.zip?200|}} | |
- | 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**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 148: | Line 76: | ||
* https://content.arduino.cc/assets/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\\ | * https://content.arduino.cc/assets/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\\ | ||
+ | * https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf | ||
+ | * https://www.elecrow.com/1channel-relay-module10a-p-1048.html | ||
+ | * https://thepihut.com/products/soil-moisture-sensor | ||
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | </note> | ||
<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> |