Betta Fish Sitter - Create an Automatic Fish Feeder & Temperature Regulator Using a Laser Cutter & Fusion 360

by fantasticfink in Living > Pets

763 Views, 3 Favorites, 0 Comments

Betta Fish Sitter - Create an Automatic Fish Feeder & Temperature Regulator Using a Laser Cutter & Fusion 360

IMG_20190503_150813.jpg

I created an automatic fish feeding machine that also regulates the water temperature using your use own water heater. This project is in the prototype stage. I would like to implement more features in the future, including a waterproof 3D printed housing and app connectivity.

This project's parts total on Amazon for around $121 plus tax, but you if you can purchase some pieces individually rather than in bulk, it will reduce the price significantly.

Parts Needed

Untitled2.png

Laser Cut & Configure the Housing

IMG_20190503_150932.jpg

Follow along with the Fusion 360 joint box listed below using the following measurements:

Length: 279.4 mm

Width: 152.4 mm

Height: 76.2 mm

Thickness: 3.175

After the video, repeat the final step with the bottom panel to create a "lid" panel.

Create a 2 x 2 inch hole in the bottom of the box for the feeder to drop food to the fish, along with a 2 x 2 inch hole in the left panel to allow the heater extension cords to go through.

Once finished, project [P key] to project each object and save them in a format use is used for your 3D printer (I exported my file to InkScape and saved as a .dxf file).

Laser cut the wood in your laser cutter and put the box together. This step should be pretty straight forward. Once the box is configured, use wood glue around the inside edges to keep it together. You can even glue the edges themselves if you'd like.

(I engraved my own FishSitter logo on the top panel. Feel free to design your own!)

Wire Electronics & Code

IMG_20190502_183737.jpg

Follow this tutorial to set up the thermometer to the Arduino using the breadboard kit and insert the code into your Arduino software:

https://create.arduino.cc/projecthub/iotboys/how-t...

Use the relay to create a temperature controlled extension cord. The tutorial is found here:
https://www.instructables.com/id/Arduino-smart-ext...

Cut a small hole in the side of the condiment container to allow food to fall through. Remove the top plastic piece of the container and use the rivet gun to attach a small piece of laser cut wood to the top of it. Drill through the piece to make a small hole to connect the stepper motor end to and attach it to the stepper motor (this will allow the container to spin).

Follow the instructions below to attach the stepper motor with driver board to the Arduino:
https://42bots.com/tutorials/28byj-48-stepper-moto...

Use this as a reference to the stepper motor code:
https://www.airspayce.com/mikem/arduino/AccelStepp...

Upload the code to the Ardunio using the software and test it to make sure it works. I made a smaller length of time for when the feeder spins to test it. You will want to change the wait time to 86400000 milliseconds, or one full day.

Below is a copy of my temperamental code I used for the project:

/********************************************************************/
// First we include the libraries #include

#include <OneWire.h>

#include <DallasTemperature.h>

#include <AccelStepper.h>

#include <AFMotor.h>

/********************************************************************/

// Thermometer

// Data wire is plugged into pin 2 on the Arduino

#define ONE_WIRE_BUS 2

float Temp;

/********************************************************************/

// Thermometer

// Setup a oneWire instance to communicate with any OneWire devices

// (not just Maxim/Dallas temperature ICs)

OneWire oneWire(ONE_WIRE_BUS);

//Stepper Motor

AccelStepper stepper(AccelStepper::FULL4WIRE, 8, 9, 10, 11);

AF_Stepper motor1(200, 1);

// you can change these to DOUBLE or INTERLEAVE or MICROSTEP!

void forwardstep() {

motor1.onestep(FORWARD, SINGLE);

}

void backwardstep() {

motor1.onestep(BACKWARD, SINGLE);

}

/********************************************************************/

// Pass our oneWire reference to Dallas Temperature.

DallasTemperature sensors(&oneWire);

/********************************************************************/

void setup(void) {

//foodSpinner.attach (9);

pinMode(2, INPUT);

pinMode(3, OUTPUT);

// start serial port

Serial.begin(9600);

Serial.println("Dallas Temperature IC Control Library Demo");

// Start up the library

sensors.begin();

//Stepper Motor

stepper.setMaxSpeed(50);

//stepper.setAcceleration(100.0);

stepper.setSpeed(50);

//stepper.moveTo(20000);

}

void loop(void) {

//Thermometer

// call sensors.requestTemperatures() to issue a global temperature

// request to all devices on the bus

/********************************************************************/

Serial.print(" Requesting temperatures...");

sensors.requestTemperatures(); // Send the command to get temperature readings

Serial.println("DONE");

/********************************************************************/

Serial.print("Temperature is: ");

Temp = sensors.getTempCByIndex(0);

if (Temp < 23) digitalWrite(3, HIGH);

if (Temp > 27) digitalWrite(3, LOW);

Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?

// You can have more than one DS18B20 on the same bus.

// 0 refers to the first IC on the wire

//delay(1000);

stepper.runSpeed();

}

Set Up

IMG_20190503_205529.jpg

Unscrew the bottom part of the condiment container and put in your fish food (I use Hikari Betta Bio-Gold pellets because the feeder will drop the right amount of pellets and using flakes may overfeed your fish). Screw the container back in with the hole facing up.

Position the Fish Sitter Housing on top of your aquarium so the thermometer is fully submerged in the water and the feeder will drop the food pellets into the tank.

Plug your aquarium heater into the female type B plug and plug the male type B into your home wall outlet.

Now sit back and relax while your betta fish is maintained by itself!