Traveling at night isn't all fun and games, in fact it can be quite dangerous when we do it alone. Around corner is the possibility of a crime waiting to happen, no matter where you are. On my college campus, I get messages too frequently on crimes occurring around me, which makes the thought of traveling to 711 at 3am a bit more frightening.

But it doesn't have to be so frightening anymore, with WatchMe!, you will always have a trustful over you, no matter how far you stray from the safety of your room.

What it does

WatchMe! is a small device that utilizes IoT based systems to transmit GPS data directly to a dedicated platform, which allows it to have higher precision and reliability when compared to mobile device GPS.

Here's how it works:

  1. You turn on the device
  2. On the web UI, you enter the phone numbers of friends that you trust
  3. You set a geofence for yourself, just in case you stray too far
  4. You travel with confidence

That's all there is too it, once you enter the numbers on the UI, the "guardians" are given a text to make them aware of their role. They can choose to watch your progress through the web platform, or they can simply wait for a distress call. If you are to get into trouble, simply press the button on the device and every contact you entered will be notified and will be given an up-to-date GPS location of your device. The button will also put in a call to the proper authorities, sending them valuable information faster than you can say it.

The same goes for if you cross your own geofence, but instead of alerting authorities, an up-to-date GPS location is sent to your trusted "guardians" along with a message telling them to check in on you. All this at the simple touch of a button, no more worries and no more fears of keeping your own GPS on and killing your phone battery, now you can travel with a dedicated safety measure no matter where you travel. Because safety is security.

How I built it

WatchMe! currently consists of a NodeMCU, a DHT11, a Lipo Battery, a Wireless Charging Unit, and a well designed UI for users of all kinds.

Here's another break down:

  1. The NodeMCU collects the DHT11 data (temperature/humidity) and reads button input
  2. The information is forwarded directly to a firebase database, which is stored and read by a server
  3. The UI takes in this data and shows the GPS location, along with times and temperature readings
  4. The UI also has a place for entering contacts in, once a contact is entered they are stored in the database so that you don't need to enter them again. But should you choose to clear your current contacts, the data will be wiped and a text message will be sent to your "guardians" thanking them for their time
  5. Once the button is pressed for an emergency, the UI flashes red and a GPS text message is sent directly to all of the "guardians". The button press also calls out to the authorities, ensuring no time is wasted to protect you and your belongings.
  6. After this, the process continues over and over again, simply recharge the device and take it out again ## Challenges I ran into During development, the NodeMCU gave me several problems, one being that I had forgotten about the different pin mapping used for the device. This caused me to believe other flaws were in my design, when in reality it was a simple pin change that could have solved it all. Another issue was getting the NodeMCU to send data to firebase, which kept resulting in null values even though it was clear that a connection was established. The temperature sensor also gave me trouble, refusing to work on all pins except for one, which took a lot of trial and error to find out. The wireless charging system was difficult as well, and all of these issues were only on the hardware end.

On the software end, I had difficulty getting Twilio's API running on my site, and almost encountered an issue where I sent myself several messages a second. Another issue was pulling the data from firebase efficiently enough for there to be little delay between pressing the button and receiving the click. However, the largest issue was establishing SafeTreks API for the webpage, because it seemed as though I would either encounter a 400 error or a 500 error. Overall, this project was not simple to complete, especially as a solo competitor.

Accomplishments that I'm proud of

I am most proud of the idea overall, as it relevant enough to current stories that it seems to be a viable product. Other ideas I've had were similar, but costly to create, yet with the cheap cost of the currently used components there is no doubt it will much cheaper with more development.

I am also proud of the work I put into designing the UI, as I feel it does feel easy to use and will work well when being used by many people at once.

What I learned

I learned a lot about NodeMCU, and I was actually able to integrate firebase directly into it with a few difficulties. This will prove very useful in later projects as now I have the ability to send data directly to a database using cost effective boards. I also learned about better ways to create UI designs, and worked more on my front-end skills to better develop this trait.

What's next for WatchMe!

Up next for WatchMe! is the scaling down of the size and the scaling down of the cost, because it is bulky and hard to hold at the moment. I would also redesign the backend for the website and integrate more security and safety features for user authentication and database hashing. Attached to this devpost are the files for a future design that will be about the size of a quarter, but will not fall short on anything.

Share this project:


posted an update

Just added a switch on the UI that allows the user to turn the geofence messaging feature on and off. The SafeTrek API is functional as well, with an update being sent every 10 seconds once the button is pressed. Once it is deactivated, the request is cancelled.

Log in or sign up for Devpost to join the conversation.