Fish Feeder mit dem Arduino in unter 10 Minuten

Seit ein paar Wochen habe ich ein kleines Aquarium in meiner Wohnung stehen. Als Besatz habe ich ein dutzend Red Fire Garnelen eingesetzt, die sehr pflegeleicht sind und auch mal ein paar Tage ohne extra Futter auskommen. Das ist praktisch, da ich an den Wochenenden häufig nicht da bin und sicher sein wollte das es den Tieren trotzdem gut geht. Ich hatte aber schon länger vor zusätzlich Neonsamler einzusetzten und vor kurzem überraschte mich meine Freundin nun mit ein paar Neons, die sogleich ins Aquarium einzogen und sich wohl fühlten. Doch nun hatte ich ein schlechtes Gewissen – ich wollte die Tiere nicht mehrere Tage ohne Futter lassen und es musste eine schnelle Lösung her. Was wäre wohl besser für so eine Situation geeignet als ein Arduino? Hier ist mein super simpler „Quick&Easy FishFeeder“:

Let’s feed the fish

Das Konzept war schnell gefunden. Ein Arduino, ein Servo und ein Röhrchen voll Futter, dass nach einer bestimmten Zeit um 180° gedreht wird und so das Futter in das Aquarium wirft.

FishFeede1r

Die Programmierung war ebenso einfach. Das Sketch findet ihr am Ende dieses Beitrags. Zu Beginn macht das Sketch einen Funktionstest und dreht das Röhrchen. Danach wird eine warteStunden(24) – Methode aufgerufen und der Arduino wartet mittels delay() insgesamt 86.400.000 Millisekunden (= 24 Stunden). Da der Arduino von einem Quarz getaktet wird, sollte er genauso präzise sein wie jede handelsübliche Quarz-Uhr. Jetzt kann man das Futter vorsichtig in das Röhrchen schütten und kann sorgenfrei ins Wochenende starten. Sind die 24 Stunden verstrichen wird die feed() Methode aufgerufen, die das Röhrchen dreht und die shake() Methode aufruft, die den Servo in 100ms Abständen hin und her zucken lässt um auch den letzten Krümel Inhalt in das Aquarium zu werfen. Anschließend fährt der Servo zurück in die Position 0 und der Arduino wird in eine nie endende while Schleife versetzt. Hier ist die fertige Konstruktion:

IMG_0495

Schön ist er natürlich nicht, jedoch erfüllt er vorübergehend seinen Zweck. Freitags wird von Hand gefüttert und der Feeder gefüllt, Samstags übernimmt der Arduino die Fütterung und Sonntag ist Diättag 😉

In Planung ist Momentan ein schwarzer Oberbau für das Aquarium, welcher ein 1602 LCD und einen DS18B20 Temperaturfühler enthalten soll und die Fütterungsautomatik integriert, zusammen mit einem Dispenser, der nicht nur einmalig funktioniert bevor er wieder aufgefüllt werden muss.

[GARD]

Hier nun der Code:

/* 
  Quick&Easy FishFeeder

  'EinmalFütterAutomat' mit einem Servo
  Servo an Pin 9
  Da der verwendete Servo etwas defekt ist wurde keine komplette 180° Drehung verwendet

  created 18. Jan 2014 
  by Max Hentsch 'MaxTechTV'
  Version 0.1

  Lizenz: CC - BY - NC - SA 
*/

#include <Servo.h>

Servo futterservo;

void warteStunden(int i)
{
  for (int k=1;k<i;k++){
    delay(3600000); 
  }
}

void shake(){
  futterservo.write(130);
  delay(100);
  futterservo.write(140);
  delay(100);
  futterservo.write(130);
  delay(100);
  futterservo.write(140);
  delay(100);
  futterservo.write(130);
  delay(100);
  futterservo.write(140);
  delay(100);
  futterservo.write(130);
  delay(100);
  futterservo.write(140);
}

void feed(){
  futterservo.write(140);
  delay(200);
  shake();
  futterservo.write(30);
}
void setup()
{
  futterservo.attach(9);
  futterservo.write(20);
  pinMode(13,OUTPUT);
  feed();
  digitalWrite(13,HIGH);
  delay(30);
}

void loop(){
  warteStunden(24);
  feed();
  digitalWrite(13,LOW);
  while(true);
}

 

 

Das könnte Dich auch interessieren...

Kommentar verfassen

%d Bloggern gefällt das: