Author: Gherman Maria Irina
RFID Cat Feeder is a “smart” feeder that opens up only when a certain cat wants to eat. It can do this by reading an RFID tag on a cat's collar, or ideally its microchip. The purpose of such a feeder is to stop a gluttonous cat from eating all the food.
The hardware is relatively simple. ESP32 gets info about the RFID tag from an RFID reader. The door motion is controlled by a servo motor. Registering a new tag is done through a button. Two LEDs help the user know what the feeder is currently doing.
To have a safety mechanism so that the door doesn't close on the cat, the feeder uses an ultrasonic sensor to sense if there is a cat in front of it.
#include <ESP32Servo.h>
- Easy control of the servo motor, a fork of Arduino's Servo.h
that is compatible with ESP32
#include <MFRC522.h>
- Library for reading from the RFID reader
#include <SPI.h>
- Another library used for the RFID reader
#include <NewPing.h>
- A library to simplify the usage of the ultrasonic sensor
The core functionality of the feeder can be simplified in this pseudocode:
loop() { if (register mode) { turn on red led } else { turn off red led } if (button pressed) { toggle register mode } if (reading a card) { if (register mode) { add card uid to vector } else { if (card uid is in vector) { open door wait 5 seconds close door if no obstacle } else { do nothing } } } }
The full code can be viewed on my github