Skip to content

C-Harshul/Chidori-Micro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chidori

Icon

Why This Project?

Lot of fatalities occur simply because of delayed medical assistance because the individual affected wasn't in the physical state to notify hospitals or family about their medical emergency.

What is Chidori?

A security glove that uses gestures to initiate tasing and automatically conveys an SOS message through our application. We use ESP8266 wifi module to form a connection with the cloud and a low voltage circuit as a tasing prototype and a MPU6050 accelerometer to act as a gesture sensor that initiates the tasing action and updates the data on the cloud through wifi module. When the data is being updated, we use cloud services to initiate an SOS message.

Flow chart

Hardware Tech

NodeMCU ESP8266

This device acts as the interface between the hardware and the backend. It constantly reads the data from the MPU6050 sensor and once the condition for the gesture is detected it sends an http Get request along with the message title and coordinates obtained from a Geolocation API as a query parameter to our backend.

MPU6050

This module has an inbuilt gyroscope, accelerometer and temperature which we will be calibrating to identify the gesture performed by the user.

This is how our prototype looks like

Hardware

We have used the following Arduino packages and libraries:

  • I2C dev libraries

  • ESP8266WiFi

  • ESP8266 http client access

We have made our own api to send a get request for updating the database inorder to send a SOS message through our application: http://security-glove.herokuapp.com/notify

Once the gesture is detected the request is sent to send notification with the appropriate message. The notification is received on the mail and the app as well:

NotifMail

Chidori mobile application

Flow chart Flow chart Flow chart

The Chidori mobile appication serves as the primary interface for the user to add contacts to be notified and also customize the body of the message which will be sent via the app and the mail.

Framework

Flutter app development framework is used to make the “Chidori” mobile application. The app will provide the user an intuitive interface to add the contact details to be notified and also to customize the body of the message to be sent when the gesture gets triggered.

How to run the application

  • Run git clone https://github.com/C-Harshul/Chidori-FrostHack.giton your terminal.
  • Open the Chidori-App folder in a Flutter project.
  • Run flutter pub get in the project terminal and get the dependencies.
  • Use flutter run debug to run the app in your local emulator or debugging device.

Dependencies and Packages used

  • SplashScreen package : splashscreen: ^1.3.5 -> Used to show a spashscreen at the time of opening the app

  • HTTP package : http: ^0.12.0+2 -> Used to make http requests to the node API

The NodeJS backend API

We developed our own custom NodeJS API to handle requests from both hardware and app clients. The following is the link to our REST API deployed on heroku -: http://security-glove.herokuapp.com

Node packages and dependencies

  • express : NPM package used to build web apps and APIs.
  • firebase-admin : NPM package to link the backend to firebase for Realtime Database and Cloud Messaging(FCM).
  • nodemailer : NPM package to send custom automated mails.

API Endpoints

{{url}} ----> http://security-glove.herokuapp.com
  • POST : {{url}}/contacts/addContact -- Add contacts to the Firebase Realtime Database
  • GET : {{url}}/contacts -- Get the contacts from the Firebase Realtime Database
  • PATCH:{{url}}/contacts/<Contact Name> -- Edit the contacts in Firebase Realtime Database
  • GET :{{url}}/notify?title=<Message title>&lat=<lat>&long=<longitude> -- Notify the contacts stored in the database with the appropriate message
  • POST :{{url}}/message/addMessage -- Add custom messages to the database.
  • GET :{{url}}/message -- Get the list of messages for the gestures
  • PATCH: {{url}}/message/edit/<Message title> -- Edit the body of the message

Use cases

  • The primary use case is sending messages in case of medical emergencies when the user is not in the condition to type an SOS message.
  • It can also be used to send messages during emergencies such as kidnapping where the user can perform the gesture to notify family and the police.

Future Scope

  • The accuracy of the location can be improved if a dedicated GPS module can be used instead of using the Geolocation API which simply provides the vague location of the user.
  • There can be features that allow the user to calibrate their own gestures opening up infinite possibilities of gestures and messages.
  • The efficiency of the requests can be dramatically improved if shifted from Heroku to a more production-worthy platform like AWS.

Contributors

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published