Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iothings:proiecte:2022sric:rfid_cat_feeder [2023/06/02 03:08]
maria_irina.gherman [Hardware Description]
iothings:proiecte:2022sric:rfid_cat_feeder [2023/06/02 07:59] (current)
maria_irina.gherman [Project Description]
Line 5: Line 5:
  
 RFID Cat Feeder is a "​smart"​ feeder that opens up only when a certain cat wants to eat. 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 its collar, or ideally its microchip. The purpose+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. of such a feeder is to stop a gluttonous cat from eating all the food.
  
-===== Hardware ​Description ​=====+===== Hardware ===== 
 + 
 +==== Description ​====
  
 The hardware is relatively simple. ESP32 gets info about the RFID tag from an RFID reader. The hardware is relatively simple. ESP32 gets info about the RFID tag from an RFID reader.
-The door motion is +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. 
 + 
 +==== Diagram ==== 
 +{{:​iothings:​proiecte:​2022sric:​rfid_cat_feeder_diagram.png?​600|}} 
 + 
 +==== Parts list ==== 
 +  * ESP32 
 +  * RC522 RFID reader + RFID tag 
 +  * HC-SR04 ultrasonic sensor 
 +  * 2 x LED (1 green, 1 red) 
 +  * Button 
 +  * TowerPro SG90 servo motor 
 + 
 +===== Software Description ===== 
 + 
 +==== Libraries ==== 
 + 
 +''​**#​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 
 + 
 +==== Pseudocode ==== 
 + 
 +The core functionality of the feeder can be simplified in this pseudocode:​ 
 + 
 +<​code>​ 
 +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 
 +            } 
 +        } 
 +    } 
 +
 +</​code>​ 
 +The full code can be viewed on my [[https://​github.com/​zabbidou/​RFID-Cat-Feeder|github]] 
 + 
 +===== Testing ===== 
 + 
 +<​html><​iframe width="​456"​ height="​811"​ src="​https://​www.youtube.com/​embed/​VE8ORTkLVlI"​ title="​RFID Cat Feeder Demo" frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ allowfullscreen></​iframe></​html>​ 
 + 
 +===== References ===== 
 +[[https://​www.electronicwings.com/​esp32/​rfid-rc522-interfacing-with-esp32|RC522 example]] 
 + 
 +[[https://​dronebotworkshop.com/​esp32-servo/​|Servo example]] 
 + 
 +[[https://​forum.arduino.cc/​t/​hc-sr04-always-returns-zero/​206641/​17|Ultrasonic sensor example]] 
iothings/proiecte/2022sric/rfid_cat_feeder.1685664509.txt.gz · Last modified: 2023/06/02 03:08 by maria_irina.gherman
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0