In times of crises, ambulances may not be able to determine the precise location of people having medical emergencies. We wanted to find a way to help ambulance members to precisely and quickly find these people.

What it does

We created an iOS app that communicates with iBeacons to the general location of the person who activated it. After mapping to their general location (the person's address for example), ambulances can ultimately communicate with the devices of these people to cut the time needed to get to the person’s precise location.

How we built it

We first set up an IBeacon using a raspberry pi3. We then connected exterior buttons to a breadboard and programmed them to interact with the Beacon. The buttons are able to turn "on" and "off" the Beacon – in other words, it would make the Beacon broadcast BLE signals that would be picked up by our app. On the app side, we used the CoreLocation framework in Swift to scan the area for beacons. From here, it's possible to get a sense of how close or far this beacon is using the CLProximity class.

Challenges we ran into

We discovered that the raspberry pi beacon cannot broadcast exact GPS location, so we had to change our plan to implement a general range of location, rather than exact coordinates. Also, we had issues activating the iBeacon on command, but we were able to find a way to fix that using a pushbutton. On the app side, we made it through all of the hard parts. However, in order to demo, we wanted to upload the UUID, Major, and Minor values onto a UITableView to see. From here, it would send a notifications when a user is "Near", "Intermediate", or "Far" from a Beacon. However, we had issues with persistentData and interference of ViewControllers and could not get this data to show up on the table cell. This is a very small fix but due to lack of time, we could not get that part in.

Accomplishments that we're proud of

We are proud of being able to develop a beacon using the raspberry pi that can be controlled externally with a button. This is also able to communicate with the app we built which shows the potentials of the device. It does have a potential to help patients that are in severe medical emergency.

What we learned

Before this hackathon, we knew very little about raspberry pi, operating systems, CoreLocation, and IBeacons as a whole. Now, twenty-four hours later, we are much more familiar with the operating system, as well as writing code to work with external buttons. We also learned a lot of the functionalities of CoreLocation, but know we can utilize them even more as it is a very powerful framework that drives a lot of modern map systems. We’ve also learned a lot about working with iBeacons, as well as how they function and ways we can use them. We’ve realized what their capabilities are, as well as their limitations, as the range they transmit is not as big as one would hope. However, this being a helper tool for ambulance members, it is not necessary that this app display an address on a map as would be standard.

What's next for BeacON

We could make an app alternative to ambulances. It will be our beacon on a much bigger scale. With how expensive ambulances can be and, in busy cities within countries like China and India, how slow it can be due to traffic, this new app would be similar to that of Uber but for emergencies. The new beacon would be a lot more powerful and can give drivers nearby information about where the person who needs help is.

Built With

Share this project: