Project tutorial

IoT Pet Feeder © GPL3+

Use to build a smart food dispenser for your pet controlled directly from your phone.

  • 353 respects

Components and supplies

Apps and online services

8ztngd 9
Use this magic link >>

About this project

This IoT pet feeder is our first IoT project with! We are happy to share it with our community to demonstrate how simple it can be to make basic IoT projects with We are also excited to share this project with you because it's based on a product that we worked on in the past called Playdog. You can make the feeder for your pets at home - it's both fun JPand useful.

How does it work?

There are many ways to implement a pet feeder: you can set it to fill up the bowl at a certain time, you can command it to fill up whenever it gets empty, or maybe to give your dog food after they follow a set of orders that you taught them.

In this specific project, we set the feeder to start beeping from time to time. Once the dog comes closer to the device, the PIR sensor recognizes it and the servo is triggered.

In addition, we also decided to add the option to control the pet feeder from our mobile phone, using a pre-defined dashboard made with Freeboard. We saw this as a great opportunity to introduce you to the option of connecting your circuito project to the internet with ESP8266-01 - the wifi module currently available on

Setting up the circuit

When clicking on this magic link, you'll be redirected to, where you'll find that we've already selected for you the components we used in this project.

The components you need are: PIR sensor, Arduino uno (or other), servo, speaker, esp8266-01, and a power source. This is the basic circuit for this project but you can also add many different sensors and other components to the circuit for example, you can add a weight sensor to monitor the amount of food in the bowl or add LEDs that will change according to different parameters.

Once you've selected the components you waLunant, click on Generate and our engines will start working on your circuit and will generate your circuito reply. The reply has three parts:

1. BoM - A list of all the components you'll need for the project, including auxiliary parts such as resistors and capacitors.

2. Step-by-step wiring guide - shows you how to connect all your components to the Arduino board using a breadboard.

3. Code - a sample code for your circuit. This code is not specific for the pet feeder project, but rather it is a sample code that creates an interaction between the different components in your circuit.

To Upload the code, follow these steps:

  • Download the code from the reply
  • Extract it to your computer
  • Open with Arduino IDE
  • Upload to your Arduino

4. Once everything is set up, replace the sample code from the circuito reply with the code in this tutorial. Make sure to leave the //Include Libraries and //Pin Definitions at the top of the code, and also keep all the libraries that are on the original code from

4. Connectivity - this section will guide you how to configure the connection of your project to the internet.

  • Download the dashboard.json file from this tutorial
  • In the reply click "Connect" then “Create Your Dashboard

This will redirect you to and give you a basic dashboard, already connected to your Arduino sketch using a unique ‘thingName’. You can see your thingname in the firmware.ino provided.

  • Click on "clone" - if you don't have a Freeboard account, you'll have to create one at this point. But don't worry, it's free.
  • After sign-up you'll see the following screen:

- Click on the settings icon at the top of the page. This should update your dashboard to look like this:

  • click IMPORT (2)
  • Browse and choose the dashboard.json file you downloaded earlier. This should update your dashboard to look like this:


  • If it doesn’t work - try refreshing the page or try importing again.
  • Check that the dashboard is set up correctly with your firmware. Click on ‘Dweet’ under DATASOURCES (3) You should see this:
  • Make sure that the input thingname is the same as the one in your firmware.ino.
  • Hover over the OUTPUTS pane and click on the new settings icon that appears below the original one.
  • This window will open:
  • click on JS EDITOR and look for this line:
  • change the value to the given ‘thingname’ in your firmwae.ino.
  • CLOSE and SAVE.


Now that you have the electronics set up, it's time to put the parts together.

We designed a 3d printed casing for the servo, the PIR sensor and the speaker.

The .stl files are attached here. This part isn't mandatory and you can choose to connect it in a different way, it's really up to you, but look how nice and colorful it is :)

Congratulations! You're done!

You're pretty much set to go. You may need to make small adjustments in the code and calibrate the different sensors.

We would love to see your take on this project, feel free to share it and ask questions if something isn't clear. Good luck!


IoT pet feeder code
1. Replace firmware.ino test code from with the firmware.ino code here. 2. Make sure to leave "Include Libraries" and "Pin definitions" from the original code (the one generated automatically), 3. Check that the pin definitions remain the same, or change them if needed.

Custom parts and enclosures

speaker mount
servo mount
servo case
PIR case


Pet Feeder Dashboard
Download this file to your computer and import it to Freeboard according to the steps in the "connectivity" section of the tutorial.


Similar projects you might like

Make an Autonomous "Follow Me" Cooler

Project tutorial by Hacker Shack

  • 791 respects

Easy-to-Build Pet Feeder - Phone App control soon!

Project tutorial by Erik de Ruiter

  • 82 respects

IoT Home Security Model

Project showcase by Aaron Kow

  • 222 respects

Remote Controlled Pet Feeder

Project tutorial by Amal Mathew

  • 52 respects

Pet Center - Feed and Entertain Your Pet

Project tutorial by Vítor Barbosa

  • 11 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 518 respects
Add projectSign up / Login