Differences

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

Link to this comparison view

pm:prj2025:fstancu:andra.ciulinca [2025/05/20 21:23]
florin.stancu
pm:prj2025:fstancu:andra.ciulinca [2025/05/27 18:02] (current)
andra.ciulinca
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip>+
 Dispozitiv pentru a asigura conditiile optime pentru plante (temperatura aerului, umiditate in sol, lumina). Daca toate conditiile sunt implinite, feedback ul este indicat pozitiv pe ecran, altfel se afiseaza conditiile esuate. ​ Dispozitiv pentru a asigura conditiile optime pentru plante (temperatura aerului, umiditate in sol, lumina). Daca toate conditiile sunt implinite, feedback ul este indicat pozitiv pe ecran, altfel se afiseaza conditiile esuate. ​
  
 Scopul proiectului este de a crea un dispozitiv autonom de monitorizare a plantelor, util pentru persoane care doresc să asigure automat condițiile optime de mediu pentru plantele lor, fără a verifica manual fiecare factor. Scopul proiectului este de a crea un dispozitiv autonom de monitorizare a plantelor, util pentru persoane care doresc să asigure automat condițiile optime de mediu pentru plantele lor, fără a verifica manual fiecare factor.
-</​note>​+
  
  
 ===== Descriere ===== ===== Descriere =====
-<note tip>{{:​pm:​prj2025:​fstancu:​schemablock.png?​200|}}</​note>​+{{:​pm:​prj2025:​fstancu:​schemablock.png?​200|}}
  
 ===== Hardware design ===== ===== Hardware design =====
- +Lista de piese:
-<note tip>Lista de piese:+
   *  LCD 1602 cu interfata I2C si Backlight Galben-Verde - [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd+i2c&​results=17|External Link]]   *  LCD 1602 cu interfata I2C si Backlight Galben-Verde - [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd+i2c&​results=17|External Link]]
   *  Senzor de temperatura si umiditate a aerului - [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-temperatura/​584-senzor-de-temperatura-dht11.html?​search_query=senzor+temperatura&​results=253|External Link]]   *  Senzor de temperatura si umiditate a aerului - [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-temperatura/​584-senzor-de-temperatura-dht11.html?​search_query=senzor+temperatura&​results=253|External Link]]
Line 45: Line 44:
       * Conectat la (+) si (-) pe breadboard       * Conectat la (+) si (-) pe breadboard
       * Am facut si un divizor de tensiune folosind o tensiune de 1kohm conectata la pinul analog A3 (firul albastru)       * Am facut si un divizor de tensiune folosind o tensiune de 1kohm conectata la pinul analog A3 (firul albastru)
-</​note>​+
  
 ===== Schema Hardware ===== ===== Schema Hardware =====
-<note tip>+
 {{:​pm:​prj2025:​fstancu:​plantstatuscheck.png?​200|}} {{:​pm:​prj2025:​fstancu:​plantstatuscheck.png?​200|}}
 {{:​pm:​prj2025:​fstancu:​plantstatuscheckscema.png?​200|}} {{:​pm:​prj2025:​fstancu:​plantstatuscheckscema.png?​200|}}
  
 In schema atasata senzorul de temperatura nu este DHT(cel folosit in implementare),​ dar conectarea este facuta conform schemei reale, cu DHT. In schema atasata senzorul de temperatura nu este DHT(cel folosit in implementare),​ dar conectarea este facuta conform schemei reale, cu DHT.
-</​note>​+
  
 ===== Implementare ===== ===== Implementare =====
-<note tip>+
 {{:​pm:​prj2025:​fstancu:​plantstatuscheckimplementare.jpeg?​200|}} {{:​pm:​prj2025:​fstancu:​plantstatuscheckimplementare.jpeg?​200|}}
  
 Pe ecran se afiseaza parametrii care nu sunt respecta conditiile impuse exemplu: "​Probleme:​ Sol Lumina"​ sau "​Conditii optime Planta OK", daca totul este in regula. Pe ecran se afiseaza parametrii care nu sunt respecta conditiile impuse exemplu: "​Probleme:​ Sol Lumina"​ sau "​Conditii optime Planta OK", daca totul este in regula.
-</​note>​+
  
  
 ===== Software design ===== ===== Software design =====
-<note tip>Descrierea codului aplicaţiei (firmware):+Descrierea codului aplicaţiei (firmware):
   * Mediu de dezvoltare: Arduino IDE   * Mediu de dezvoltare: Arduino IDE
   * Librării şi surse 3rd-party: “Wire.h”,​ “LiquidCrystal_I2C.h”   * Librării şi surse 3rd-party: “Wire.h”,​ “LiquidCrystal_I2C.h”
-</​note>​+În această etapă, am implementat complet funcționalitatea de bază pentru monitorizarea și afișarea condițiilor optime pentru o plantă. Codul: 
 + 
 +Citește datele de la trei senzori: de temperatură și umiditate (DHT11), umiditate a solului și lumină ambientală. 
 + 
 +Evaluează dacă fiecare parametru se află într-un interval optim. 
 + 
 +Afișează mesaje corespunzătoare pe un ecran LCD I2C în funcție de starea curentă. 
 + 
 +Salvează ultimele 5 stări măsurate și le afișează ciclic, la intervale de timp mai mari, fără a deranja afișajul principal. 
 + 
 +Oferă feedback serial în UART pentru monitorizarea valorilor în timp real. 
 + 
 +  * Motivația alegerii bibliotecilor 
 +Wire.h – permite comunicarea I2C între placa principală și afișajul LCD. 
 + 
 +SimpleDHT.h – o bibliotecă eficientă pentru citirea rapidă a datelor de la senzorul DHT11. 
 + 
 +Codul LCD este scris „bare-metal” pentru o mai bună înțelegere a protocolului I2C și controlul precis al afișajului,​ fără biblioteci standard (ex: LiquidCrystal_I2C). 
 + 
 +  * Elementul de noutate 
 +Proiectul nu doar că oferă un feedback în timp real, dar: 
 + 
 +Stochează istoric recent al parametrilor și îl afișează ciclic, fără a perturba mesajele de stare esențiale. 
 + 
 +Interfața este non-blocking,​ folosind timere hardware și întreruperi precise, evitând delay() și blocaje. 
 + 
 +Afișajul este dinamic și adaptiv: se revine automat la mesajul „Condiții optime” sau „Probleme” după fiecare afișare de parametri istorici. 
 + 
 +  * Utilizarea funcționalităților din laborator 
 +Lab 1: USART 
 + 
 +Lab 2: Intreruperi  
 + 
 +Lab 5: SPI 
 + 
 +Lab 6: I2C 
 + 
 +Am integrat: 
 + 
 +Timer2 pentru incrementarea unui cronometru systicks (1ms). 
 + 
 +Timer1 configurat pentru generare de întreruperi la fiecare 10ms pentru a semnaliza optimizarea plantelor. 
 + 
 +USART implementat manual pentru trimiterea valorilor în consola serială fără biblioteci externe. 
 + 
 +Citirea senzorilor analogici și integrarea unui senzor digital (DHT11) prin protocoale precise. 
 + 
 +Simulare SPI + Salvare RAM: 
 + 
 +  *  Implementare completă a unui protocol SPI software (bit-banging) care transmite fiecare stare `PlantState` (temperatură,​ umiditate, umiditate sol și lumină). 
 +  * Configurația pinilor SPI este definită manual (`MOSI`, `MISO`, `SCK`, `SS`), conform laboratoarelor PM. 
 +  * Fiecare stare este transmisă în format binar (6 octeți) prin SPI la fiecare măsurătoare. 
 + 
 +Stocare locală în RAM (simulare fișier) 
 + 
 +- Fiecare `PlantState` este salvat într-un buffer circular `ramFile[100]`,​ cu actualizare constantă. 
 + 
 +- Acest buffer acționează ca o simulare de fișier temporar în memorie RAM. 
 + 
 +Afișare automată RAM în Serial Monitor 
 + 
 +  * - La fiecare **10 secunde**, conținutul RAM (`ramFile[]`) este afișat în Serial Monitor. 
 +  * - Sunt afișate doar înregistrările reale (nu cele cu valori implicite 0). 
 +  * - După afișare, programul revine la comportamentul normal, cu afișare la 2 secunde a valorilor curente. 
 + 
 + 
 +  * Structura proiectului și validare funcțională 
 +Structura este modulară și include: 
 + 
 +  *  Senzori: 
 + 
 +SimpleDHT pentru citirea temperaturii și umidității. 
 + 
 +analogRead pentru senzorii de lumină și umiditate sol. 
 + 
 +  * Afișare: 
 + 
 +Funcții personalizate pentru controlul LCD I2C fără biblioteci. 
 + 
 +Două tipuri de afișaje: mesaje de stare + afișare ciclică din istoric. 
 + 
 +  * Control: 
 + 
 +systicks și întreruperi pentru temporizare neblocantă. 
 + 
 +Structură PlantState și buffer circular pentru istoric. 
 + 
 +  * Validare: 
 + 
 +Verificare serială a valorilor citite. 
 + 
 +Testare prin variarea parametrilor senzorilor. 
 + 
 +Observarea schimbării automate a mesajelor pe LCD. 
 + 
 +  * Optimizări efectuate 
 +Eliminarea folosirii delay(): toată logica se bazează pe timere precise cu systicks. 
 + 
 +Logica ciclică pentru afișare istoric fără a afecta mesajele importante. 
 + 
 +Afișarea pe LCD se face doar când este nevoie, evitând suprascrieri inutile. 
 + 
 +UART implementat manual fără Serial.begin(),​ pentru compatibilitate cu hardware custom. 
  
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
-<note tip>​TBD</​note>​ 
  
-===== Concluzii ===== +[[https://​github.com/​andraciuli/​Plant-Status-Check|GitHub - codul complet]] 
-<note tip>​TBD<​/note>+ 
 +[[https://​www.youtube.com/​watch?​v=zlGk5lrqPbM|YouTube - demo]] 
 + 
  
 ===== Resurse ===== ===== Resurse =====
-<note tip> 
 [[https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf|Datasheet Arduino]] [[https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf|Datasheet Arduino]]
 [[https://​www.instructables.com/​Arduino-Soil-Moisture-Sensor/​|Senzor sol]] [[https://​www.instructables.com/​Arduino-Soil-Moisture-Sensor/​|Senzor sol]]
 [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd+1602&​results=17|LCD1602 cu interfata I2C]] [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd+1602&​results=17|LCD1602 cu interfata I2C]]
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
-<note tip> ​+
   * 11.05 - montare si testare senzor de temperatura si umiditate sol + testare ecran LCD 1602 cu interfata I2C   * 11.05 - montare si testare senzor de temperatura si umiditate sol + testare ecran LCD 1602 cu interfata I2C
   * 13.05 - montare si testare fotorezistor,​ incheiere schema hardware   * 13.05 - montare si testare fotorezistor,​ incheiere schema hardware
   * 14.05 - implementare software   * 14.05 - implementare software
-</​note>​+
pm/prj2025/fstancu/andra.ciulinca.1747765400.txt.gz · Last modified: 2025/05/20 21:23 by florin.stancu
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