Giter VIP home page Giter VIP logo

feedgoo's Introduction

FeedGoo

Raspberry Pi-powered cat feeder written in Python that operates a high-torque servo-powered cereal dispenser (the kind you find in hotels) to deposit food down a pipe into a bowl to a smiling cat. Pics are posted to Twitter, of course. Uses Cronitor to monitor whether feedings are occurring per schedule.

Add the following line to your crontab (adjust timing as necessary) to schedule your feedings:

20 10,22 * * * /home/USER/FeedGoo/v1/man_feedgoo.py

If you notice that the schedule isn't operating correctly and you want to trigger the servo immediately on an ad hoc basis, do the following (future versions will include hooks to IFTTT):

python man_feedgoo.py

Both feedgoo.py and man_feedgoo.py write to feedgoo.log to /var/log/feedgoo/ directory.

Integrations

There are two services that are called in this script - Twython to post images to Twitter, and Cronitor to monitor the feeding schedule (and alert you if the cat hasn't been fed). Uses Twython for Twitter-integration so follow its docs to get your Consumer Key, Consumer Secret, etc., and sign-up for a free account on Cronitor to build a monitoring service, and add the Twython and Cronitor details to configvars.py.

Schema - How to build this

Here's the Parts List I used to build the cat feeder along with where I purchased the item. Prices, shipping, etc. may vary but all-in, including the Pi, this project ran me CAD$125.

You'll need the schema (pardon the diagram): Schema

Finished Product

When you're done, you could end up with something like this! I mounted the cereal dispenser on an old piece of poplar, and used a router to make room in the back of the wood for the Pi and breadboard when mounted on a wall.

Finished Product

Back of Wood

Sidebar

Initially I had used schedule to operate the servo at designated times, which is a very powerful scheduler that doesn't rely on cron (if, for example, you didn't have permission to access it). However, after much testing, it wasn't reliable so I've resorted to cron and no longer use feedgoo.py.

I've left the code in the repo if someone wants to take it from here. If you choose the feedgoo.py route, add the following to your crontab and it'll wait until the scheduled times to operate the servo (set to configvars.py). Doing so also ensures that during a power outage, upon start-up, it'll resume the feeding schedule.

@reboot python /home/mhadpi/FeedGoo/v1/feedgoo.py &

Future Versions

Refer to the Wiki!

Contact

Ryan Matthews
https://ryansb.io
[email protected]

Credits

Inspired by the project by similar name from David M. N. Bryan, [email protected]
URL: http://drstrangelove.net/2013/12/raspberry-pi-power-cat-feeder-updates/

feedgoo's People

Contributors

mhaddy avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

feedgoo's Issues

Suggestion (why not use a servo)

I been this road before and you do not want to use a server they are unreliable you can google other projects and you will see how the cat get overfed or underfed because of the unreliability of the servo. what I would suggests you use a stepper motor they are stronger and very precise

stepper motor reference

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.