This is an old revision of the document!
Ciulinca Andra Stefania - 334CA
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.
Descrierea legăturilor făcute și a pinilor utilizați:
Î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.
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).
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.
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:
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
Structura este modulară și include:
SimpleDHT pentru citirea temperaturii și umidității.
analogRead pentru senzorii de lumină și umiditate sol.
Funcții personalizate pentru controlul LCD I2C fără biblioteci.
Două tipuri de afișaje: mesaje de stare + afișare ciclică din istoric.
systicks și întreruperi pentru temporizare neblocantă.
Structură PlantState și buffer circular pentru istoric.
Verificare serială a valorilor citite.
Testare prin variarea parametrilor senzorilor.
Observarea schimbării automate a mesajelor pe LCD.
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.