INHOUDSOPGAWE:

Waarskuwingstelsel vir lae voggrond vir u plant: 5 stappe
Waarskuwingstelsel vir lae voggrond vir u plant: 5 stappe

Video: Waarskuwingstelsel vir lae voggrond vir u plant: 5 stappe

Video: Waarskuwingstelsel vir lae voggrond vir u plant: 5 stappe
Video: Joscha Bach Λ John Vervaeke: Mind, Idealism, Computation 2024, November
Anonim
Waarskuwingstelsel vir lae voggrond vir u plant
Waarskuwingstelsel vir lae voggrond vir u plant

In verskeie koshuise is dit algemeen dat potte met verskillende soorte plante gevind word. En met die groot aantal daaglikse aktiwiteite, vergeet mense om hul plante nat te maak en sterf hulle uiteindelik weens gebrek aan water.

As 'n manier om hierdie probleem te vermy, het ons besluit om 'n stelsel op te stel om in te lig wanneer 'n plant geen water het nie. Op hierdie manier sal u nooit vergeet om u plant te besproei nie, en dit sal nog lank aan die lewe bly. Vervolgens bied ons die hele ontwikkeling van hierdie projek aan.

Voorrade

  • PCBWay Custom PCB
  • Analoge grondvogsensor vir Arduino
  • Arduino UNO
  • Springdrade (generies)
  • Standaard LCD - 16 x 2 blou
  • UTSOURCE Rotary Potentiometer 10k

Stap 1: Projekontwikkeling

Projekontwikkeling
Projekontwikkeling

Een van die maniere waarop ons die hoeveelheid water in die plant kan opspoor, is deur die vogparameter. Dus, hoe minder water in die kruik van ons plant is, hoe laer is die grondvog.

Daarom moet ons 'n humiditeitsensor gebruik om die toestand van vog in ons plant te ontleed.

Daardeur het ons 'n stroombaan opgestel wat saam met Arduino in die broodbord gemonteer is, om die monitering en aanduiding van 'n lae humiditeit van die kaktuspot uit te voer. Dus, op die skerm LCD om ons gebruiker in te lig oor die vog, soos in figuur 1 getoon word.

Stap 2: Plaas die vogsensor in die stroombaan

Plaas die vogsensor in die stroombaan
Plaas die vogsensor in die stroombaan
Plaas die vogsensor in die stroombaan
Plaas die vogsensor in die stroombaan

Uit die bogenoemde stroombaan plaas ons die sonde vir die meting van humiditeit in die plant wat ons wil monitor. In ons projek steek ons 'n sonde in 'n klein kaktus, soos getoon in figuur 2.

Nou sal ons sien hoe om werk stap-vir-stap te projekteer, en hierna leer ons hoe u die beheerkode kan skep. Aanvanklik, as ons nie die sensor in die pot koppel nie, het die toestel 'n lae voginhoud van 2% buite die kaktusfles. Dit kan in figuur 3 gesien word.

Stap 3: Verstaan die vogwaardes

Verstaan die vogwaardes
Verstaan die vogwaardes
Verstaan die vogwaardes
Verstaan die vogwaardes

Hierdie lae persentasie waarde verteenwoordig 'n lae humiditeit. Nadat die sensor in die grond van die kaktuspot geplaas is, word 'n waarde van 36% vertoon, soos in figuur 4. Dit wil sê, ons humiditeit is laag en die stelsel vertoon die boodskap Lae vog omdat die waarde minder is as 60%.

Die volgende stap is om die grond van die kruik van ons kaktus te besproei, en ons kan die verhoging van die waarde van die humiditeit tot 69%kontroleer.

Nadat ons die werking van die projek verstaan het, sal ons al die konstruksielogika voorstel om hierdie moniteringstelsel te skep. Laat ons begin!

Stap 4: Logiese programmering

Hierna sal die programmeringslogika aangebied word deur die gekonstrueerde kode.

Aanvanklik is dit verklaar as die biblioteek van LCD -skerms, veranderlikes en 'n voorwerp -LCD met sy verbindingspenne met Arduino UNO.

#insluit

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; byte UmidityPercent = 0, vog = 0, Vorige waarde = 0; int ValUmidade = 0, AnalogValue = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

Hierna is die opstelfunksie en die LCD 16x2 geïnitialiseer en die pen van die sensor as 'n invoer gekonfigureer. Uiteindelik het ons ons sensor gelees en as verwysing gebruik vir die veranderlike PreviousValue, soos hieronder getoon word.

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

Met die veranderlikes wat geskep is en die opdragte in die leemte -opstelfunksie, verduidelik ons alle logiese programmering in die lusfunksie.

// Le o valor do pino A0 do sensorAnalogValue = analogRead (sensor); // Weergawes van analoë sonder seriële monitor Serial.print ("Analoog poort:"); Serial.println (AnalogValue); UmidityPercent = kaart (AnalogValue, 0, 1023, 0, 100); vog = 100 - UmiditeitPersent;

In die lusfunksie is die analoogwaarde gelees en die waarde in 'n reeks van 0 en 100 gekarteer. Hierdie waarde verteenwoordig 'n persentasie van die grondvog. As die vog hoog is, nader die waarde 0 en as die vog laag is, bereik die waarde 100.

Om die voorstelling van die waarde te vergemaklik en om die lees van die gebruiker nie verwarrend te voorkom nie, keer ons hierdie logika om en stel voor dat 0% lae humiditeit en 100% hoë humiditeit is. Dit is gedoen deur middel van die berekening wat na die kartering uitgevoer is.

vog = 100 - UmiditeitPersent;

Na die lees moet die vogwaarde in die LCD -skerm verskyn. Die volgende stap is om te kontroleer of die vogwaarde verskil van die waarde plus 1 of die waarde minus 1, volgens die onderstaande toestand.

as ((vog> (Vorige waarde) +1) || (vog <(Vorige waarde)- 1))

Hierdie toestand word gebruik om te voorkom dat die stelsel verskeie kere dieselfde waarde in die LCD -skerm vertoon. Maar as die toestand waar is, sal die stelsel die waarde in die LCD vertoon en kontroleer of die waarde meer of gelyk is aan 60%of minder as 60%. die boodskap Hoë vog, anders, bied die boodskap Lae vog, soos hieronder getoon.

as ((vog> (VorigeWaarde) +1) || (vog <(VorigeWaarde)- 1)) {lcd.setCursor (1, 0); lcd.print ("Vog:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (vog); lcd.print ("%"); as (vog = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("hoë vog"); HighUmid = 1; LowUmid = 0; } Vorige waarde = vog; }

Laastens sal die stelsel die waarde van vogveranderlike in die veranderlike van die vorige waarde stoor om die waarde daarvan te aktualiseer. Elke keer as 'n nuwe waarde op die skerm verskyn, word die veranderlike Vorige waarde geaktualiseer om in ander siklusse van die verwerking van die kode gebruik te word. die grondvogvlak.

Stap 5: Erkennings

Die Silícios Lab bedank PCBWay vir sy ondersteuning en werk saam. En ons het baie voordele vir u. Verdien 10 gratis PCB's en baie boontjie -munte (weet meer) om produkte op die PCBWay -webwerf te verhandel.

Benewens hulle, bedank die Silícios Lab UTSOURCE vir sy ondersteuning, omdat hy ons die goedkoop elektroniese komponente van uitstekende gehalte en goeie diens aangebied het.

Aanbeveel: