Inspiration
The inspiration behind Guardian is a need for a portable safety device for beloved things. Most safety devices on the market send data through wifi or bluetooth. Which requires either a wifi connection or staying near enough to be connected to the bluetooth. We needed an Interenet of Things device that can ensure the safety of the child or protection of beloved things wherever there is a network signal.
What it does
Guardian is a compact smart device that monitors GPS, temperature, and ambient light levels. When connected to WiFi or a LTE network the sensor data is sent from the device as a JSON file every three seconds. The JSON data is sent to a Amazon Web Server where it is stored in a JSON database. A web server fetches the JSON data every three seconds and displays the sensor data on a web page. If the temperature or light levels reach too high of a level, alerts are displayed on the web page. Multiple devices can be viewed by a client.
How we built it
We built Guardian using a T-Mobile DevEdge Kit, which is an Internet of Things ready-device with onboard LTE Modem and Wi-Fi Network Interfaces. The device packages the GPS, temperature, and ambient light levels into a JSON file. The JSON data is sent to a Amazon Web Services (AWS) CloudFront delivery network through a HTTP request. CloudFront is used to lower latency and increase compatability. CloudFront forwards the JSON object to an AWS Lambda function routed through an HTTP API gateway hosted by AWS. Where it is then stored in an S3 bucket that hosts a serverless JSON database.
A "middleman" node.js application fetches the JSON data from the S3 bucket through a HTTPS API gateway. Our web page built with HTML and javascript grabs the sensor data from the JSON file to be displayed. We display the GPS data on a google map utilizing Google Cloud API. Multiple devices can send data to AWS Lambda which are routed to be viewed by the client.
Challenges we ran into
For our project, we overcame many challenges that were due to compatibility and hardware issues. We started by making the best out of a defective T-Mobile DevEdge Kit until we received a replacement kit later into the competition. Though this should have slowed us down, we implemented all the other parts of the system that interacted with the DevEdge Kit to prepare for our working replacement.
We also ran into issues with current insecure HTTP functionality of the DevEdge Kit because our AWS backend only supported HTTPS for its API Gateway. We solved this by routing HTTP requests to CloudFront and relaying the data to the API Gateway as a satisfactory workaround.
We ran into issues with cloud permissions for accessing S3 buckets. This was later resolved as well.
Accomplishments that we're proud of
While the project was challenging, it was significantly rewarding. The technical accomplishments we were most proud of were creating a cloud backend in AWS, integrating a map into a front end using google cloud, creating a serverless backend, building a functioning prototype, getting the DevEdge hardware to work, and figuring out modem and hardware issue. Outside of the technical accomplishments, we are most proud of how easily utilizable our project is, how it simplifies processes done by much more complicated technologies, as well as the soft skills we improved over the weekend. Although a short amount of time, the crunch of DubHacks provided a safe environment to grow skills that we will later use in the industry.
What we learned
Through our multifaceted implementation of the Guardian application, our team learned how to set up and implement an IoT device to work with cloud platforms, in short. As our "hack" went from Project to Product, we had to adapt and come up with new solutions to integrate the IoT device in such a way to maintain reliability and functionality without sacrificing the quality of our project.
- We learned how to successfully implement AWS Lambda, AWS API Gateway, AWS CloudFront, AWS S3, AWS IAM, Google Cloud API, and Node JS, to enable a dynamic experience between both the client-side HTTP-CSS-JavaScript frontend and the client-side T-Mobile DevEdge IOT device.
- We administered custom configurations to our T-Mobile DevEdge kit to take advantage of its maximum intended functionality
- We created a user-friendly front-end that continually updates while a user has an active device connected
Overall, we used a plethora of languages and tools, such as Python, Flask, Node JS, HTML, CSS, JavaScript, Cloud Networking/Security/Configuration, C, and Bash scripting in this project, and we became much more familiar with how far the free technologies in our arsenal can go.
What's next for Guardian
We believe Guardian is a highly scalable product that when used with other IoT devices and provides security and ease of mind to the Users about their loved ones. Being able to process data from multiple kits and creating a login system to protect the consumer’s data are the ideal next steps for our team. Further through development, we would want to be able to sync the webpage with various smart home systems, in order to adjust the temperature, and lights if the product is in the vicinity of their home. Finally, we would also begin talks with private investors and start marketing the product once we have enough traction.
Built With
- amazon-web-services
- api
- aws-lambda
- cloudfront
- css
- devedge
- google-cloud
- gps
- html
- http/https
- iot
- javascript
- json
- json-database
- light-sensor
- lte
- node.js
- s3-bucket
- temperature-sensor
Log in or sign up for Devpost to join the conversation.