Skip to content

Twitter Feed is a smart bird feeder that can seamlessly detect birds and take a picture which is displayed on a web app. The app stores detection history, identifies bird detection trends (time of day and temperature) and shows alerts when your bird feed is running low.

Notifications You must be signed in to change notification settings

anish-narain/twitter-feed

Repository files navigation

image

Twitter Feed

Twitter Feed is a smart bird feeder that can seamlessly detect the presence of birds using a dedicated weight sensor and simultaneously take a picture which is displayed in an interactive web app. The app stores detection history, identifies bird detection trends (time of day and temperature) and shows alerts when your bird feed is running low.

  • Twitter Feed can predict the breed of bird from the picture to various degrees of accuracy using a trained ML model and present data from previous days in dynamic graphs.
  • Twitter Feed also tracks the weight of your bird feed at 5-second intervals and alerts you when food is below 50g.
  • Twitter Feed keeps a history of the time of day and temperature (using a temperature sensor) of when each breed is detected, so you can have the best chance of seeing the bird in person.
  • Twitter Feed uses a secure AWS authentication system where each user logs in with a unique username and password (with secure communication using AWS secret keys). Multiple users can be registered on one Twitter Feeder, and a single user can access multiple feeders in different locations by entering the Bird Feeder Serial ID when accessing the web app, allowing for scalability.
image

Website

The promotional website for the product can be found here.

Here is the marketing video link.

Running the Code

Server code: To run the prediction server which identifies the bird breeds, run python3 prediction-server.py on ec2 instance with bird_model.py as the dependency in the bird-recognition-server/server folder. The main server which interfaces with the DynamoDB table, S3 bucket and React app is in the main-server folder. It also runs on an ec2 instance and can be run using node server.js

Web-app code: To run the React application, go into the react-app/amplifyapp/Frontend/src folder and run npm start.

Client code: In raspberry-pi, go into populating-dynamo-db and run python3 fake-upload.py to populate the DynamoDB table systematically with data that can be used for bird trends and historical information. The main.py raspberry pi code used in the demo can be found in raspberry-pi/demo

Contents of Our Folders

Folder File Description
bird-recognition-server bird_images These are test images for testing the bird prediction
bird-recognition-server local Contains the pretrained bird identification model. This folder has code for testing the bird prediction on our local devices.
bird-recognition-server server Also contains the pretrained bird identification model. This folder has the code that was run on our bird prediction AWS server.
main-server bird_images Contains the code for the AWS server which fetches data from our DynamoDB table and interfaces with our react application.
react-app/amplifyapp Frontend Contains our React App code with AWS Amplify for authentication.
raspberry-pi README.md Contains the descriptions of the files in this folder.

React App Frontend

Main Dashboard showing birds detected and the breed predictions. image

Identifying trends for different types of birds.

image

AWS Database

  1. Twitter_Table_New: stores all the data
image
  1. Twitter_User_Table: binds user_id and bird_feeder's serial number

About

Twitter Feed is a smart bird feeder that can seamlessly detect birds and take a picture which is displayed on a web app. The app stores detection history, identifies bird detection trends (time of day and temperature) and shows alerts when your bird feed is running low.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •