Differences

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

Link to this comparison view

pm:prj2026:alexandru.jipa2803:ema_ioana.banescu [2026/05/22 01:02]
ema_ioana.banescu [Software Design]
pm:prj2026:alexandru.jipa2803:ema_ioana.banescu [2026/05/25 03:15] (current)
ema_ioana.banescu [Bibliografie]
Line 81: Line 81:
  
 ===== Poză cu sistemul ===== ===== Poză cu sistemul =====
-{{https://​i.imgur.com/​8D1D1aN.jpeg?700| Fotografie cu sistemul}}+{{https://​i.imgur.com/​kdkKjA9.jpeg?700| Fotografie cu sistemul}}
  
 ===== Software Design ===== ===== Software Design =====
Line 113: Line 113:
 | <​stdlib.h> ​       | funcții auxiliare standard ​                                 ​ | <​stdlib.h> ​       | funcții auxiliare standard ​                                 ​
 === Funcționalități implementate din laboratoare === === Funcționalități implementate din laboratoare ===
- 
-=== Arhitectura software === 
  
 Sistemul utilizează concepte din mai multe laboratoare:​ Sistemul utilizează concepte din mai multe laboratoare:​
Line 125: Line 123:
   - Întreruperi   - Întreruperi
   - I2C   - I2C
 +
 +=== Arhitectura software ===
  
   * Sistemul utilizează o arhitectură software modulară, construită în jurul unui scheduler, al unor task-uri periodice independente. Spre deosebire de o implementare clasică bazată pe delay(), aplicația folosește o abordare non-blocantă,​ în care fiecare funcționalitate rulează independent,​ la intervale regulate de timp, folosind un timer hardware și funcția uptime_ms().   * Sistemul utilizează o arhitectură software modulară, construită în jurul unui scheduler, al unor task-uri periodice independente. Spre deosebire de o implementare clasică bazată pe delay(), aplicația folosește o abordare non-blocantă,​ în care fiecare funcționalitate rulează independent,​ la intervale regulate de timp, folosind un timer hardware și funcția uptime_ms().
Line 130: Line 130:
   * Această abordare mi-a permis să rulez simultan mai multor componente ale sistemului fără blocarea microcontrollerului. Astfel, sistemul poate:   * Această abordare mi-a permis să rulez simultan mai multor componente ale sistemului fără blocarea microcontrollerului. Astfel, sistemul poate:
  
-- citi periodic senzorii +   - citi periodic senzorii ​\\ 
-- actualiza afișajul LCD +   ​- actualiza afișajul LCD \\ 
-- controla pompa și ventilatorul +   ​- controla pompa și ventilatorul ​\\ 
-- procesa comenzile Bluetooth +   ​- procesa comenzile Bluetooth ​\\ 
-- detecta apăsările butonului +   ​- detecta apăsările butonului ​\\ 
-- trimite informații către aplicația Android.+   ​- trimite informații către aplicația Android. ​\\ 
 +\\
  
   * În centrul sistemului se află Timer0, configurat în modul CTC (Clear Timer on Compare Match), care generează întreruperi periodice și incrementează variabila globală g_millis. Această variabilă este utilizată pentru sincronizarea tuturor task-urilor sistemului.   * În centrul sistemului se află Timer0, configurat în modul CTC (Clear Timer on Compare Match), care generează întreruperi periodice și incrementează variabila globală g_millis. Această variabilă este utilizată pentru sincronizarea tuturor task-urilor sistemului.
Line 306: Line 307:
  
  
-===== Rezultate obținute =====+
 ===== Concluzii ===== ===== Concluzii =====
 +În cadrul acestui proiect am realizat un sistem inteligent pentru monitorizare și irigarea automată a plantelor, lucru foarte util pentru mine și care în același timp a putut fi transformat într-un proiect destul de complex. Proiectul combină partea hardware cu partea software, integrează senzori, actuatoare, dar și o comunicație Bluetooth care face legătura dintre o aplicația mobile și sistem.
 +
 +Pe parcursul dezvoltării m-am distrat foarte mult experimentând cu partea hardware - partea care mi s-a părut și cea mai interesantă,​ întrucât a fost prima dată când am avut ocazia să implementez de la zero un sistem embedded complet și să văd efectiv cum toate componentele ajung să funcționeze împreună. Mi s-a părut foarte satisfăcător momentul în care am reușit să controlez pompa, ventilatorul și LCD-ul direct prin microcontroller și să observ cum sistemul reacționează în timp real la datele venite de la senzori. În același timp, proiectul m-a ajutat să înțeleg mult mai bine conceptele din cadrul laboratoarelor și să văd cum se leagă împreună într-un sistem unitar.
 +
 +Deși pe parcurs au existat și probleme legate de conexiunile hardware (în sepcial la partea bluetooth, dar și în ceea ce privește asigurarea unei funționări corecte d.p.d.v. hardware a pompei submersibile și a motorului DC) și de calibrarea senzorilor, tocmai aceste challenge-uri au făcut proiectul să fie interesant.
 +
 +Aș vrea să extind proiectul prin adăugarea unui modul Wi-Fi și a unui server web, care să vină ca alternativă la aplicația mobilă curentă.
 ===== Cod sursă - GitHub Repository ===== ===== Cod sursă - GitHub Repository =====
 {{https://​github.com/​banescuema101/​SmartPlantPM}} {{https://​github.com/​banescuema101/​SmartPlantPM}}
Line 315: Line 323:
 18 Mai - Primul prototip software, crearea repository-ului pe github. Am avut câteva probleme cu conexiunea bluetooth spre microcontroller și a trebuit să schimb niște legături \\ 18 Mai - Primul prototip software, crearea repository-ului pe github. Am avut câteva probleme cu conexiunea bluetooth spre microcontroller și a trebuit să schimb niște legături \\
 22 Mai - Finalizare software și integrare a aplicației Android \\ 22 Mai - Finalizare software și integrare a aplicației Android \\
-Documentarea ​software-ului pentru pagina ocw este acum in lucru+24 Mai - Am terminat documentarea ​software-ului pentru pagina ocw \\
 ===== Bibliografie ==== ===== Bibliografie ====
 Multe componente au fost comandate de pe website-ul Bitmi, unde la aproape fiecare componentă am găsit și instrucțiuni referitoare la modul în care le pot conecta la Arduino UNO, precum și specificațiile necesare.\\ Multe componente au fost comandate de pe website-ul Bitmi, unde la aproape fiecare componentă am găsit și instrucțiuni referitoare la modul în care le pot conecta la Arduino UNO, precum și specificațiile necesare.\\
Line 321: Line 329:
 [[https://​www.bitmi.ro/​module-electronice/​modul-wireless-esp8266-esp-01-compatibil-arduino-10433.html]] [[https://​www.bitmi.ro/​module-electronice/​modul-wireless-esp8266-esp-01-compatibil-arduino-10433.html]]
 [[https://​www.bitmi.ro/​senzori-electronici/​senzor-de-umiditate-a-solului-higrometru-10461.html]] [[https://​www.bitmi.ro/​senzori-electronici/​senzor-de-umiditate-a-solului-higrometru-10461.html]]
 +
 +Datasheet Arduino UNO R3 (pentru a vedea cum s-au mapat pinii la regiștrii:
 +[[https://​www.alldatasheet.com/​datasheet-pdf/​view/​1943445/​ARDUINO/​ARDUINO-UNO.html]]
 +
 +Si datasheet-urile componentelor:​ \\
 +Senzorul de temperatură:​ [[https://​www.alldatasheet.com/​html-pdf/​2193416/​OSEPP/​DHT11/​1246/​7/​DHT11.html]] \\
 +[[https://​github.com/​eshansurendra/​liquid_crystal_i2c_avr/​blob/​main/​src/​main.c]] \\
 +Modulul bluetooth HC-05: [[https://​components101.com/​sites/​default/​files/​component_datasheet/​HC-05%20Datasheet.pdf]]
 +
  
pm/prj2026/alexandru.jipa2803/ema_ioana.banescu.1779400958.txt.gz · Last modified: 2026/05/22 01:02 by ema_ioana.banescu
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