IOT Pet Feeder Using the Blynk Mobile App & an ESP8266 Module

by oliverb in Circuits > Arduino

30837 Views, 134 Favorites, 0 Comments

IOT Pet Feeder Using the Blynk Mobile App & an ESP8266 Module

feedinganimsilver_b.gif
feeder_completeda03lable_no.jpg
cat_feeder_animation.gif
whitetray_d_550_5fps.gif

Intro

This project uses an ESP8266 WIFI board via the Blynk Mobile app to trigger a measure of dry food for your cat or in a suitable outdoor enclosure Koi Carp pellets for your fish pond.

Only a few basic electronic components are used and any wiring is kept to a minimum.

Further details can be found on my web site here Pet Feeder Web Page

There are many Instructables on using the ESP8266 board just search this site or try this Intructable

Two old mobile phones are used as a video servers one monitors the feeding via the Blynk app and another is used as a general IP cam using IP Webcam Pro. The feeder uses the hopper from a cereal feeder and has a stepper motor attached to the feed flaps to rotate them an exact dose of dry food.

Although the hopper can feed 34 measure of food we would only really use this if we were away for the weekend. We also have neighbours/friends and family who could look in on the cat if there are any problems. Our cat has access to the utility room via a cat flap and I use a 2nd old mobile as a monitor to check she is coming and going OK.

Features/Functions

Feeder

34 individual feeds

Thermal fused for safety

Designed to be hidden away in a cupboard

Manual feed button

Blynk App

Start Time and Date

Last Fed Time and Date

Individual display of Manual, Timer and App feeds

Manual feed from App button

Feed bowl view from remote camera

Timer On Off control

Display of 1 st and 2nd timer feeds

Calibration button

Feed Hopper food level indicator

PET Safety

IPCamPro05.jpg
IPCamPro_window.jpg
water_dispenser.jpg

Using this feeder you could probably feed your cat in an emergency for a couple of weeks (my cat has a cat flap to the garden so can come and go as she wants) but this is not recommended.

I only really use it if I will be away for the weekend and then I can always call a neighbour to look in on my cat if I have any concerns.

I also use a couple of video cameras, one to keep an eye on the feeder via the Blynk app and uses the RTSP Camera Server from Google play and one to monitor the room where my cat can access from the garden.

The cameras used to monitor the cat's room is an old mobile phone that uses an app called IP Webcam Pro and it is is available from the Google Play store. IP Webcam Pro turns your old mobile into an IP cam so you can access the camera from the internet to monitor your PET on video and audio.

The camera is mounted on a cheap car phone mount and is powered over it's charger lead.

Pic 1 IP Cam Pro running on an old S4

Pic 2 Once running and port forwarding enabled the video feed can be viewed from the internet on your mobile, tablet or laptop.

Pic 3 Make sure your pet has enough water while you are away by using one of these water dispensers.

Parts List

S3screenshot.jpg
IPCamPro05.jpg

Hardware

Cereal dispenser

Timber off cuts

Wood screws

2 Old mobile phones

Mounting boxes

Motor Shaft Coupler

Electronics

ESP8266 WIFI board

NEMA 17 Stepper motor with integrated planetary gearbox with a 26.85:1 gear ratio

Stepper motor mounting bracket

LM2596 step down voltage converter module

Dual H Bridge Stepper Motor Drive Controller Board Module

Thermal Fuse EYP28H115

Push Switch

Fuse Holder with fuse

2 x capacitor and 1 resistor see schematic for details

Vero board see layout for details

Notes

I used an old Samsung S3 and S4 for this project. I had these laying around. The S4 has a cracked screen but as it is on used as an IP camera it does not matter. The feed bowl camera is powered from the feeder and the room monitor camera is powered from it's mains charging plug so if the phone batteries are naff it doesn't matter.

Pic 1 shows the S3 monitoring the cat bowl using the RTSP Camera Server from Google play

Pic 2 shows the S4 monitoring the cat's room using IP Webcam Pro also available from the Google Play store

Design

cat_feeder_animation.gif

Design

The feeder is designed to be fitted in a kitchen base unit. Any size down to around 300mm width should be fine. Using a short length of standard 68mm down pipe cut through the base of the cabinet and a 112.5° Offset Bend to allow the pipe to exit the cabinet through the plinth and into the cat/dog bowl. Once the feeder operates gravity will take the feed down the pipe and into the bowl.

The feeder frame is made from offcuts of timber I had laying around in my workshop. A standard cereal dispenser is fitted to this wooden frame and a stepper motor is attached to the drive shaft instead of the manual control handle.

If you are feeding fish outside then a waterproof cabinet will need to be constructed on the side of the pond.

Construction

cereal_dispenser.jpg
feeder_mount.jpg
feeder_bracket.jpg
feeder_handle.jpg
feeder_dshaft.jpg
feeder_completeda02lable.jpg
feeder_sideview.jpg
fuse_board_mount01.jpg
feeder_front01.jpg
feeder_back01.jpg
stepper-motor-bracket01.jpg
feeder_front01full.jpg
feeder_side01.jpg

Pic 1 The feed hopper parts are obtained from a Wall Mounted cereal Dispenser available from Ebay.

You can get them in singles doubles or triples. I ordered a triple so I had spare parts in case I damaged anything in the design/build process.

If you use the same hopper as me then you know they are easy to dismantle and re-build into this project.

Pic 2 and 3 Disassembly of the Cereal Dispenser

To take apart the old dispenser remove the dispensers from the wall mounting brackets. Then remove the brackets from the wall mount. The brackets are fixed to the plastic wall mounts by two self tapping screws, remove them all.

Pic 3 The brackets can then be re-used in the final project.

Note when fixing the brackets to the new feeder use flat head screws and don't over tighten or the plastic on the brackets could break away.

Pic 4 The old hand lever is pulled out of the dispenser with the plastic D shaft.

Pic 5 The plastic D shaft is then pulled out of the hand lever ready to be fixed to the motor coupler. The plastic handle is not used in this project.

Pic 6 Build the wooden mounting frame using timber offcuts. The sizes are shown as a guide only and the height especially can be reduced if required.

Pic 7,8,9,10 & 11 Show construction details. Note the plastic hopper bracket is fitted just below the wooden mounting bar to allow the connection of the drive shaft to the stepper motor.

Pic 12 Shows the stepper motor bracket. This is bolted to a small piece of timber screwed to the rear of wooden mounting bar. Detail in pics 8 & 11.

Pic 13 Shows the 2 plastic project boxes mounted on the wooden legs of the frame. The box on the left contains the power and stepper motor driver modules and the box on the right contains the ESP8266 module and manual feed switch.

Electronics

ESP12E.jpg
DCDCmodule.jpg
LN298.jpg

Overview


Safety

Power to this project is from my common 12volt power supply. This supply can deliver 12volts at 10 amps so I always use fuses in my projects. I have also used a thermal fuse strapped to the stepper motor. This is probably overkill but this fuse will shut off power to the stepper motor and the other project components if it overheats.


The measured current draw with motor running and mobile phones running as IP servers is 250mA so you can easily power this project from a wall mounted power module if required. Depending on the safety devices in your chosen power module you may or maynot need fuses.

Design

I have used modules where possible to keep the design and construction of this project as straight forward as possible.

Veroboard is used to mount some of the components/modules there is no PCB layout or design. I have used a fuse on the main 12v input to this project. The power cable is rated at 2 amp and I have used a 1 amp fuse. I have also fitted a thermal fuse attached to the stepper motor housing as as additional safety device.

ESP8266 module Pic 1

The ESP8266 module contains a CP2102 chip to allow direct programming via Arduino IDE from a Windows PC or Mac.

This module connects to the Blynk server via your WIFI router. The module then controls the stepper motors and provides feedback to your mobile Blynk app.


Specification:

Chip Module: CP2102

Working temperature: -40 ℃ ~ + 125 ℃

Power input: 4.5V ~ 9V (10VMAX)

USB-powered Current: continuous transmission: approx. 70mA (200mA MAX)

Standby: <200uA

Size: approx. 45 x 25 x 6mm/1.77 x 0.98 x 0.23'' Weight: approx. 6g

Voltage Regulator Module LM2596 Pic 2

Power for the L298N, ESP8266 module and the Samsung S3 mobile phone is delivered by a LM2596 DC to DC converter.
The 12v feed used by the stepper motor is dropped down to 5volts. The circuit uses 160mA with the mobile On (display off) and the video server app running. This rises to 250mA wit the the stepper motor running.

Voltage Regulator Module LM2596Specifications:

Rectification mode:Non-synchronous rectifier

Module property:Non-isolation buck

Input voltage:4V-40V

Output voltage:1.5V-34V(Adjustable)

Output current:Rated current is 2A,maximum 3A(Additional heatsink is required)

Conversion efficiency:92%( highest )

Switching frequency:65KHz

Output ripple:30mV( maximum )

Voltage regulation:± 2.5%Load regulation:±0.5%Dimension:43mmx21mmx14mm(LxWxH)

Motor Drive Controller Board Module L298N Dual H Bridge DC Stepper Pic 3

Specifications
L298N as main chip

High working voltage to 46v,large current can reach 3A MAX and continue current is 2A, power to 25w.

Can drive one 2-phase stepper motor, one 4-phase stepper motor or two DC motors. Built-in 78M05,get power from drive power, however, when drive power is over 12V, use the external 5v power as power supply.

Large capacity filter capacitance, back EMF protection diode, more stable and reliable.

Specification: Double H bridge drive Chip: L298N (ST NEW) Logical voltage: 5V Drive voltage: 5V-35V Logical current: 0mA-36mA Drive current: 2A(MAX single bridge) Max power: 25W Size:43 x 43 x 26mm(LxWxH)

Note: This module has a built-in 5v power supply, when the driving voltage is 7v-35v, this supply is suitable for power supply DO NOT input voltage to +5v supply interface, however leading out 5v for external use is available. When ENA enable IN1 IN2 control OUT1 OUT2 When ENB enable IN3 IN4 control OUT3 OUT4

Module & Board Layouts

boxl.jpg
boxr.jpg
boxr01.jpg
vero_fuse_board.jpg
vero_fuse_board_back.jpg
fuse_board_mount01.jpg

The modules are housed in Perspex topped boxes

Pic 1 The LN298 H Bridge stepper motor module and DC to DC converter in 1 box

Pic 2 The ESP8266 module is housed in the 2nd box

Pic 3 2nd box with ESP8266 module removed to show Vero Board layout

Pic 4 Vero Board Layout of the Fuse Board

Pic 5 Rear of Fuse Board

Pic 6 Cutaway shows position of fuse board above the stepper motor.

This allows the thermal fuse to be physically connected to the stepper motor (clamped in place by twisted copper wire)

Stepper Motor

stepper.jpg
stepper_motor_drawing.jpg
Motor_shaft_Coupling.jpg
stepper-motor-bracket01.jpg

Pic 1 This is a short geared NEMA 17 Stepper motor. It has an integrated planetary gearbox with a 26.85:1 gear ratio, the resolution reach 0.067°step angle.

It's a good solution in applications that need very low rotation speeds and/or lots of torque. I tried an identical motor without the gearbox and it was OK until I added the pet food into the hopper then it jammed.

Pic 2 Shows the stepper motor dimensions.

The stepper motor is connected to the feeder drive shaft by a drive coupler Pic 3

Couplers come is most sizes, my motor has a 6mm shaft and the feeder has a 8mm shaft.

Pic 3 shows the stepper motor mounting bracket. Make sure your bracket has the extra inner holes for mounting to the planetary gearbox.

My Stepper Motor Specs

Manufacturer Part Number17HS13-0404S-PG27

Motor Type Bipolar

StepperStep Angle(W/O Gearbox) 1.8°

Holding Torque 3NmRated

Current/phase 0.4APhase

Resistance 30ohms

Recommended Voltage 12-24V

Inductance 34mH±20%(1KHz)

Gearbox Type Planetary

Gear Ratio (Exact Gear Ratio)26 + 103/121

Efficiency 81%

Backlash at No-load<=1°

Max.Permissible Torque 3Nm(425oz-in)

Moment Permissible Torque 5Nm(708oz-in)

Shaft Maximum Axial Load 50N

Shaft Maximum Radial Load 100N

Schematic

schematic02.jpg

Note the shematic has an error 5v out from the LM2596 OUT+ should be connected to the 5v on the stepper motor driver board. The OUT- should go to the 0v on the stepper motor driver board.

The schematic is very simple and there is not too much wiring to do.

12v is fed to the LM2596 voltage module and stepper motor 12v input via a 1amp cartridge fuse and a 2a Thermal fuse rated at 115°C.

The LM2596 voltage module provides regulated 5v to the ESP8266 module, the stepper motor module 5v input and also 5v to power the feed bowl monitor camera.

The ESP8266 module has a manual feed switch connected to it. The input is held low via a 10K resistor to 0v when the switch is not operated.

D1 to D4 on the module connect to the Dual H bridge stepper motor module.

The Dual H bridge stepper motor module Out 1 to 4 connect to the stepper motor connector.

Note

Note:
The Dual H bridge stepper motor module has a built-in 5v power supply, this is not used and is disabled using the link on the module.

When ENA enable IN1 IN2 control OUT1 OUT2 When ENB enable IN3 IN4 control OUT3 OUT4. Enable both these using the links on the module.

The Blynk App

Feeder_control.jpg
startup_animationS7_700.gif
closeup_c_5fps.gif
feedinganimationS7_01.gif
Cat Feeder3.png
widget setting.JPG
Blynk_Widget_Settings.jpg

Blynk was designed for the Internet of Things. It can control hardware remotely, it can display sensor data, it can store data, visualize it and do many other things.

See the Official "how Blynk Works" page for more details.

Pic 1 The main app page shows details of each Blynk widget

Pic 2 On return from power loss or on restart the Start Date and Time and all count are reset to 0 (the Hopper count returns to 34). The Last Feed Date and Time however do not reset as it is important to know when your pet was last fed.

Pic 3 The adjust button is used to calibrate the feeder. Each time the button is pressed the feeder rotates a few degrees to set the feeder flaps in the correct start position for feeding.

Pic 4 Feeding from the Blynk App

The animation shows how the app looks when a feed is made from within the app. On pressing the feed button there is a short delay while the stepper motor rotates the feeder flaps. Once the stepper motor stops the ESP8266 module sends a signal back to update the "App Feeds" count ,take a feed off the current Hopper value and update the "Last Time & Date Fed" . The bar counter drops 1 feed level as well.

Pic 5 Clone this project

Log in to the Blynk app and press QR button in Projects gallery. After scanning the the QR code Pic 5 a new Project will be created, all the widgets, settings, layout will be cloned. You will need enough Energy Balance to clone my Project.

Pic 6 Shows the Blynk Widget settings used for this project.

Pic 7 Shows the pin numbers for each widget

Blynk Video Stream Setup

S3screenshot.jpg
Camera_server.jpg

Pic 1 Setting up the Video Stream on Blynk can be a bit tricky.

The Blynk help guide says" Simple widget that allows you to display any live stream. Widget supports RTSP (RP, SDP), HTTP/S progressive streaming, HTTP/S live streaming. For more info please follow official Android documentation. At the moment Blynk doesn’t provide streaming servers. So you can either stream directly from camera, use 3-d party services or host streaming server on own server (on raspberry for example)" I have tried many different I/P cameras but could not get them to work. I have opted to use an old Samsung S3 as a video server using an app called RTSP Camera Server from Google Play. the icon can be seen in Pic 2.

Once setup I was able to get video and sound onto my Blynk Video Streaming Widget. The settings are crucial as the video will only display if the setting are exactly right. The sound seems to play on most settings.
The table below shows the settings that worked on my setup S3 camera server and S7 running Blynk. The encoder setting will probably differ from phone to phone but try h264 if that is an option on your phone.

RTSP Camera Server Settings

VideoResolution320x240

Frames per Second15

Aspect ratio4x3

QualityMedium

EncoderOMX.SEC.AVC.Encoder

Capture MethodGLSurface(fast)

Overlay info

Battery info On

IP Address Off

Signature S3

Time Stamp On

Bitrate 240 Kbits/s

Keyframe Interval 3 sec

Audio

Enable microhone On

Stereo Off

Sampling Rate 8000

RTSP Setup

Enable recording On

RTSP Port 5560

HTTP Playlist Port 8094

Blynk Video Streaming Settings URL Address rtsp://dyndnshostname.dyndns.org:rtsp port number/camera
To test locally rtsp://camera IP address:8094/camera Set RTSP and HTTP Playlist Port to suit your network On your Hub/Router set port forwarding for your camera/phone to the RTSP Port (or HTTP Port if testing locally) Don't forget to set your Dyndns Host name and Dyndns password in the settings as well.

Code

I have included the code for this project.

You will need to add your WIFI credentials and Blynk auth token and upload it to the ESP8266 WIFI board.