Submitted for the day trader track and overall track

Inspiration

Impact Aware is inspired by the events currently transpiring in Ukraine. It is hoped that this project is the first step in developing and implementing a system which can autonomously detect and report on bomb explosions while simultaneously [at a system level] being redundant enough to survive such explosions. The end goal of such a system being to save lives.

What it does

Impact Aware provides citizens and emergency services a system to easily detect and address bomb explosions in a given area in which its nodes are installed.

How we built it

Our stack was built from frontend to embedded simultaneously, meeting in the middle on the backend parser.

The embedded Arduino device utilizes ESP32 chips running the painlessMesh framework to orchestrate the network and implement functions that are called on events such as disconnects, connects, and broadcasts. Also of note is that the Arduino devices utilize the Scheduler framework to run code concurrently as well as implemented a hardware interrupt for the vibration sensor -- such that vibrations cannot be missed.

The backend parser is written in Python and reads the serial output of one USB connected node. After parsing this serial output the respective node's information is stored and written to a JSON object which is hosted as file for the frontend to utilize as its API.

The frontend uses HTML and CSS to create a simple and stylish table displaying Impact Aware node information, JavaScript runs on this frontend on the client side which updates the table with information pulled from the API. The table is automatically updated every second.

Challenges we ran into

One challenge we ran into was propagating messages along the mesh network. For example, disconnect messages should be dispersed throughout the mesh from one hop to another even without a direct connection. In this way every neighbor of a disconnected node will broadcast its disconnect, and every neighbor of it will broadcast it as well -- passing it throughout the chain. Noisy but redundant.

Accomplishments that we're proud of

We are proud of the self-contained nature of the installation mediums, their small plastic housing represents a small footprint that is easy to install and replace. Additionally, they are capable of running for a very long time (60~ days)(6000 mAh, 4.10 mA device consumption).

What we learned

A wide range of technologies were employed, a frontend that utilizes JavaScript to dynamically update elements, a Python backend that parses serial output to an API, and the embedded C++ running on the ESP32. Due to this wide range every team member learned something outside their comfort zone/strengths. For example, I (Townsend) learned a great deal about wiring and patterns such as pull down resistor circuits.

What's next for Impact Aware

Taking this project to the next level would mean integrating it directly with emergency services and platforms like Noonlight. Additionally, the dashboard could be fleshed out to display a map of installed nodes.

Team Members

Lee Townsend Adcock, ladcock4@gmu.edu

Dhruv Gramopadhye, dgramopadhye@gmail.com

Zack Wagner, zwagner4@gmu.edu

Dheer Tammina, dtammina@gmail.com

Jaymin Jhaveri, jjhaver@gmu.edu

Built With

Share this project:

Updates