Inspiration
In a world of rapid technological advancements, there is always room to make a system more effective.
We noticed that existing smart security systems have the potential to become more accessible and interactive by being incorporated into social media. With more than half the world using social media, it is one of the best places to foster user engagement.
What it does
Throughout the day, the security camera records and securely stores all captured footage. These clips can be easily accessed through discord commands, thus making home monitoring more user friendly.
How we built it
The hardware
Initially, we installed the Rasbian OS onto the Raspberry Pi SD card. We then configured the wifi and we connected to the raspberry pi from a laptop via SSH to get access to its terminal. Lastly, we attached the camera module.
The software
SocialEye is centralised on a Repl server that hosts both the discord bot, and the Flask webserver. The Flask server is responsible for tying the product together, able to receive data from the camera, process the raw H264 data into MP4, and send the resulting videos to google cloud storage. The flask server also doubles as the host of our frontend website, which serves mp4 videos which comply with OpenGraph embeds, as well as acting as the endpoint for the discord bot’s data retrieval.
Challenges we ran into
Throughout the process, we ran into several challenges. First off, we had difficulty connecting the Raspberry Pi to the network through the host name. To mitigate this, we used the IP address.
Another challenge that we faced was when we attempted to add an Arduino UNO and a sound detector to our existing hardware. In order for our program to read the sound input as well as to store the videos captured by the camera concurrently, we had to use multithreading, a process none of us were too comfortable with. Although we were able to figure it out near the end of the hackathon, it was sadly too late for us to integrate it into our product demo.
We experienced many issues with video encoding and streaming, and we ended up having to run a subprocess to have the video in the proper format for embedding. We also experienced difficulties with Google Cloud, as Repl was accidentally deleting certain authentication files.
Accomplishments that we're proud of
We are very proud that we got the entire communication chain working. The captured video needed to be stored on the Pi, sent to the Flask server on Repl, sent to google cloud, and lastly accessed through discord commands. All parts of this process were required for us to get a working demo and thus, even though there was lots of room for error, the importance of seamless connectivity kept us keen on solving challenge after challenge.
What we learned
Whilst integrating the software with the hardware, we had to familiarize ourselves with multiple programming languages, interfaces, and platforms. Each of us had some new skills to take away, whether it was multithreading, HTTP protocol, or simply becoming more efficient at working with the cmd commands.
In addition, teamwork was very important because we had to keep the hardware component and the software component synced. Everytime we modified the code or changed a hardware component, we had to effectively communicate to our teammates. By collaborating, we were able to streamline the process of creating our project.
What's next for SocialEye
Thanks to object detection algorithms, the possibilities are endless! Examples include users getting notified of package deliveries, homeowners creating custom messages for different visitors that will be identified through facial recognition, and loud noises playing when a mammalian pest starts constantly lingering nearby. There can also be an emergency response system that will contact the police if a theft or breakin is occurring.
Log in or sign up for Devpost to join the conversation.