Sommario:

Sistema di avviso di terreno a bassa umidità per la tua pianta: 5 passaggi
Sistema di avviso di terreno a bassa umidità per la tua pianta: 5 passaggi

Video: Sistema di avviso di terreno a bassa umidità per la tua pianta: 5 passaggi

Video: Sistema di avviso di terreno a bassa umidità per la tua pianta: 5 passaggi
Video: EC e salinità del terreno e delle soluzioni nutritive 2024, Dicembre
Anonim
Sistema di avviso di terreno a bassa umidità per la tua pianta
Sistema di avviso di terreno a bassa umidità per la tua pianta

In diverse residenze è comune trovare vasi con diversi tipi di piante. E con il gran numero di attività quotidiane, le persone dimenticano di innaffiare le piante e finiscono per morire per mancanza d'acqua.

Per evitare questo problema, abbiamo deciso di creare un sistema per informare quando una pianta non ha acqua. In questo modo, non dimenticherai mai di irrigare la tua pianta e rimarrà viva a lungo. Successivamente, presenteremo l'intero sviluppo di questo progetto.

Forniture

  • PCBWay PCB personalizzato
  • Sensore di umidità del suolo analogico per Arduino
  • Arduino UNO
  • Ponticelli (generici)
  • LCD standard - 16 x 2 blu
  • Potenziometro rotativo UTSOURCE 10k

Passaggio 1: sviluppo del progetto

Sviluppo del progetto
Sviluppo del progetto

Uno dei modi che utilizziamo per rilevare la quantità di acqua nella pianta è attraverso il parametro umidità. Quindi, meno acqua c'è nel vaso della nostra pianta, minore è l'umidità del suolo.

Pertanto, dobbiamo utilizzare un sensore di umidità per analizzare lo stato di umidità nel nostro impianto.

Attraverso di essa, abbiamo allestito un circuito montato nella breadboard con Arduino, per effettuare il monitoraggio e l'indicazione di bassa umidità del vaso di cactus. Quindi, per mezzo del display LCD per informare il nostro utente sull'umidità, come mostrato in Figura 1.

Passaggio 2: inserimento del sensore di umidità nel circuito

Inserimento del sensore di umidità nel circuito
Inserimento del sensore di umidità nel circuito
Inserimento del sensore di umidità nel circuito
Inserimento del sensore di umidità nel circuito

Dal circuito sopra, inseriremo la sonda per la misura dell'umidità nell'impianto che vogliamo monitorare. Nel nostro progetto, inseriamo una sonda in un piccolo cactus, come mostrato nella Figura 2.

Ora, vedremo come progettare il lavoro passo dopo passo e, di seguito, impareremo come creare il codice di controllo. Inizialmente, quando non colleghiamo il sensore all'interno del barattolo, il dispositivo ha un basso contenuto di umidità del 2% all'esterno il vaso di cactus. Questo può essere visto nella Figura 3.

Passaggio 3: comprendere i valori di umidità

Comprendi i valori di umidità
Comprendi i valori di umidità
Comprendi i valori di umidità
Comprendi i valori di umidità

Questo basso valore percentuale rappresenta una bassa umidità. Ora, dopo aver inserito il sensore nel terreno del vaso di cactus, verrà visualizzato un valore del 36%, come mostrato in Figura 4. Cioè, la nostra umidità è bassa e il sistema visualizza il messaggio Bassa umidità perché il valore è inferiore del 60%.

Il passo successivo è irrigare il terreno della brocca del nostro cactus e possiamo verificare l'aumento del valore dell'umidità al 69%.

Dopo aver compreso il funzionamento del progetto, presenteremo tutte le logiche costruttive per realizzare questo sistema di monitoraggio. Cominciamo!

Passaggio 4: programmazione logica

Di seguito, la logica di programmazione sarà presentata attraverso il codice costruito.

Inizialmente, è stata dichiarata la libreria di Display LCD, variabili ed è stato creato un oggetto LCD con i relativi pin di connessione con Arduino UNO.

#includere

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; byte UmidityPercent = 0, umidità = 0, PreviousValue = 0; int ValUmidade = 0, AnalogValue = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LCD a cristalli liquidi (rs, en, d4, d5, d6, d7);

Successivamente sono state inizializzate la funzione di setup e il display LCD 16x2 ed è stato configurato il pin del sensore come input. Infine, abbiamo effettuato la prima lettura del nostro sensore e l'abbiamo utilizzata come riferimento per la variabile PreviousValue, come mostrato di seguito.

{Serial.begin(9600); lcd.begin(16, 2); pinMode(sensore, INGRESSO); PreviousValue = analogRead(sensore); }

Con le variabili create e i comandi nella funzione void setup, spiegheremo tutta la programmazione logica nella funzione loop.

//Le o valor do pino A0 do sensorAnalogValue = analogRead(sensor); //Mostra o valore da porta analogica no serial monitor Serial.print("Analog Port: "); Serial.println(AnalogValue); UmidityPercent = map(AnalogValue, 0, 1023, 0, 100); umidità = 100 - UmidityPercent;

Nella funzione loop, è stato letto il valore analogico e il valore è stato mappato in un intervallo di 0 e 100. Questo valore rappresenta una percentuale di umidità del suolo. Quando l'umidità è alta, il valore si avvicina a 0 e se l'umidità è bassa il valore si avvicina a 100.

Per facilitare la rappresentazione del valore ed evitare confusione nella lettura da parte dell'utente, invertiamo questa logica e rappresentiamo che 0% sarà bassa umidità e 100% alta umidità. Ciò è stato effettuato mediante il calcolo effettuato dopo la mappatura.

umidità = 100 - UmidityPercent;

Dopo aver letto il valore dell'umidità è necessario presentarlo nel Display LCD. Il passaggio successivo consiste nel verificare se il valore dell'umidità è diverso dal suo valore più 1 o dal suo valore meno 1, in base alle condizioni seguenti.

if((umidità > (ValorePrecedente)+1) || (umidità < (ValorePrecedente)- 1))

Questa condizione viene utilizzata per evitare che il sistema presenti più volte lo stesso valore nel Display LCD. Ma, quando la condizione è vera, il sistema presenterà il valore nell'LCD e verificherà se il valore è maggiore o uguale al 60% o minore del 60%. Se il valore era maggiore o uguale al 60%, il sistema presente il messaggio High Moisture, altrimenti, presentare il messaggio Low Moisture, come mostrato di seguito.

if((umidità > (PreviousValue)+1) || (umidità < (PreviousValue)- 1)) { lcd.setCursor(1, 0); lcd.print("Umidità: "); lcd.print(" "); lcd.setCursor(11, 0); lcd.print(umidità); lcd.print("%"); if(umidità = 60 && HighUmid == 0) { lcd.setCursor(2, 1); lcd.print(" "); lcd.setCursor(1, 1); lcd.print("Umidità elevata"); Alto Umid = 1; Basso Umid = 0; } Valore Precedente = umidità; }

Infine, il sistema memorizzerà il valore della variabile umidità nella variabile PreviousValue per attualizzarne il valore. Ogni volta che viene presentato un nuovo valore nel display viene attualizzata la variabile PreviousValue per essere utilizzata in altri cicli di elaborazione del codice. Si tratta quindi di un semplice sistema utilizzato per monitorare l'umidità delle piante nelle nostre residenze e informare gli utenti su il livello di umidità del suolo.

Passaggio 5: Riconoscimenti

Il Silícios Lab ringrazia PCBWay per il suo supporto e la collaborazione. E abbiamo molti vantaggi per te. Guadagna 10 PCB gratuiti e un sacco di bean coin (Scopri di più) per scambiare prodotti sul sito PCBWay.

Oltre a loro, il Silícios Lab ringrazia UTSOURCE per il suo supporto, per averci offerto componenti elettronici a basso costo di grande qualità e buon servizio.

Consigliato: