├── Flowchart.pdf ├── FinalReport.pdf ├── Project Presentation.pptx └── readme.txt /Flowchart.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstocks/BirdintheHand/HEAD/Flowchart.pdf -------------------------------------------------------------------------------- /FinalReport.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstocks/BirdintheHand/HEAD/FinalReport.pdf -------------------------------------------------------------------------------- /Project Presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jstocks/BirdintheHand/HEAD/Project Presentation.pptx -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | A Bird in the Hand 2 | The goal of this device is to identify, analyze, and store historical bird tracking by using: 3 | - Track environmental conditions (temperature, humidity, light) 4 | - Track presence of bird(s) via proximity sensor 5 | - Take photo of bird & store in cloud database 6 | - Compare bird via computer vision model 7 | - Store activity in historical database 8 | - Trigger notifications and update dashboard 9 | - Use stored data to build statistics 10 | 11 | Project components: 12 | 13 | 1. Bird Feeder – is a main “hardware” component of the application. It is custom made bird feeder structure which has Raspberry Pi attached along with its ultrasound, light, temperature, and humidity sensors. The bird feeder is installed outside and supplied with sunflower seeds. The feeder is open for a bird to visit at any time. 14 | 15 | 2. Node-Red, a flow-based development tool for visual programming, is used to build logic and setup Raspberry Pi components. 16 | 17 | 3. Once a bird lands the bird feeder, then the ultrasounic distance sensor decrease and indicates the presence of a bird. The birdPresent flag is set to ‘yes’. 18 | 19 | 4. Ultrasound sensor triggers a camera to take a picture. Once the bird flies away, the birdPresent flag is reset to 'no' and the process loops. 20 | 21 | 5. Next, the picture is automatically sent to Azure Computer Custom Vision cloud service to identify a type of a bird. 22 | 23 | 6. Azure Custom Vision responds back with the following information: 24 | a. type of bird 25 | b. probability of species 26 | 27 | 7. Light sensor – records a light value automatically (no user interactions are necessary) 28 | 29 | 8. Temperature sensor – gets automatically the temperature and humidity data 30 | 31 | 9. The data received from steps 7 and 8 is automatically stored in InfluxDB database every minute. From step 6, if the probability of the bird species is greater than 50%, the bird species, count increment of one, and the photo are stored in InfluxDB and S3, respectively. 32 | 33 | 10. The application uses AWS S3 to save images (as an alternative for InfluxDB) and hosts a static HTML website for photo viewing. 34 | 35 | 11. The application outputs, values and runs statistics using Grafana, a multi-platform open-source analytics and interactive visualization web application. 36 | 37 | 38 | Database schema: 39 | The schema of the database: 40 | Time: data value 41 | Count: integer value (1 for each bird) 42 | Heat: integer value 43 | Hum: integer value 44 | Light: integer value 45 | Probability: double value 46 | Species: String with a bird’s type name 47 | Temp: integer value 48 | isBirdPresent: “Yes”/ “No” 49 | --------------------------------------------------------------------------------