Sensors
The Bird Hub houses the following sensor modules:
Temperature & Humidity
To create our minimum viable product, we had to integrate at least one sensor into our system. The first sensor that we purchased was the Temperature & Humidity Breakout Board from Adafruit. We chose this module as our first sensor due to it being heavily documented, inexpensive, and capable of our desired range of accuracy (± 1°C). Another advantage of this board was the 3.3V regulator, since we were not certain of the microprocessor we would be using at the time. We communicated with this sensor through the Teensy++ 2.0 (wiring shown below) which was also the microprocessor we used for our GSM module.
To create our minimum viable product, we had to integrate at least one sensor into our system. The first sensor that we purchased was the Temperature & Humidity Breakout Board from Adafruit. We chose this module as our first sensor due to it being heavily documented, inexpensive, and capable of our desired range of accuracy (± 1°C). Another advantage of this board was the 3.3V regulator, since we were not certain of the microprocessor we would be using at the time. We communicated with this sensor through the Teensy++ 2.0 (wiring shown below) which was also the microprocessor we used for our GSM module.
Force-Sensitive Resistor
After our first sprint, our team took the time to talk to a local ornithologist about the kind of data that would be useful for professionals like him. Given that we had already implemented a weather sensing module, he was interested in the weight of the birds. He noted that there is a lack of data available that correlates weather, availability of food, and bird weight. We chose this sensor because it was able to register weight similar to those of birds in New England (around 100 g). We also hooked this sensor up to our Teensy++ 2.0 so we could have our data collection and wireless transmission take place on the same microprocessor.
After our first sprint, our team took the time to talk to a local ornithologist about the kind of data that would be useful for professionals like him. Given that we had already implemented a weather sensing module, he was interested in the weight of the birds. He noted that there is a lack of data available that correlates weather, availability of food, and bird weight. We chose this sensor because it was able to register weight similar to those of birds in New England (around 100 g). We also hooked this sensor up to our Teensy++ 2.0 so we could have our data collection and wireless transmission take place on the same microprocessor.
Camera
For our camera, we used a TTL Serial JPEG Camera with built-in motion detection. Originally, we thought we could use our GSM Module to transmit the pictures taken by our camera to our web server. However, we soon discovered that our ~50KB pictures were too large for either a Teensy++ 2.0 or an Arduino Nano to handle at once. Another option we explored was sending the JPEG data is smaller packets to our server, but we found that reassembly of JPEG data was a more complex task than we could handle. In the end, we settled on simply saving our images to SenMod MicroSD Card Adapters. Above, you can see the set up and wiring offered by Adafruit, which is the setup that we ultimately used in our final system. While we were hoping to use the Teensy++ 2.0 for faster writing of images to the SD card, we had issues communicating with the camera with a non-Arduino microprocessor. Eventually, we decided to integrate both our camera and servo for the food dispenser using our Arduino Nano. The motion detection feature of this camera allowed us to dispense food only when a bird was detected at the feeder, allowing The Bird Hub to save both food and energy.
Wireless Transmission
One of our stretch goals was wireless transmission of our sensor data, which was accomplished by using a GSM Module, Fona 800. Interfacing with this device was definitely one of the more challenging tasks of our project, given our lack of experience with wireless transmission. Originally, we hoped to use the HTTP POST feature of the Fona to upload to our own web server. However, we ran into issues with timeouts and reliable transmitting the POST requests. That's why we switched over to the HTTP GET method which allowed us to post our data to a site named dweet.io. We then grabbed the data posted to Dweet and visualized it using a free dashboard, Freeboard.io. Although we planned on returning to our web server eventually, we received positive feedback on our Freeboard at our Sprint 3 review and decided that this method of data visualization met our goal of having user updates.
Solar Panel
Battery charging circuitry

To merge our two power supplies (battery and solar panel) into one, we used the sunny buddy from SparkFun. It's an easy to use solar charger protoboard, were we just had to plug in the Barrel Jack coming from our solar panel and the two wires coming from our 3.7V 5000mAh LiPo Battery and could use the load connector to power our Arduino. Sunny Buddy then makes sure that the battery stays charged and switches between the solar panel and the battery as power supply depending on the amperage value coming from the solar panel.