This shows you the differences between two versions of the page.
|
pm:prj2023:ndrogeanu:smartplant [2023/05/28 19:52] andreea.badescu [Software Design] |
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> | ||
| - | #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); | + | Zip cod sursa: {{:pm:prj2023:ndrogeanu:proiect_pm_smart_plant.zip?200|}} |
| - | 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 155: | Line 69: | ||
| - 07.05.2023 - Pagina OCW | - 07.05.2023 - Pagina OCW | ||
| - 07.05.2023 - Milestone 1 | - 07.05.2023 - Milestone 1 | ||
| + | - 21.05.2023 - Milestone 2 | ||
| + | - 28.05.2023 - Milestone 3 | ||
| </note> | </note> | ||
| Line 160: | 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> | ||