Neonatal Mortality Rate (NMR) quantifies the number ofnew-born deaths (i.e in the first month of life) per thousandlive births and is responsible for more than 46% of all childdeaths before the age of five (2.5 Million in 2018). Which means 7000 deaths every day.
reference:https://data.unicef.org/topic/child-survival/neonatal-mortality/
Image Source: United Nations Inter-agency Group for Child Mortality Estimation (UN IGME) 2019
The death of the premature neonatal baby occurs due to many reasons, but one of the major reasons is the respiration issues. These premature babies have respiration issues which get serious when there is lack of oxygen inhaled by the body. This can even cause death. Typically, a newborn takes 30 to 60 breaths per minute. This can slow down to 20 times per minute while they sleep.
In order to address this issue with the help of multisensor BLE system RSL10-SENSE-GEVK, we will build a smart breath rate analyser. Let's see the functionality of this device.
1. This can report to the mother or caretaker if respiration rate goes below the threshold value.
2. Communication is over Bluetooth hence the data gathered can be recorded for further analysis.
3. The novel smart alert system along with ambient temperature sensing for the remote monitoring by a doctor.
4, Since the system is cost-effective this can be a boon to developing nations where there is a scarce of resources, hospitals, incubators, ventilators etc
5. Can be used where there is a scarcity of ventilatorsfor example in the current scenario of COVID 19.
Step 1: Let's buildRequired parts for building this project is mentioned above. The main one is the SL-10-SENSE-GEVK module along with the debugger. You'll need to program and test various things.
After installing eclipse based ON-SEMI IDE and support packages you can test basic sensor with deep sleep and get some data on the phone. For these, you can refer to very nicely written getting started guide.
Step 2: What do we need and how we're going to get itBasically our requirement is to get the data of respiration rate per minute. How do we do it is the question. With careful observation, there is a small change in the accelerometer Z-axis motion whenever the baby's chest moves up and down while breathing. According to the datasheet of the accelerometer and gyroscope sensor BHI160 we will get a precise reading of accelertion values and orientation values with very less false positives i.e less than 9 in 5 mins of continuous reading
To prove this and calibrate the motion I made a simple setup with servo motor doing the action for us in a very slow manner. With the help of this, we can check whether the number of breaths per minute is above or below the threshold value.
Step 3: Calibration and testingI designed and 3d printed housing for the RSL10 device which can also calculate the body temperature using a BMP680 temperature sensor. In order to increase the sensitivity of the IC, I have attached a metal tape and a connecting wire.
For the design default 3D builder software on windows 10. You can use Fusion 36) or solid works etc.
Setting the threshold: From the research I have done on the neonatal babies, I concluded that the breath rate below 18 is fatal to the neonate. Hence we will set the threshold as 18 breathing rate per minute. If the breathing rate falls below that value we can alert the mother or caretaker either remotely or through a buzzer.
Since we want to save the power we can turn off unwanted devices and use only required sensors. Accelerometer and temperature sensor.
struct SwTimer tim1;
struct SwTimer_Duration tim_dur1;
SwTimer_Initialize(&tim1);
SwTimer_Start(&tim1);
SwTimer_GetElapsed(&tim1, &tim_dur1);
if (fabsf(z) > 2.0f)
{
k++;
if (k > 30)
{
k=0;
}
}
if ( k < 18 && tim_dur1.seconds > 60 )
{
printf("Breath rate is too low");
LED_On(LED_RED);
LED_On(PIN_GIO_SPARE);
}
SwTimer_Remove(&tim1);
Here time is used to determine the rate of breathing
The basic logic here is to detect whether the breathing rate is falling below the threshold i.e 18 breaths per minute. An as soon as that happens red LED will blink to indicate that. Temperature monitoring is done as well to know the trend of breathing over temperature changes.
Step 5: Fastening and testing :If the baby is covered in surgical grade protective cloths, one can directly attach the device on the chest part of the baby using velcro strip or when the baby is naked one can use surgical band-aid tapes to secure the sensor. The same sensor can be worn by the mother around her shoulder for kangaroo mother care. Which records the temperature of mother and baby to monitor their health,
In developing nations in Africa and Asia, this device can help in remote locations where there is a lack of connectivity and resources such as hospitals, ventilators and incubators in the case of premature birth.
Temperature monitoring is done for Kangaroo Mother care methodVideo and Code: https://github.com/vishwasnavada/NeoSense
Step 6: Connecting it to cloudIn the On Semiconductor app itself, there's MQTT broker installed one can directly use their phone as IoT gateway and push the data to the cloud. If you are interested you can even set up your own generic MQTT broker in the app and
Hive MQ has open-source service where one can send the data to their MQTT server. It supports the latest MQTT 3.1 also. Here's the detailed description.
Here I'm adding my broker.
Testing the sending of data:
- Developing a custom app interface with various editable threshold triggers an SOS alert features
- Improving battery efficiency by optimising code
- Adding a builtin buzzer (might wake up the baby) to GIO Spare Pin
- Adding a Kalman filter to reduce the error
Comments