An alarming amount of calls to 911 turn out to be accidental, around 30% in some areas of the United States. This is a major concern as time spent dealing with accidental calls is time wasted, when there could be others who are really in danger and need to speak to a 911 operator. That's where Morse Tilt comes in.
What it does
Morse Tilt activates automatically when 911 is called and runs in the background, where it sends the user's phone number and phone orientation data to a publicly viewable website. A 911 operator who receives a call that has no actionable audio could view the webpage and see whether the caller is actually in danger or not. This is accomplished through the use of Morse code. By tilting their device to either landscape or portrait mode, the caller can send 0s and 1s to the webpage for the operator to view. This helps to identify accidental calls as those would send a jumble of meaningless data, whereas someone who was in a situation where they had to remain quiet could safely send a message.
How we built it
Morse Tilt can be broken down into three parts. There is the Android app, written in Java, developed using Android studio, and tested on a One Plus 3T. Then there is the Node.js server, which accepts POST requests from the Android app. The server also displays the webpage with the list of callers and their messages, and updates in real time with Socket.io. Finally, there is the NoSQL database stored on Firebase.
Challenges we ran into
Our very first challenge occurred around 5:35 AM the morning of the hackathon when one of our members missed his flight, and didn't end up arriving until 6:30 PM. During that time, we struggled to figure out a way to open our app when a number was dialed, as all resources online pointed to the same answer that just didn't work for us. Then we all ended up sleeping for 5 hours, losing a lot of time and waking up really groggy in the wee hours of the morning to begin work.
Accomplishments that we're proud of
Finishing the project at all, considering all the issues and circumstances we ran into, is a major accomplishment in itself. However, we are equally as proud, if not more so, for treating our taste buds to the wonder that is Giordano's Pizzeria.
What we learned
On the Android side, we learned a lot in terms of working the with gyroscope and orientation sensor, which was the crux of our app. We also learned about Android services and broadcast receivers, as well as how to use Volley, a HTTP request library. On the server side, we learned how to accept HTTP requests and extra the important information from them.
What's next for Morse Tilt
Fine tune the Android app to make it an easier experience. Perhaps add a delay in between polling for orientation so it doesn't repeat values too often, and also to provide audible feedback to the user through the earpiece.