- Adroid mobile app
- Raspberry pi
- Camera
- AWS
- MySQL Database
This document proposes a multiple purpose camera that has multiple functions which can adapt to the user's needs depending on the situation. The system will be built using a raspberry pi with camera and microphone attachments. Features include regular camera capturing, thermal mode, night vision mode, sound detection, motion detection, and light detection. The camera will connect to mobile devices and the cloud via wifi and bluetooth.
The multi purpose camera is a product that can be used in a variety of ways. Essentially, it is a camera that can video record, capture, and livestream that can be used for whatever the user needs it for (ie. baby monitor, car dashcam, door cam, etc.). Using the app, users will initially connect the camera to their device via bluetooth. After the initial buletooth connection is established, the user can get their camera connected to their wifi. Once the wifi connection is established, the camera will just need to be set up in the right location, and it is good to go. The app can be used to access stored recordings, camera captures, and livestreams. Camera settings can also be modified and viewed in the app.
This project has three working components: the raspberrry pi, the android app, and the server.
The Raspberry pi needs to be configured with the hardware: camera, microphone, SD card, and power cable. The raspberry pi then needs establish a connection with the device via Bluetooth. This is because the raspberry pi is a headless machince, meaning that it does not have a monitor or keyboard attached which will allow users to enter credentials for wifi connection. Therefore, once the bluetooh connection is established, the device will send wifi configurations packets which will allow the raspberry pi to connect to the wifi. The Raspberry Pi 4 comes with bluetooth and wifi capabliities so no additional hardware/software is necessary to enable that.
The Android app can be installed on Android devices. The app was coded in Java on Android Studios. Through the app, the user should be able to create an account or login in with previously existing account. Then, the connections for the Raspberry pi and the server can be established. Using the app, the user will be able to view livestream, captures, and audios.
Finally, the server is operated on the back end. In the cloud system. The code in AWS Lambda will be either java using RDS for a database and Amazon S3 for storage. The cloud will also be accessible using the client devices via wifi. The video data will be sent to the cloud and analyzed in the server to reduce the computational work on the client side and take advantage of high performance computers on cloud to speed up the analysis of the video footagethat are able to analyze video footage much faster than any Android phone would be able to. The video data and analyzed result will be sent back to clients when necessary.
Compared to most products on the market, our products aims to be more multi-functional. With different persona configurations and optimizable design, our product is not only limited to a regular security camera that is pre-designed to be used in a specific way, such as a doorbell monitor, baby monitor, dashcam, etc. Our product can be all these in one. Action cameras such as GoPros can come close to what our product aims to achieve, however, our Multi-Purpose Camera is set apart by our corrsponsing app. Using our app and camera together, the user can easily achieve what they want through the customization options our app offers.
Resources
- https://github.com/rpellerin/raspberry-pi-home-automation (python version)
- https://github.com/Ruud14/SecurityCamera (python version)
- https://github.com/MieszkoMakuch/pi-security-camera (python version)
- https://github.com/TaylorTheDeveloper/AzureCloudCam (python version)
- https://www.enostech.com/the-pros-of-using-a-gopro-as-an-everyday-or-travel-camera/#:~:text=One%20of%20the%20main%20drawbacks,entire%20day's%20worth%20of%20adventure.
- https://pyshine.com/Send-video-over-UDP-socket-in-Python/
- https://pyshine.com/Send-video-over-UDP-socket-in-Python/
- https://people.csail.mit.edu/albert/bluez-intro/c212.html
Hardware Requirements
- Raspberry Pi
- Camera
- Microphone
- MicroSD card
Software Requirements
- Android Studios
- Visual Studios
- PyCharm
- AWS
- MySQL Database
- Android Emulator (or physical Android device will work too)
System and Device Installation
- Mounting and securing the camera in the desired spot
- Setting up the Night Vision/Thermal Vision to Raspberry Pi
- Setting up the Raspberry Pi on your device and cloud.
Create and Modify User Account
- Create/Modify User Account and Password
- Profile Management
- Database Management
Receiving live stream from another device
- Users should be able to receive a live video feed from another device
- Users should be able to receive a live audio feed from another device
- Users should be able to record live video feed
- Users should be able to record live audio feed
- Recording video and audio to the cloud
- Cloud Storage
- Self-Device Camera
Create Custom Alert and Notifications
- Tracking User Interactions
- Account will automatically logout after pressing on the account button or account settings
- Recording will sometimes record
- Too many task will crash the app
- Android Only!
- Make sure you have at least Android Version 10 or higher
- Download the latest release
- Make an account and you're set
- pip install opencv-python
- pip install imutils
- pip install pybluez
- pip install pyaudio
Justin Ardamoy |
Tim Brennan |
Nicholas Coffin |
Joanne Kim |
Keita Nakashima |
Sid Philips |
Tyler Schemaitat |