Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:vstoica:rardu_marian.leanca [2024/05/27 03:06]
radu_marian.leanca
pm:prj2024:vstoica:rardu_marian.leanca [2024/05/27 17:18] (current)
radu_marian.leanca [Download]
Line 99: Line 99:
   * bază BC547 -> rezistență 4k7Ω -> D13 - pentru a comanda pompa   * bază BC547 -> rezistență 4k7Ω -> D13 - pentru a comanda pompa
   * colector BC547 -> GND   * colector BC547 -> GND
 +
 +{{:​pm:​prj2024:​vstoica:​electronics_sswp.jpg?​300|}}
 +{{:​pm:​prj2024:​vstoica:​senzor_speaker_sswp.jpeg?​300|}}
 +
 +Atașez și câteva poze din slicer:
 +Ghiveciul exterior:\\
 +{{:​pm:​prj2024:​vstoica:​outer_pot_sswp.png?​300|}}
 +\\
 +Ghiveciul interior:\\
 +{{:​pm:​prj2024:​vstoica:​inner_1_sswp.png?​200|}} {{:​pm:​prj2024:​vstoica:​inner_2_sswp.png?​200|}}
 +\\
 +Baza:\\
 +{{:​pm:​prj2024:​vstoica:​base_sswp.png?​300|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 161: Line 174:
   myDFPlayer.volume(30); ​ // Set volume value (0~30).   myDFPlayer.volume(30); ​ // Set volume value (0~30).
  
-  // Set pin modes +  // Set pin modes using direct register manipulation 
-  ​pinMode(trigPin, OUTPUT); +  ​DDRB |= (1 << DDB1); // pumpPin (PB1/Pin 9) 
-  ​pinMode(echoPin, INPUT); +  ​DDRD |= (1 << DDD7); // waterSensorPower (PD7/Pin 7) 
-  ​pinMode(waterSensorPower,​ OUTPUT); +  ​DDRD |= (1 << DDD6); // soilMoisturePower (PD6/Pin 6) 
-  ​pinMode(soilMoisturePower,​ OUTPUT); +  ​DDRB |= (1 << DDB0); // trigPin (PB0/Pin 8) 
-  ​pinMode(pumpPin, OUTPUT);+  ​DDRB &= ~(1 << DDB1); // echoPin (PB1/Pin 9)
   analogWrite(pumpPin,​ 0);   analogWrite(pumpPin,​ 0);
 } }
Line 217: Line 230:
 void measureDistance() { void measureDistance() {
   // Clear the trigPin   // Clear the trigPin
-  ​digitalWrite(trigPin, LOW);+  ​PORTB &= ~(1 << PORTB0);
   delayMicroseconds(2);​   delayMicroseconds(2);​
  
   // Set the trigPin high for 10 microseconds   // Set the trigPin high for 10 microseconds
-  ​digitalWrite(trigPin, HIGH);+  ​PORTB |= (1 << PORTB0);
   delayMicroseconds(10);​   delayMicroseconds(10);​
-  ​digitalWrite(trigPin, LOW);+  ​PORTB &= ~(1 << PORTB0);
  
   // Read the echoPin and calculate the duration of the pulse   // Read the echoPin and calculate the duration of the pulse
Line 234: Line 247:
 void measureWaterLevel() { void measureWaterLevel() {
   // Power on the water level sensor   // Power on the water level sensor
-  ​digitalWrite(waterSensorPower,​ HIGH);+  ​PORTD |= (1 << PORTD7);
   delay(10);   delay(10);
  
Line 240: Line 253:
  
   // Power off the water level sensor   // Power off the water level sensor
-  ​digitalWrite(waterSensorPower,​ LOW);+  ​PORTD &= ~(1 << PORTD7);
 } }
  
 void measureSoilMoisture() { void measureSoilMoisture() {
   // Power on the soil moisture sensor   // Power on the soil moisture sensor
-  ​digitalWrite(soilMoisturePower,​ HIGH);+  ​PORTD |= (1 << PORTD6);
   delay(10);   delay(10);
  
Line 251: Line 264:
  
   // Power off the soil moisture sensor   // Power off the soil moisture sensor
-  ​digitalWrite(soilMoisturePower,​ LOW);+  ​PORTD &= ~(1 << PORTD6);
 } }
- 
  
 </​code>​ </​code>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
- +{{:​pm:​prj2024:​vstoica:​final_planta.jpg?​300|}}\\ 
-Proiectul acoperă aproape tot ce mi-am propus, totul fiind funcțional mai puțin modulul WiFi, care s-a defectat cu o zi înainte de PM Fair și din păcate nu am găsit altul (fiind și duminică)m(.+Proiectul acoperă aproape tot ce mi-am propus, totul fiind funcțional mai puțin modulul WiFi, care s-a defectat cu o zi înainte de PM Fair și din păcate nu am găsit altul (fiind și duminică)m(. ​Am dat un mic fail și cu una din piesele printate 3D, dar am ciopârțit o cutie și am rezolvat.\\
 Am reușit însă să creez un prototip funcțional și care cu siguranță te face să râzi. Am reușit însă să creez un prototip funcțional și care cu siguranță te face să râzi.
 Proiectul funcționează în felul următor: Proiectul funcționează în felul următor:
Line 264: Line 276:
   * tot la o perioadă de timp se citește și senzorul de nivel de apă, iar dacă nivelul este foarte scăzut și senzorul de proximitate simte o persoană aproape de ghiveci, se pornește un sunet amuzant, astfel reamintindu-i omului să umple rezervorul de apă   * tot la o perioadă de timp se citește și senzorul de nivel de apă, iar dacă nivelul este foarte scăzut și senzorul de proximitate simte o persoană aproape de ghiveci, se pornește un sunet amuzant, astfel reamintindu-i omului să umple rezervorul de apă
 ===== Concluzii ===== ===== Concluzii =====
 +Per total, a fost un proiect foarte fun. Mi-ar fi plăcut să pot duce la bun sfârșit și integrarea cu WiFi (aveam niște planuri mari), dar ca și în viață, nu totul e posibil (nu până în PM Fair cel puținLOL).
 +\\
 +Simt că am învățat multe de pe urma acestui proiect și că am descpoerit un nou hobby.\\
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:prj2024:vstoica:sswp_reg.zip|}}
-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ă ;-). +
- +
-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 ===== +
- +
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​ +
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +  * Resurse Hardware:
 +    * [[https://​www.thingiverse.com/​thing:​3537287|fișiere 3D]]
  
-<​note>​ +  ​* Resurse Software
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +    ​[[https://​projecthub.arduino.cc/Isaac100/​getting-started-with-the-hc-sr04-ultrasonic-sensor-7cabe1|Senzor ultrasunet]] 
-</note> +    * [[https://​www.instructables.com/​How-to-use-a-Water-Level-Sensor-Arduino-Tutorial/|Senzor nivel apă]] 
- +    * [[https://​www.dfrobot.com/​product-599.html|Senzor sol]] 
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html> +    * [[https://​wiki.dfrobot.com/​DFPlayer_Mini_SKU_DFR0299|DFPlayer Mini]]
pm/prj2024/vstoica/rardu_marian.leanca.1716768399.txt.gz · Last modified: 2024/05/27 03:06 by radu_marian.leanca
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0