- Componenti necessari per il progetto del sistema di irrigazione delle piante Arduino
- Spiegazione del circuito:
- Spiegazione di lavoro:
- Spiegazione della programmazione:
Ogni volta che andiamo fuori città per pochi giorni, ci preoccupavamo sempre delle nostre piante perché hanno bisogno di acqua regolarmente. Quindi qui stiamo realizzando il sistema di irrigazione automatica delle piante utilizzando Arduino, che fornisce automaticamente l'acqua alle tue piante e ti tiene aggiornato inviando un messaggio al tuo cellulare.
In questo sistema di irrigazione della pianta, il sensore di umidità del suolo controlla il livello di umidità nel terreno e se il livello di umidità è basso, Arduino accende una pompa dell'acqua per fornire acqua alla pianta. La pompa dell'acqua si spegne automaticamente quando il sistema trova abbastanza umidità nel terreno. Ogni volta che il sistema accende o spegne la pompa, viene inviato un messaggio all'utente tramite modulo GSM, aggiornando lo stato della pompa dell'acqua e l'umidità del suolo. Questo sistema è molto utile in aziende agricole, giardini, casa ecc. Questo sistema è completamente automatizzato e non è necessario alcun intervento umano.
Componenti necessari per il progetto del sistema di irrigazione delle piante Arduino
- Arduino Uno
- Modulo GSM
- Transistor BC547 (2)
- Cavi di collegamento
- LCD 16x2 (opzionale)
- Alimentazione 12v 1A
- Relè 12v
- Pompa del refrigeratore d'acqua
- Sensore di umidità del suolo
- Resistori (1k, 10k)
- Resistenza variabile (10k, 100k)
- Connettore terminale
- Regolatore di tensione IC LM317
Modulo GSM:
Qui abbiamo utilizzato il modulo GSM TTL SIM800. Il SIM800 è un modulo GSM / GPRS quad-band completo che può essere integrato facilmente dal cliente o dall'hobbista. Il modulo GSM SIM900 fornisce un'interfaccia standard del settore; il SIM800 fornisce prestazioni GSM / GPRS 850/900/1800/1900 MHz per voce, SMS, dati con un basso consumo energetico. Il design di questo modulo GSM SIM800 è sottile e compatto. È facilmente disponibile sul mercato o online da eBay.
- Modulo GSM / GPRS quad - band di piccole dimensioni.
- GPRS abilitato
- Uscita TTL
Ulteriori informazioni sul modulo GSM e sui comandi AT qui. Controlla anche i nostri vari progetti che utilizzano GSM e Arduino per comprenderne correttamente l'interfaccia.
Spiegazione del circuito:
In questo sistema di irrigazione delle piante, abbiamo utilizzato una sonda sensore di umidità del suolo fatta in casa per rilevare il livello di umidità del suolo. Per realizzare la sonda, abbiamo tagliato e inciso un pannello rivestito in rame secondo l'immagine mostrata di seguito. Un lato della sonda è direttamente collegato a Vcc e l'altro terminale della sonda va alla base del transistor BC547. Un potenziometro è collegato alla base del transistor per regolare la sensibilità del sensore.
Arduino viene utilizzato per controllare l'intero processo di questo sistema di irrigazione automatica delle piante. L'uscita del circuito del sensore del suolo è direttamente collegata al pin digitale D7 di Arduino. Un LED è utilizzato nel circuito del sensore, lo stato ON di questo LED indica la presenza di umidità nel suolo e lo stato OFF indica l'assenza di umidità nel terreno.
Il modulo GSM viene utilizzato per l'invio di SMS all'utente. Qui abbiamo utilizzato il modulo GSM TTL SIM800, che fornisce e prende direttamente la logica TTL (l'utente può utilizzare qualsiasi modulo GSM). Un regolatore di tensione LM317 viene utilizzato per alimentare il modulo GSM SIM800. LM317 è molto sensibile alla tensione nominale e si consiglia di leggere la sua scheda tecnica prima dell'uso. La sua tensione di funzionamento è compresa tra 3,8 V e 4,2 V (si prega di preferire 3,8 V per farlo funzionare). Di seguito è riportato lo schema del circuito di alimentazione fornito al modulo GSM TTL sim800:
Se l'utente desidera utilizzare il modulo TTL SIM900, deve utilizzare 5 V e se l'utente desidera utilizzare il modulo SIM900, applicare 12 v nello slot DC Jack della scheda.
Un relè 12V viene utilizzato per controllare la piccola pompa dell'acqua 220VAC. Il relè è pilotato da un transistor BC547 che è ulteriormente collegato al pin digitale 11 di Arduino.
Un display LCD opzionale viene utilizzato anche per visualizzare lo stato e i messaggi. I pin di controllo di LCD, RS ed EN sono collegati ai pin 14 e 15 di Arduino e i pin dati di LCD D4-D7 sono collegati direttamente ai pin 16, 17, 18 e 19 di Arduino. L'LCD viene utilizzato in modalità 4 bit e gestito dalla libreria LCD incorporata di Arduino.
Di seguito è riportato lo schema del circuito di questo sistema di irrigazione con arduino e sensore di umidità del suolo:
Spiegazione di lavoro:
Il funzionamento di questo sistema automatico di irrigazione delle piante è abbastanza semplice. Prima di tutto, è un sistema completamente automatizzato e non c'è bisogno di manodopera per controllare il sistema. Arduino viene utilizzato per controllare l'intero processo e il modulo GSM viene utilizzato per inviare messaggi di avviso all'utente sul suo cellulare.
Se è presente umidità nel suolo, c'è una conduzione tra le due sonde del sensore di umidità del suolo e, a causa di questa conduzione, il transistor Q2 rimane nello stato attivato / attivato e il pin D7 di Arduino rimane basso. Quando Arduino legge il segnale BASSO su D7, invia un SMS all'utente che dice "L'umidità del suolo è normale. Motore spento ”e la pompa dell'acqua rimane nello stato Off.
Ora, se non c'è umidità nel suolo, il transistor Q2 si spegne e il pin D7 diventa alto. Quindi Arduino legge il Pin D7 e accende il motore idraulico e invia anche un messaggio all'utente che dice “Rilevata umidità del suolo bassa. Motore acceso ”. Il motore si spegnerà automaticamente quando c'è sufficiente umidità nel terreno. Controllare ulteriormente il video e il codice dimostrativi (forniti alla fine) per una migliore comprensione del processo di lavoro del progetto.
Spiegazione della programmazione:
Il codice per questo programma è facilmente comprensibile. Prima di tutto abbiamo incluso la libreria SoftwareSerial per rendere i pin 2 e 3 come Rx e Tx e incluso anche LiquidCrystal per LCD. Quindi abbiamo definito alcune variabili per motore, sensore di umidità del suolo, LED ecc.
#includere
Quindi nella funzione void setup () , la comunicazione seriale viene inizializzata a 9600 bps e vengono fornite le direzioni ai vari Pin. La funzione gsmInit viene chiamata per inizializzare il modulo GSM.
Serial1.begin (9600); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (motore, USCITA); pinMode (sensor, INPUT_PULLUP); lcd.print ("Water Irrigaton"); lcd.setCursor (4,1); ritardo (2000); lcd.clear (); lcd.print ("Circuit Digest"); lcd.setCursor (0,1); lcd.print ("Ti dà il benvenuto"); ritardo (2000); gsmInit ();
Quindi il sensore viene letto nella funzione void loop () e il motore viene acceso o spento in base allo stato del sensore e anche un SMS viene inviato all'utente utilizzando la funzione sendSMS . Controllare le varie funzioni nel codice completo fornito alla fine.
void loop () {lcd.setCursor (0,0); lcd.print ("Modalità automatica"); if (digitalRead (sensor) == 1 && flag == 0) {delay (1000); if (digitalRead (sensor) == 1) {digitalWrite (led, HIGH); sendSMS ("Rilevata umidità del suolo bassa. Motore acceso"); lcd.begin (16,2); lcd.setCursor (0,1);…………………
Qui la funzione gsmInit () è importante e gli utenti per lo più trovano difficile impostarla correttamente. Viene utilizzato per inizializzare il modulo GSM, dove in primo luogo viene verificato se il modulo GSM è collegato o meno inviando il comando "AT" al modulo GSM. Se si riceve una risposta OK, significa che è pronto. Il sistema continua a verificare la presenza del modulo finché non è pronto o finché non viene ricevuto "OK". Quindi ECHO viene spento inviando il comando ATE0, altrimenti il modulo GSM farà eco a tutti i comandi. Quindi, infine, la disponibilità della rete viene verificata tramite "AT + CPIN?" comando, se la carta inserita è SIM e il PIN è presente, dà la risposta PRONTO. Anche questo viene controllato ripetutamente finché non viene trovata la rete. Questo può essere chiaramente compreso dal video qui sotto.
void gsmInit () {lcd.clear (); lcd.print ("Finding Module.."); booleano at_flag = 1; while (at_flag) {Serial1.println ("AT"); while (Serial1.available ()> 0) {if (Serial1.find ("OK")) at_flag = 0; } ritardo (1000); }……………….
Quindi, con questo sistema di irrigazione automatico, non devi preoccuparti delle tue piante quando sei lontano da casa. Può essere ulteriormente migliorato per essere gestito e monitorato su Internet.