This is an old revision of the document!
Grupa: 336CA
Garduino este un proiect ce are ca scop îmbinarea tehnologiei cu natura. În zilele noastre, oamenii petrec mai mult timp acasă și plantele de interior au devenit o modalitate populară de a aduce un pic de natură în locuințe. Plantele nu sunt, însă, doar elemente decorative, ele oferind și multe beneficii pentru sănătatea și bunăstarea noastră. Cu toate acestea, lipsa timpului și neatenția sunt cei mai des întâlniți factori care duc la dispariția prematură a plantelor de interior.
Garduino își propune să rezolve această problemă. Proiectul constă într-un sistem automatizat de întreținere a plantelor și de monitorizare a mediului ambiant în care acestea se află, urmărind parametrii precum temperatura și intensitatea luminoasă. Astfel, acesta reprezintă o soluție ideală pentru îngrijirea plantelor de interior, reducând riscul neglijenței și creând un mediu optim pentru creșterea și dezvoltarea lor.
Sistemul va folosi date primite de la diverși senzori pentru a monitoriza parametrii mediului ambiant și a satisface nevoile plantei. Cele două funcționalități principale constau în automatizarea irigării plantei și afișarea pe ecranul LCD a unor informații legate de încăperea în care se află planta.
Sistemul va utiliza date primite de la senzorii de umiditate a solului, de luminozitate și de temperatură și umiditate, iar la nevoie va activa automat o pompă pentru udarea plantei. În momentul în care parametrii detectați de senzor vor fi reglați, sistemul va înceta acționarea pompei.
Cei doi senzori de intensitate luminoasă și temperatură și umiditate vor înregistra constant parametrii mediului înconjurător, temperatura și umiditatea fiind afișate constant pe LCD pentru a facilita monitorizarea mediului în care se află planta.
În timpul simulării, circuitul a prezentat comportamentul așteptat, captând cu precizie condițiile de mediu.
Senzorul de temperatură a înregistrat citiri în intervalul 20-25 de grade Celsius și un nivel constant de umiditate de aproximativ 50%, valorile rămânând relativ stabile pe toată perioada simulării. Senzorul de umiditate a solului și senzorul de intensitate luminoasă au afișat citiri cuprinse în intervalul 0-1023 de unități, care vor fi mapate într-un interval de 0-100 pentru a reprezenta procente.
Modulul releu a funcționat conform intenției, activând pompa de apă în funcție de relația dintre datele preluate de senzori și valorile de prag predefinite, asigurând o irigare corespunzătoare. Ecranul LCD a oferit feedback în timp real, prezentând citirile senzorului de temperatura și umiditate, facilitând astfel monitorizarea sistemului.
În general, componentele hardware au demonstrat performanță și interacțiune fiabile, validând funcționalitatea sistemului Garduino.
Pentru a avea o modularitate mai bună și a facilita reutilizabilitatea codului, programul a fost organizat în mai multe funcții:
void loop() { // Read sensor values readSensors(); // Display sensor values on LCD printStatus(); // Check the conditions for pump control checkConditions(); // Automatic pump control based on time elapsed checkPump(); delay(2500); // Delay between iterations }
// ADC interrupt service routine for Timer1 ISR(TIMER1_COMPA_vect) { // Start a new ADC conversion for soil moisture ADMUX = (ADMUX & 0xF0) | (0x00 & 0x0F); // Set ADC input to ADC0 (pin A0) ADCSRA |= (1 << ADSC); // Start ADC conversion while (ADCSRA & (1 << ADSC)); // Wait for ADC conversion to complete uint16_t rawSoilMoisture = ADC; interruptSoilMoisture = map(rawSoilMoisture, 0, 1023, 100, 0); // Map ADC reading to soil moisture range // Start a new ADC conversion for light sensor ADMUX = (ADMUX & 0xF0) | (0x01 & 0x0F); // Set ADC input to ADC1 (pin A1) ADCSRA |= (1 << ADSC); // Start ADC conversion while (ADCSRA & (1 << ADSC)); // Wait for ADC conversion to complete uint16_t rawLight = ADC; interruptLight = map(rawLight, 0, 1023, 100, 0); // Map ADC reading to light range }
TO-DO
TO-DO
TO-DO