ECE434 Project Pet Monitor

From eLinux.org
Revision as of 11:35, 17 November 2020 by Rogerscj37 (talk | contribs) (Work Breakdown)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Mark A. Yoder

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

09 Executive Summary
09 Packaging
09 Installation Instructions 
09 User Instructions
09 Highlights
09 Theory of Operation
09 Work Breakdown
09 Future Work/Conclusions
09 Hackster.io
09 Demo/Poster
00 Late
Comments: Have a good day.

Score:  90/100

(Inline Comment)

Executive Summary

My project is a device that allows you to monitor a pet at home through a website. It has various ways to interact with your pet. The first is a camera which when turned on displays the video feed from a camera. The second is a speaker which has two functionalities: play song and play frequency. This allows you to get the attention of your pet. The pet monitor also tracks data that is useful for pet owners. This includes temperature, last time your pet was fed, and last time your pet was let outside. All of these features make this device a great way to observe and interact with pets at home while away.

Screen Capture of Pet Monitor Website

Packaging

There is not much hardware for this project. There are three devices that need to be connected to the Beagle Bone: the camera, the speaker, and the TMP101 sensor. The speaker input port connects to P9_14. The TMP101 sensor connects P9_21 for SCL and P9_22 for SDA. The camera is a PlayStation 3 Eye which is USB camera, so it connects to the USB port on the Beagle Bone. For more information on the camera visit: https://en.wikipedia.org/wiki/PlayStation_Eye.

Hardware for Pet Monitor

Installation Instructions

Give step by step instructions on how to install your project.

  • Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
  • Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for your code if using C.
  • Include any additional packages installed via apt. Include install.sh and setup.sh files.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Consider making it autostart for full credit.

Highlights

This project has many cool features including:

  • Visually appealing HTML/CSS website
  • Animated HTML/CSS buttons
  • Speaker that can play a melody (Old McDonald)
  • Speaker that can produce a frequency given by the input attribute on the HTML/CSS
  • Camera that can be started/killed directly from the website
  • TMP101 sensors that read temperature when the page is refreshed
  • Data for time since let out and fed that are updated when the page is refreshed

Include a YouTube demo the audio description.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

Project Timeline:

Pet Monitor project timeline


Major Tasks:

  • Created Flask page
  • Used Motion to stream from camera
  • Added the ability to start and stop camera stream using animated button from website
  • Adjusted size of displayed camera stream on the website
  • Added a speaker that can play a song as well as a specified frequency
  • Developed an interface to speaker on website- this includes two animated buttons and one user input
  • Attached TMP101 sensor that updates temperature on website upon any refresh
  • Included time since last meal and time since let out displays that can be updated upon corresponding button press
  • Added refresh button with animation
  • Edited Website so that it is visually appealing
  • Figured out how to use ngrok to publicly stream the Pet Monitor website

Future Work

If I had more time to work on this project, I would use SSH tunneling or ngrok to broadcast the pet monitor onto non-local hosts. This would allow access to the website while not being directly connected to the Beagle Bone. At the moment, it is possible to stream using ngrok, but a different website is used each time the program is ran. This is inconvenient and can be improved upon. If I had time to add this feature, I would also want to add a security feature. This would protect the camera feed of your home from being publicly accessible.

Another improvement that could be added is to use Blynk to create a web app that works in parallel with current website. In the beginning stages of the project I was able to stream from the camera to a Blynk app on my phone. However, the quality was horrible so I switched to making a website. If the quality issues could be resolved, a user could access the pet monitor from both a web browser and an app on their phone.

Aside from these two, smaller features could be added to the project as well. For example, more songs could be added to the play song feature or an alarm could go off if time since last fed is greater then a certain threshold.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.




thumb‎ Embedded Linux Class by Mark A. Yoder