Table of Contents

Planta inteligenta

Introducere

Acest proiect presupune crearea unui circuit care va permite unei plante sa comunice cu oamenii, spunand cum se simte, daca are nevoie de apa, daca are lumina.

Intenția de la care a pornit proiectul este pentru a ajuta oamenii sa aibe mai multa grija de plantele lor si intr-un mod interactiv si mult mai usor. Eu cred ca foarte multi oameni uita sa isi ude plantele, deoarece aceste nu pot vorbi sau nu le pot arata ca au nevoie de mai multa apa sau lumina doar cand este prea tarziu, asadar, cu ajutorul acestui proiect oamenii vor putea avea mai multa grija de prietenii lor verzi.

Descriere generală

Modul in care va functiona ceea ce mi-am propus este: toate componentele hardware vor fi pozitionate intr-un compartiment separat sub ghiveciul plantei, iar pamantul si planta vor putea veni deasupra fara ca apa sau pamantul sa poata patrunde in compartimentul cu componentele. O sa exista si un set de leduri dedesuptul ghiveciului pentru a indica cu verde daca planta are tot ce ii trebuie si cu rosu pentru a indica ca planta are nevoie de ceva. Planta va avea un buton care in momentul in care este apasat va raspunde la cateva intrebari despre cum se simte si daca are nevoie de ceva si va spune si o gluma sau un funfact daca totul este in regula pentru a face interactiunea mai interactiva =)

Hardware Design

Componente necesare:

  • 1 x Arduino Uno
  • 1 x Senzor de umiditate a solului
  • 1 x modul WIFI ESP8266
  • 1 x Fotorezistenta
  • 1 x Amplificator audio LM386
  • 1 x difuzor
  • 1 x MicroSD Card Slot Module
  • 1 x Led RGB
  • 2 x butoane

Senzor de umiditate a solului: Am conectat 3 pini din cei 4 ai senzorului cel de ground la GND-ul placutei Arduino, VCC-ul la 5V si Analog Output-ul la pinul A0 al placutei. Rolul acestei componente este de a trimite date catre placuta Arduino pentru a monitoriza nivelul de apa din sol pentru a stii daca trebui planta udata sau nu.

Fotorezistenta: Am conectat rezistenata la 5V si la GND iar pentru ground am folosit o rezistenta de pull-up de 10Kohmi si am conectat si la pinul A1 al placutei Arduino pentru a monitoriza schimbarea in tensiune sau mai bine zis daca planta are sau nu lumina.

Amplificatorul audio LM386: Am conectat un pin la VCC la 5V unul la GND si audio input-ul la pinul 8 de pe placuta Arduino, aceasta componenta are rolul de a prelua mesajul sonor destinat difuzorului si de al amplifica pentru a se auzi mai tare. De asemenea, am conectat si cele 2 fire de la difuzor: cel de - la GND si cel de + la OUT+.

Difuzor: Am conectat + si - la amplificatorul audio. Aceasta componenta reda raspunsurile plantei.

MicroSD Card Slot Module: Am conectat VCC la 5V si GND la ground-ul placutie si restu de 4 pini la pinii 10, 11, 12, 13 de pe placuta arduino. Aceasta componenta are rolul de a stoca raspunsurile plantei pentru a fi mai tarziu redate de catre difuzor.

Led RGB: Am conectat pentru inceput catodul la ground-ul placutei arduino, iar dupa am conectat pinii pentru verde, albastru si rosu la pinii 5, 7, 6 ai placutei arduino. Am folosit 3 rezistente de 10Kohmi pentru fiecare pin. Ledul se va face culoarea verde daca totul este in regula cu planta, albastru daca are nevoie de apa si rosu daca are nevoie si de apa si de lumina.

Butoane: Am conectat GND-ul si VCC-ul la 5V si la ground-ul placutei arduino si am conectat pinii de BTN la pinii digitali 3 si 4 de pe placuta. Unul dintre butoane are rolul de a transmite placutei faptul ca trebuie sa spuna statusul plantei, iar celalalt buton va face a planta sa cante muzica sau sa spuna un fun fact.

Schemă Tinkercad:

*Nu am gasit MicroSD Card Slot Module-ul in Tinkercad asa ca l-am inlocui cu un 7-Segment Decoder pentru ca era cel mai asemanator lucru, pentru ca modulul meu are 6 pini care trebuiesc conectati.

Schemă electrică:

Circuitul fizic:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: ArduinoIDE
  • librării şi surse 3rd-party: SD (pentru modulul de microsd card), SPI (pentru comunicarea intre device-uri), TMRpcm (pentru redarea de pe cardul microSD)

Github: Git proiect

Variabile Globale:

  1. PIN_RED, PIN_GREEN, PIN_BLUE, buttonPin1, buttonPin2, SD_ChipSelectPin, senzorPin: definesc pinii pentru ledul RGB, pentru cele 2 butoane si pentru modulul microSD
  2. buttonState, buttonMusic, song_number: starea in care se afla un buton, daca este apasat si numarul cantecului sa stim ce cantec sa redam in cazul apasarii butonului de muzica
  3. red, green, blue: culoarea ledului RGB si modul in care se simte planta daca ledul este rosu aceasta are nevoie si de apa si de lumina, daca ledul este albastru aceasta are nevoie de apa, daca ledul este verde planta se simte bine are destula apa si primeste destula lumina.
  4. light, soilmoist: variabilele care primesc datele de la senzorii de umiditate in sol si de la fotorezistenta

Funcții:

  1. setColor: aceasta functie schimba culoarea ledului RGB, este apelata in functia loop in momentul in care planta nu primeste destula apa sau lumina
  2. setup: se pun pinii pe output sau pe input in functie de fiecare, pinii pentru butoane pe input si pinii pentru led pe output, de asemenea se seteaza pinul pentru speaker precum si volumul si calitatea audioului
  3. loop: aici se executa codul serial, citim si vedem daca unul din cele 2 butoane au fost apasate si ne extragem de la cei 2 senzori valorile pe care acestia le capteaza, daca a fost apasat butonul de STATUS atunci planta va reda statusul acesteia in functie de cum se simte (adica valorile de la senzori), iar daca a fost apasat butonul de MUSIC planta va incepe sa cante si daca se apasa de mai multe ori pe buton se va schimba melodia.

Calibrarea senzorilor: În codul dat, este folosit un senzor de umiditate in sol și unul de lumină (fotorezistenta) care returnează o valoare analogică în funcție de umiditatea din sol detectată, respectiv de intensitatea luminii. Această valoare analogică este citită folosind funcția analogRead() a placutei Arduino.

Pentru un senzor de umiditate în sol, calibrarea se face prin corelarea valorilor analogice citite de la senzor cu nivelurile reale de umiditate ale solului. De obicei, o valoare analogică mai mică indică un sol uscat, în timp ce o valoare analogică mai mare indică un sol umed. Prin calibrarea senzorului, se stabilește o relație precisă între aceste valori și procentajul real de umiditate al solului, astfel încât citirile să fie convertite în măsurători de umiditate utilizabile. De asemenea, deoarece fotorezistoarele isi variază rezistența în funcție de intensitatea luminii, o valoare mai mică a citirii analogice indică o lumină mai puternică, în timp ce o valoare mai mare indică o lumină mai slabă.

Optimizari posibile: Putem sa facem masurarile necesare cu ajutorul senzorilor odata la 15 minute ca sa nu citim de fiecare data rezultatulsi nefiind o nevoie asa de mare sa facem acele masurari in fiecare secunda.

Video Demo: Demo video

Rezultate Obţinute

Eficiența Energetică Îmbunătățită: Implementarea funcției de oprire a senzorilor a dus la o reducere a consumului de energie.

Concluzii

Realizarea acestui proiect despre o plantă inteligentă a fost o experiență educativă și creativa. Am avut ocazia să experimentez cu tehnologii precum placuta Arduino si module pentru aceasta, pentru a crea un sistem care monitorizează automat nevoile plantei și răspunde în consecință. Aceasta m-a ajutat să îmbin teoria cu practica si cu distractia, dezvoltându-mi abilitățile de programare, electronică și design de sistem. Lucrul independent la acest proiect m-a învățat să gestionez resursele eficient și să găsesc soluții inovatoare la problemele apărute. În cele din urmă, acest proiect mi-a întărit pasiunea pentru inginerie și tehnologie, motivându-mă să explorez mai departe aceste domenii și să mă dezvolt profesional și personal.

Download

Codul/Firmware si librariile utilizate se pot gasi aici: proiect_burea_ovidiu.zip

Jurnal

  • 05/05/2024 - Creare pagină wiki.
  • 17/05/2024 - Asamblarea circuitului hardware cu toate componentele functionale cu un cod minim neterminat.
  • 24/05/2024 - Update pagină OCW cu documentație software și video demo cu functionalitatea proiectului.

Bibliografie/Resurse

Ghid de la Plusivo.

Export to PDF