Kamerplant Water Meter

by terkuilezhemin in Circuits > Arduino

1542 Views, 8 Favorites, 0 Comments

Kamerplant Water Meter

IMG_0319.jpg
IMG_0314.jpg
IMG_0313.jpg

Wat ga ik maken.

Ik ga een apparaat maken dat een bodemvochtigheid kan meten voor mijn planten. Het moet gelijk duidelijk zijn of er genoeg water in de planten pot zit.

Waarom ga ik het maken?

Ik geef mijn planten vaak te veel of te weinig water. Waardoor ze doodgaan:( Waarschijnlijk verspil ik ook te veel water. Ik wil op een manier kunnen zien of de plant genoeg water heeft. Het moet voor mij ook gelijk zichtbaar zijn of het genoeg water heeft. Daarom was het voor mij het beste als het lampjes zijn i.p.v. een scherm of geluid. Ik moet gelijk kunnen zien met indicaties of er genoeg water is. Ik merk ook dat als ik mijn planten watergeef dat het veel te veel is. Waardoor planten die ik heb doodging.

Supplies

Arduino materiaal

  • Arduino uno of een ander Arduino set.
  • moisture sensor 2.0/1.2
  • Kabels/batterij voor stroom.
  • Arduino kabeltjes om het bijelkaar te doen.
  • Soldeerapparaat
  • LED lampjes.
  • Een doosje of bakje om alles bij elkaar te doen

Omhulsel materiaal voor de 3d print doos

  • 3d software bijvoorbeeld Maya, 3ds Max of ander programma.
  • 3d printer
  • 3d print filament
  • 3d print software bijvoorbeeld cura.

iteratie 1.png

Gewerkt aan een tekening voor een basis opzet. gekeken hoe het ongeveer eruit gaat zien. Gekeken op internet hoe je grond metingen kan doen om te kijken hoe je vochtigheid kan meten. Alle planten hebben verschillende soort hoeveelheid water nodig om te kunnen leven. Het wordt wel moeilijk om te bepalen wat de limiet wordt voor de sensor om te meten.

Versie waar alles in een plastic bakje gaat. Je steekt het bakje in een plant en de sensor
berekent hoe vochtig de grond is als je het water geeft

Iteratie1

IMG-0085.jpg
IMG-0092.jpg
IMG-0093.jpg

Gewerkt aan een prototype. Ik heb paar kleine test gedaan over hoe groot het bakje kan zijn zonder dat het omvalt. Het bakje mag ook niet te groot zijn anders kan het omvallen.

Had wel een probleem want het plastic was veel te hard om te snijden waardoor ik de kabel niet goed erin kreeg. Een stuk van mijn stanley mes ging kapot. De sensor getest of het werkt. Ik krijg het nog niet helemaal voor elkaar.

Daarna nog gekeken wat ik nog meer nodig had.

Iteratie 2 Andere Omhulsel

iteratie 2.png
Capture.PNG
IMG-0115.jpg

Een ander omhulsel ziet er wat beter uit. De Arduino is beter verborgen . Ik heb de bodemsensor werkend gekregen volgende stap is om te kijken of het klopt. Ik heb verschillende planten getest Agave planten en vet planten mogen over 60% vochtigheid hebben.

Korte reflectie

Ik moet echt kijken wat voor omhulsel ik moet hebben. Water vochtig staat nu in grote getallen zoals 260 etc. Handiger omdat te veranderen naar % vochtigheid

Iteratie 3.1 Start 3d Print

3d render 1.jpg
3d render 2.jpeg
3d render 3.jpg

Gekeken of ik het doosje anders kon maken. Ik had geen materiaal om het te snijden. Ik heb gekozen om een bakje te maken met 3d.

Ik heb een 3d model gemaakt voor mijn bakje. een afspraak gemaakt om het te 3d printen. Ik heb geleerd dat je het model in meerdere onderdelen moet maken anders ben je veel te lang bezig. mijn bakje duurde namelijk 24 uur om het te 3d printen met het deksel erbij duurde het 32 uur in totaal.

Iteratie 3.2 Start 3d Print

3d render 6.PNG
3d render 7.PNG
3d render 8.PNG
3d render 9.PNG
3d render 10.PNG
IMG-0296.jpg

3d model aangepast in 3 segmenten. Hierdoor kost het minder tijd om 3d model te printen. Het duurt nu nog maar ongeveer 12 uur.

3d model geprint het past goed allemaal bijelkaar. Arduino erin gedaan.

Iteratie 3

board.jpg
IMG-0308.jpg
IMG-0298.jpg
IMG-0299.jpg
IMG-0301.jpg
IMG-0295.jpg
iteratie 3.png

Laatste iteratie.

Voor deze iteratie zitten alle arduino onderdelen in het bakje. Code aangepast zodat de rotary encoder goed werkt. De lampjes passen nu goed tussen de gaatjes met de rotary encoder.

Met rotary encoder kan ik nu makkelijker de minimale waarde veranderen voor de moisture sensor waardoor het lampje op een andere waarde aan gaat zo kan ik per plant de waarde aanpassen.

Eerst in een plastic doosje gedaan maar dat vond ik niet mooi eruit zien. Ik heb een compact doosje gevonden waar veel componenten netjes erin kan.

Laatste Fase

arduino project hku
IMG_0314.jpg
IMG_0313.jpg
IMG_0312.jpg

Als je de sensor in een planten pot doet dan gaat er eerst een rood lampje af waardoor je ziet dat er te weinig water is. Als je dan water in de planten pot doet gaat de sensor naar blauw. Als de sensor blauw is weet je dat er genoeg vocht in de planten pot zit. De vochtigheid grens kun je nu aanpassen door aan de rotary encoder te draaien.

met de rotary encoder kan je aanpassen wat de limiet is van de moisture sensor.

Code Arduino Project


const int dry = 595; // droogheid van de sensor
const int wet = 239; // natheid van de sensor
int LED1 = 11;
int LED2 = 10;

int basispositie = 450;
int goedeVochtigheid01 = 450;
int goedeVochtigheid02 = 650;
int goedeVochtigheid03 = 850;

int ondergrens = 550;
int bovengrens = 850;
int knobPosition = 0;
int oldState;
int thisState;

int outputA = 4;
int outputB = 5;
int counter = 0;
int aState;
int aLastState;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);

  pinMode (outputA, INPUT);
  pinMode (outputB, INPUT);
  aLastState = digitalRead(outputA);

  int sig1 = digitalRead(outputA);
  int sig2 = digitalRead(outputB);

  thisState = sig1 | (sig2 << 1);
  oldState = thisState;
}

void loop() {
thisState = digitalRead(outputA);

   // If the previous and the current state of the inputCLK are different then a pulse has occured
   if (thisState != oldState){ 

     // If the inputDT state is different than the inputCLK state then 
     // the encoder is rotating counterclockwise
     if (digitalRead(outputB) != thisState) { 
       counter --;

     } else {
       // Encoder is rotating clockwise
       counter ++;

     }
   } else{
       counter = 0;
   }

  Serial.println(counter);

  oldState = thisState;

if(counter > 0 && basispositie < bovengrens){
      basispositie += 50;
  }if(counter < 0 && basispositie > ondergrens){
      basispositie -= 50;
  }
  Serial.println(basispositie);

 
  int sensorWaarde = analogRead(A0);
  // sensor range 239 - 595
  Serial.println(analogRead(A0));
  delay(100);

  if (sensorWaarde < basispositie) {
    digitalWrite(LED1, HIGH);
    digitalWrite(LED2, LOW);
  } else {
    digitalWrite(LED1, LOW);
    digitalWrite(LED2, HIGH);
  }


  //delay(500);
}

Reflectie

Ik heb veel geleerd over hoe je met Arduino moet werken. In welke poorten welk aansluiting moet. Ik heb ook nog nooit eerder zo iets gedaan wat ik super leuk vond. Ik vind dat eindresultaat goed gelukt is. Ik kan nu zien of ik genoeg water geef aan mijn planten en hopelijk gaan er minder planten dood.

Ik moet ook beter leren budgetteren want ik merk dat ik soms niet genoeg geld had voor bepaalde onderdelen. Ik had ook eerder feedback en hulp moeten vragen.