Background

I enjoy watching hummingbirds at the feeder on my back porch, but I would like a way to track activity at the hummingbird feeder while I'm not watching. Specifically, I would like to know the precise time of a hummingbird visit as well as weather conditions at the time of visit so that I can view long-term trends of hummingbird activity related to time of year and the surrounding environment.

Precise tracking of bird feeder activity seems like a difficult task without some sort of machine vision system; hummingbird feeders, however, are unique in their design in that they present a limited number of feeding points, each with an opening only a few millimeters wide. This construction means that one must only track accesses to the feeding points to gain both an accurate and precise understanding of activity at the feeder.

Feeder Tracking System Overview

System Diagram

The layout of the system and how all of its components interact is shown below:


Outdoor Embedded System

Microcontroller - I plan to use a PSoC 6 Dev Kit to manage the sensor array at the hummingbird feeder. This microcontroller will be responsible for interfacing with all of the system's sensors, which includes those used to detect birds, measure temperature, and track humidity. Power will be supplied to the device via batteries.

The microcontroller is also in charge of transmitting collected data to the online data storage and analysis system. It will do this through my home Wi-Fi network. Because this connection may not always be fully reliable, I will take advantage of the PSoC's onboard non-volatile memory to store data until a connection can be established.

Sensors - The primary sensors employed will be infrared break beam sensors. There will be a transmitter/receiver pair placed at each feeding location, with the beam crossing the opening for the hummingbird's beak. When a hummingbird uses the feeder, its beak will break one of the beams, and the microcontroller will read the beam break as a feeding event.

In addition to the feeding sensors, there will also be temperature and humidity sensors at the location of the feeder to take measurements of the environment at the time a feeding event occurs. Though weather measurements can be retrieved from other web APIs, I would like to know the exact conditions at the feeder so that I can gain an even more precise understanding of how weather conditions affect hummingbird activity.

Cloud Data Collection

I plan to use AWS IoT to collect data from the PSoC-run sensor array over Wi-Fi, as previously mentioned. Data is received from the PSoC in raw form; the PSoC records one feeding event each time one of the IR beams is broken, so a single hummingbird could generate multiple feeding events in a row. This should be recorded as a single visit to the feeder. AWS will be use to analyze received data and determine how many visits the data represents.

Once the data from the PSoC is fully interpreted, it should be displayed on a web dashboard that graphs visits over time, with specific information about each visit available. Each hummingbird visit will be associated with the exact date and time it occurred, the weather conditions at the time of the visit, and even more information drawn from the raw data, such as duration of visit, number of feeding events, etc. Most likely this will also contain information about the battery powering the system, so the user knows when it needs to be recharged.

Physical Implementation

Shown below is a picture of the prospective general layout of the outdoor embedded system:

Wires are enlarged to show how connections are made, and will ideally be much less obnoxious in the final build. I am also exploring the idea of mounting the enclosure for the PSoC underneath the feeder to improve cable management, however this may require a more complex mounting scheme.

Design Considerations

As alluded to in the above physical...

Read more »