This is an old revision of the document!
Nume: Floarea Gabriela-Estera, Grupă: 332CB
Smart Seed Planter este un sistem embedded automatizat care simulează integral procesul de plantare și îngrijire inițială a unei plante — de la pregătirea solului până la udarea automată — fără nicio intervenție umană după pornire.
Ideea proiectului a pornit de la dorința de a automatiza un proces agricol de bază folosind exclusiv componente electronice accesibile și un microcontroller Arduino UNO. Sistemul execută o secvență completă de operații: afânarea solului cu o lopățică acționată de servomotor, citirea umidității prin senzor analogic, luarea unei decizii automate despre oportunitatea plantării, eliberarea precisă a unei semințe printr-o clapetă mecanică, acoperirea semințelor cu pământ și udarea zonei plantate prin intermediul unei pompe controlate prin MOSFET.
Proiectul este util din mai multe perspective:
Sistemul este structurat ca o mașină de stări finite (FSM) cu mai multe stări, coordonată de Arduino UNO. Utilizatorul apasă butonul de start, după care sistemul execută automat întreaga secvență: afânare sol, citire umiditate, decizie, plantare, acoperire, udare, finalizare. Dacă umiditatea nu este în intervalul optim (400–700), procesul este întrerupt și utilizatorul este notificat prin LCD si revine apoi in starea IDLE.
Arduino UNO coordonează patru module principale. Modulul de detecție folosește un senzor rezistiv de umiditate conectat pe A0, cu media a 5 citiri consecutive pentru eliminarea zgomotului. Modulul mecanic include două servomotoare SG90 alimentate din MB102: Servo 1 acționează lopățica pentru afânare și acoperire (D9), iar Servo 2 controlează clapeta de eliberare a semințelor (D10). Modulul de irigație controlează pompa de apă 5V prin modulul dual MOSFET (D6), necesar deoarece pompa depășește curentul maxim al unui pin Arduino. Modulul de interfață afișează starea curentă și valoarea umidității pe LCD-ul 16×2 cu modul I2C (A4/A5).
Alimentarea este duală: laptopul alimentează Arduino prin USB Type-C, iar un power bank de 5V/2A alimentează servo-urile și pompa prin modulul MB102, cu GND comun între cele două surse.
| Componentă | Cantitate | Rol în sistem |
|---|---|---|
| Arduino UNO R3, ATmega328P, CH340G, Type-C | 1x | Microcontroller principal, FSM |
| Servomotor SG90 (0°–180°) | 2x | Lopățică (D9) + clapetă semințe (D10) |
| Condensator electrolitic 470µF 16V | 2x | Stabilizare alimentare servo-uri |
| Condensator electrolitic 1000µF 16V | 1x | Stabilizare alimentare principală |
| Senzor umiditate sol cu modul | 1x | Citire umiditate analogică (A0) |
| Pompă apă 5V | 1x | Udare automată |
| Furtun silicon ~40cm | 1x | Transport apă către sol |
| Modul dual MOSFET 15A 400W | 1x | Control pompă din Arduino |
| Diodă protecție 1N4007 | 1x | Protecție la curent invers |
| Buton tactil 6x6x5mm | 1x | Pornire secvență |
| Ecran LCD 16×2 + modul I2C | 1x | Afișare stare și umiditate |
| Modul alimentare breadboard MB102 | 1x | Distribuire alimentare externă |
| Adaptor 9V | 1x | Alimentare externă curentă |
| Suport 6 baterii AA | 1x | Alimentare autonomă în versiunea finală |
| Breadboard 830 puncte | 1x | Breadboard principal |
| Breadboard 400 puncte | 1x | Zonă pompă + MOSFET |
| Fire jumper M-M / M-F | ~70 | Conexiuni între module |
Sistemul este construit în jurul plăcii Arduino UNO, care coordonează toate componentele hardware. Componentele de intrare sunt senzorul de umiditate și butonul de start, iar componentele de ieșire sunt cele două servomotoare, LCD-ul și pompa de apă controlată prin MOSFET.
LCD-ul 16×2 cu modul I2C este conectat prin interfața I2C folosind pinii A4 și A5 ai plăcii Arduino UNO. Utilizarea I2C reduce numărul de pini necesari și simplifică schema electrică.
Senzorul de umiditate este conectat pe pinul analogic A0 deoarece furnizează o valoare analogică variabilă în funcție de nivelul de apă din sol.
Butonul de start este conectat pe pinul D2 și utilizează rezistența internă de tip INPUT_PULLUP a microcontrollerului. Astfel, nu mai este necesară utilizarea unei rezistențe externe.
Cele două servomotoare SG90 sunt conectate pe pinii D9 și D10 deoarece acești pini suportă semnale PWM necesare controlului poziției servo-urilor. Servo 1 controlează lopățica pentru afânarea și acoperirea solului, iar Servo 2 controlează clapeta pentru eliberarea seminței.
Pompa de apă este controlată prin intermediul modulului dual MOSFET conectat pe pinul D6. Pompa nu este conectată direct la Arduino deoarece consumă mai mult curent decât poate furniza un pin digital al microcontrollerului.
Condensatoarele electrolitice sunt conectate pe linia de alimentare externă pentru reducerea fluctuațiilor de tensiune produse de servo-uri și pompă.
Dioda 1N4007 este montată paralel pe pompă pentru protecție împotriva tensiunilor inverse generate la oprirea motorului.
Sistemul utilizează alimentare separată pentru partea logică și partea de putere. Arduino UNO este alimentat prin USB Type-C de la laptop, iar servo-urile și pompa sunt alimentate separat prin modulul MB102.
În etapa actuală de dezvoltare, MB102 este alimentat folosind un adaptor de 9V conectat la priză. În varianta finală a proiectului, adaptorul de 9V va fi înlocuit cu un suport pentru 6 baterii AA, care furnizează aproximativ 9V. Această modificare va permite funcționarea autonomă a sistemului fără alimentare externă de la priză.
Toate modulele folosesc GND comun, necesar pentru interpretarea corectă a semnalelor de control.
Pinii au fost aleși în funcție de rolul fiecărei componente și de facilitățile hardware oferite de Arduino UNO.
Pinii A4 și A5 sunt utilizați pentru LCD deoarece reprezintă liniile dedicate comunicației I2C: A4 pentru SDA și A5 pentru SCL.
Pinul A0 este utilizat pentru senzorul de umiditate deoarece acesta oferă o ieșire analogică.
Pinul D2 este utilizat pentru butonul de start deoarece este un pin digital potrivit pentru detectarea apăsării și permite utilizarea INPUT_PULLUP.
Pinii D9 și D10 sunt utilizați pentru servomotoare deoarece suportă PWM hardware necesar controlului precis al poziției.
Pinul D6 este utilizat pentru controlul modulului MOSFET și implicit al pompei de apă.
| Componentă | Pin componentă | Pin Arduino / Alimentare | Rol |
|---|---|---|---|
| LCD I2C | SDA | A4 | Linie date I2C |
| LCD I2C | SCL | A5 | Linie ceas I2C |
| LCD I2C | VCC | 5V Arduino | Alimentare LCD |
| LCD I2C | GND | GND | Masă comună |
| Senzor umiditate | AOUT | A0 | Citire analogică |
| Senzor umiditate | VCC | 5V Arduino | Alimentare senzor |
| Senzor umiditate | GND | GND | Masă comună |
| Buton START | pin 1 | D2 | Pornire secvență |
| Buton START | pin 2 | GND | INPUT_PULLUP |
| Servo lopățică | semnal | D9 | Control servo |
| Servo lopățică | VCC | 5V_MB102 | Alimentare externă |
| Servo lopățică | GND | GND | Masă comună |
| Servo clapetă | semnal | D10 | Control clapetă |
| Servo clapetă | VCC | 5V_MB102 | Alimentare externă |
| Servo clapetă | GND | GND | Masă comună |
| MOSFET | TRIG/PWM | D6 | Control pompă |
| MOSFET | VIN+ | 5V_MB102 | Alimentare pompă |
| MOSFET | VIN− | GND_MB102 | Masă alimentare |
| Pompă | + | VOUT+ MOSFET | Alimentare pompă |
| Pompă | − | VOUT− MOSFET | Alimentare pompă |
| Diodă 1N4007 | catod | VOUT+ | Protecție pompă |
| Diodă 1N4007 | anod | VOUT− | Protecție pompă |
| Condensatoare | + | 5V_MB102 | Stabilizare tensiune |
| Condensatoare | − | GND_MB102 | Stabilizare tensiune |
Schema electrică realizată în EasyEDA prezintă interconectarea completă a componentelor hardware utilizate în proiect.
Arduino UNO reprezintă unitatea centrală a sistemului și coordonează toate componentele conectate.
LCD-ul utilizează protocolul I2C pentru reducerea numărului de conexiuni necesare. Comunicarea se realizează prin liniile SDA și SCL, conectate la pinii A4 și A5.
Senzorul de umiditate transmite către Arduino o valoare analogică proporțională cu nivelul de apă din sol. Această valoare este utilizată pentru luarea deciziei privind continuarea sau oprirea procesului de plantare.
Butonul de start este conectat între D2 și GND. În configurația INPUT_PULLUP, pinul are în mod normal valoarea HIGH și devine LOW atunci când butonul este apăsat.
Servomotoarele sunt controlate prin semnale PWM generate de Arduino, însă sunt alimentate separat prin MB102 pentru a evita instabilitatea alimentării microcontrollerului.
Pompa de apă este controlată prin intermediul modulului MOSFET. Arduino trimite doar semnalul de comandă, iar alimentarea efectivă a pompei se face din sursa externă.
Dioda 1N4007 este montată paralel pe pompă și protejează circuitul împotriva tensiunilor inverse produse la oprirea motorului pompei.
Condensatoarele electrolitice stabilizează alimentarea și reduc fluctuațiile de tensiune produse de actuatoare.
Toate modulele folosesc aceeași masă comună pentru funcționarea corectă a întregului sistem.