ECE150 Tiffany Cowan and Rami Abulaban
This video shows our feeding system in action. The "FEED" button on the bottom left is used to dispense food on the spot. When we toggle the switch on the right, the feeding cycle timer is set. For demo purposes, we hardcoded the timer to be set to 20 seconds. When the time reaches 0, the feeder releases food and the timer restarts. To see the time left on the timer, we click the "Feed Schedule" button. When scheduled feeding is not on, the text view reflects that.
*sorry there's no voiceover, video was made before requirements were posted
We had many challenges when it came to our bluetooth connection and our timer.
Our app has 4 main activities. Upon opening the app, the first page is bluetooth connection. On this page, the user will click the "Search" button, and a list of bluetooth devices will appear. After clicking a device, the user must click "Connect" to establish a connection. After this pairing, the user is brought to the main page. From this page, the user is able to access all other functionalities of this app. First, the user might want to press the "Update Info" button which will take them to a page to enter their cat's name, weight, and number of feedings per day. This information will be used when feeding the cat, with the weight affecting the amount of food release and the number of feedings affecting the timer cycle. After this information is saved, the user can use the feeding features shown in the demo video above.
Bluetooth: HC-05 chip connected to Arduino, implemented through Android Studio
Arduino: served as a power supply and a means of communication between the servo motor and the Android device
Servo: 180 degree rotation based on a password transmitted by the Android via bluetooth
Countdown Timer: counts down by chosen increment beginning at chosen starting point
Our biggest challenges came from the timer function and bluetooth connection. With the timer, we had issues with it starting over whenever we left the activity and came back. To fix this, we saved the current time and restarted the timer with that initial value instead of the original value. Our bluetooth connection required a lot of research. The HC-05 chip can be a little buggy sometimes, as we saw in an ECE153B lab, and that sometimes causes connectivity issues. The bluetooth also required a service to function properly when switching between portrait and landscape modes which caused it to disconnect when switching orientations. Though we could not implement this service, through our fix, we are now able to switch orientations in all activities except for the main page. If we start in landscape, however, it does continue to function in landscape.