Introduction: Smart Pet Feeder

About: Student at Howest Kortijk (NMCT)

Well, we all love our pet's, don't we.

But still we tent to forget them sometimes and that is something that we dont want.

Therefor in this insctuctalbe we will lear how to build your own smart pet feeder with a raspberry pi, a mysql database and a flask server.

Note: This instructable is a part of a semi-endproject at Howest Kortrijk (NMCT)

PS: I have dyslexia so it isn't easy to see grammer mistakes (even harden when it isn't your native language), if they do happen, sorry.

Step 1: Hardware and Tools Required

What we will need:

Electric:

a raspberry pi and 8GB sd cart

5V/ 2A power supply

ethernet cable

breadbord

breadbord cables

breadbord power supply + power supply

a sevo motor

a ultasonic distance module

a pir

a mpc

some resistors (most 10k and 1k)5V

a load cell + amplifier

Case:
2 empty wine chests

2 dog bowls (look good at the type)

a empty box

some leftover wood

a piece of garding hose

bolts and nuts:

4: M5 * 100 mm

8: M5 nut

6: M4 * 40mm (or something similar)

6: M4 nut

25: M2 * 20mm

24: M2 * 20mm nut

some custom 3D printed parts (linked)

spray paint

varnish + brush

wood glue

sand paper

electical tape

a tiny saw

a flask

some strings

Tools:

safety goggles

a drill

a saw (a tiny one will do the job but it's more work)

Other:

a pet that needs to be monitored

Step 2: Preparing the Pi, Installing Mysql

In order to store data we need to install a MySql server on your pi.

if you are readin this I suppose you already have raspian jessie installed, if not: click_here

Connect you pi to a monitor (or for the advced users a ssh client) and a ethernet cable from the pi to your pc

Log in (default loginname = root, pasword = raspberry)

Go to the terminal app and type the following rules:

sudo apt-get install mysql-server python-mysqldb

He will now asks to set a root pasword, remerber this!!!

Then type:

mysql -uroot -p

You will be prompted to fill in your root pwd

Then type:

CREATE USER 'petfeeder_sql'@'localhost' IDENTIFIED BY 'Tinfoil';

GRANT ALL PRIVILEGES ON *.* TO 'petfeeder_sql'@'localhost' WITH GRANT OPTION;

CREATE USER 'petfeeder_sql'@'%' IDENTIFIED BY 'Tinfoil';
GRANT ALL PRIVILEGES ON *.* TO 'petfeeder_sql'@'%' WITH GRANT OPTION;

After that type

quit

then type

ifconfig

and note the inet number that is next to the eth0 (see pic)

type

exit

the terminal wil be closed

go back to your pc and install mysql workbench (link)

once this is done you will see the home page (pic)

click on the plus icon

and select tcp/ip over ssh (pic)

ssh hostname the ip you needed to note

ssh username: pi (if you haven't changed it)

ssh password: raspberry

username: petfeeder_sql

password: Tinfoil


if everything went ok you see an emtp field (pic)

download the attached file (petfeeder_create_db.sql)

open this by right click open with texteditor, then copy eveything and past it into the empy field you see.

click on the lightning icon

at the bottom of the sceen some messages will appear

Step 3: Make the Case

As you can see the case is made from 2 wine chests. One is layen down an the other one is staning on top.
It's important make all the measurements verry presicly. Otherwise it won't fit. (take a look at the pics to see all the measurements i made)

The flat chest

The flat chest houses the 2 bowls and the other chest. Measure the with of your bowl, subtract the border (add some kind of spacing to) and use this value to decide where your bowls needs to come. If you found the right place (I do recommend you to go as close as possible to the side) draw a square around it (yes a square, not a cirel). Use this square to find the center and prepare the dill holes (2 * M5) After this you can draw your circle.

At the top / side draw a rectaliag as big as the bottom of the other case. Draw in this some shapes to use for your wires, make sure that you also do this ath the bottom of the other case!

Standing chest: Draw at the sides the holes for the buzzer, and the 3D printed tube holder. At the top make a square big enough for the lcd, a hole for the flask and a hole for the arm, i do remmond you to use for his part all mine settings as the 3d are made for this.

The "arm"
These are the holes for the modules and should be the same.

Drawing done? Start Drilling


Drilling done? Start Sanding

Step 4: Assembly: Load Cell & Other Chest

Start with putting 2 M5 bolts though the holes you made.

Then connent the load cell to it.

After that use take the 3d printed adaptor and 2 M4 screws and mount them like in the picture.

Finnaly connenct the all of them together.

Doing this is harder then you think, always verify if evertyhing is straght and do chech with your bowl. One bowl shoud stay on this and 'floats" above the case.

If you followed the dimensions I used you can now put the chest on top of the other chest and use the 4 M4 screw to connect them

Step 5: Mount All the Sensors

LCD

Start with putting 2 screws at the lcd holes an screw a bit through the case.

Take the 3D printed overflow adaptor and screw that first. After his screw the other bolds and nuts (see pics for more and better info).

Arm
Take the "arm" and screw the ultrasonic and pir to it. Then connect some breadboard cables to the pins and put them through the hole at the top.

Buzzer + Led

Wire the buzzer and the led.

After this bring the cables down to the place where the pi is.
use the electrical tape for extra safety

Step 6: Make the Provision Box

Take your box and make a hole as big as the adatpor is. (you can sandpaper that if you want)

Chech if your hole is big enough: Yes = Make the holes for the servo. After that is done you can make the holes for the ldr's. Sipmy take a ruler: max lenght were food can come =100%, ... Do this for the 10%, 25%, 50%, 75 % After dat punch holes, put the ldr trough them and use some electral tape. You can solder the wires if you want.

Step 7: Wire Eveything:

Now that almost evey component is connected it's time to wire eveything!

Included is a breadbord schem how you need to do it.

I do reccomen you to use the same color.

(the load cell aplifier still needs to be conneted but he does not need a specific place)

Step 8: Download the Filles

download the filles from my github:

code: code

web: website

take your sd card out of the rbp

put the filles on it.

Then go back to the terminal and start them by the command:

python3 Website.py (for the website)

python3 Main.py (for the hardware)

when you now acces the ip of step 2 you wil see the website

wait and enjoy!!!