The risk of falling is one of the most prevalent problems faced by elderly individuals. A study published by the World Health Organization [1] estimates that between 28% and 35% of people over 65 years old suffer at least one fall each year, and this figure increases to 42% for people over 70 years old. According to the World Health Organization, falls represent greater than 50% of elderly hospitalizations and approximately 40% of the non-natural mortalities for this segment of the population. Falls are a significant source of mortality for elderly individuals in developed countries.
This project presents a fall detection system that monitors in real-time an older adult. The major components of the system is a wearable device. The wearable has the capability of communicating with a cloud service. Once the wearable device detects a fall, it sends an alert to the cloud, then the cloud alerts to the emergency contacts defined by the user or medical authority.
Block DiagramFeatures:
- ATmega4808 micro-controller
- TEMT6000 Light sensor
- MCP9808 Temperature sensor
- ATECC608A Crypto Authentication™ device
- WINC1510 WiFi Module
- On-board nEDBG Debugger
- USB and battery powered
- Integrated Li-Ion/Lipo battery charger
The Genuino 101 is a learning and development board that delivers the performance and low-power consumption of the Intel® Curie module with the simplicity of Arduino at an entry-level price. This development platform keeps the same robust form factor and peripheral list of the UNO with the addition of onboard Bluetooth LE capabilities and a 6-axis accelerometer/gyro to help you easily expand your creativity into the connected world.
The Intel® Curie module contains two tiny cores, an x86 (Quark) and a 32-bit ARC architecture core, both clocked at 32MHz. The Intel toolchain compiles your Arduino sketches optimally across both cores to accomplish the most demanding tasks. The Genuino 101 comes with 14 digital input/output pins (of which 4 can be used as PWM outputs), 6 analog inputs, a USB connector for serial communication and sketch upload, a power jack, an ICSP header with SPI signals and I2C dedicated pins. The board operating voltage and I/O is 3.3V but all pins are protected against 5V overvoltage.
The built-in IMU (inertial measurement unit) on Genuino 101 will be utilized for determining the free fall.
Step 1: Getting Started with Microchip's AVR-IoT WG BoardThis board has an inbuilt temperature sensor and a light sensor that a preloaded firmware publishes the data from the sensors to the cloud (Google Cloud).
The AVR-IoT WG development board features two sensors:
• A light sensor
• A high-accuracy temperature sensor - MCP9808
Step 2: Adding the Device to the CloudFirst, log in to the Google IoT core and create a new project and note your Project ID, which will be needed later when you program the hardware to connect to the project.
Note: Here, I had used a free trial account of the Google Cloud service. In the Google Cloud console, you can find the IoT core at the sidebar.
Create a Registry:
To Register the device:
Note the Device ID from the Click me file, which will direct you to a link.
In the next form, Fill up device ID with an alphabet at first, the Public key format is of ES256 which can be verified, and add the PUBKEY.txt file in the add device page.
After this step, the device is successfully added to the Google Cloud.
Now, Go to the ATMEL START program and enter your Project ID, Registry ID. i.e. Project ID: avr-iot, Registry ID: AVR-IoT and MQTT host: mqtt.googleapis.com in case of ourproject.
Finally, Export the project to ATMEL Studio 7 and enable the debugger to start the program.
Step 3: Uploading the FirmwareBefore uploading the firmware, we have to create a bus (UART) to connect Genuino 101 with the Microchip AVR-IOT-WG Board.
UART Connections :
Genuino 101 ------------------ Microchip AVR-IOT-WG Board
VIN -> VCC(5.0 V)
GND -> GND(0 V)
D0 (RX) -> PC0 (TX)
D1 (TX) -> PC1 (RX)
Once the connection is done upload the code for sensors using Arduino IDE. The code is added, which can be found in the code section.
Note that: The built-in IMU (inertial measurement unit) on Genuino 101 is used for determining the free fall.
In case of Microchip AVR-IOT board, export the project from ATMEL START.
Select the solution configuration as release and debugger as UDPI as nEDBG. Finally, press the green arrow next to Solution configuration to start the program.
Note: Make sure that the program is properly uploaded without errors.
Step 4: Setting Up the Google Cloud for Publish and SubscribeCreate a new function in the Google Cloud Functions.
Set the following parameters:
- Trigger - Cloud Pub/Sub
- Topic - AVR-IOT
It automatically generates the code for PUB/SUB functions.
Step 5: Checking the published data on Google CloudThe data is being published on the Google Cloud. This data, which is logged, can be displayed on either a website or a mobile application.
Fall notification on the smartphoneIf any fall occurs, the system sends a notification to the emergency contact person instantly.
We hope that our system instantly detects the free fall and sends a notification to the emergency contact person for taking the necessary steps immediately.
Reference1. World Health Organization. WHO Global Report on Falls Prevention in Older Age. World Health Organization; Geneva, Switzerland: 2007
2. Genuino 101, https://www.sparkfun.com/products/retired/13984
3. AVR-IoT WG, https://www.microchip.com/DevelopmentTools/ProductDetails/AC164160
Comments