This system continuously monitors the health status of a person. The application of this system is remotely monitoring the babies or old person who lives in alone. The system is directly connected to the IoT cloud, as a result, anyone can (such as doctors, relatives etc) monitor their health condition remotely in real-time. The health parameters of a person that we monitor using this device are heart rate in BPM, temperature, SPO2 level, and humidity. Please note that temperature and humidity sensors are not presents in this project; of course, it's possible to add them. I have used some random value while demonstrating the application.
The FireBeetle development board along with heart rate sensor is used here. The FireBeetle board collects the sensors data and sends them to the iot-cloud. The board uses WiFi connectivity for maintaining the cloud communication withThinger.io.Thinger.iois an opensource IoT-cloud platform. A mobile application for real-time data visualization is developed. The application directly connected to the IoT cloud and shows the real-time data that comes from health monitoring device.T he application is helpful for monitoring babies and older people.
System Block Diagram
Mobile App for Remote Monitoring
Demo
Circuit Diagram
Code
#include <WiFiClientSecure.h>#include <ThingerESP32.h>#define USERNAME "YOUR_USER_NAME"#define DEVICE_ID "YOUR_DEVICE_ID"#define DEVICE_CREDENTIAL "YOUR_DEVICE_CREDENTIAL"#define SSID "YOUR_WIFI_SSID"#define SSID_PASSWORD "YOUR_WIFI_PASSWORD"ThingerESP32 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);int bpm;int spo2;unsigned long currentMillis; //hold the current time//pulse oximeter time period
#define REPORTING_PERIOD_MS 1000PulseOximeter pox;uint32_t tsLastReport=0;// Callback (registered below) fired when a pulse is detected
void onBeatDetected(){ Serial.println("Beat!");}//pulse sensor callback functionvoid measured_pulse(){ // Make sure to call update as fast as possible
pox.update();if(millis() - tsLastReport > REPORTING_PERIOD_MS){bpm=pox.getHeartRate();tsLastReport= millis();}}void setup(){ Serial.begin(115200); Serial.println("Initializing MAX30100"); // Initialize the PulseOximeter instance and register a beat-detected callback
pox.begin(); pox.setOnBeatDetectedCallback(onBeatDetected); pinMode(LED_BUILTIN, OUTPUT); thing.add_wifi(SSID, SSID_PASSWORD); thing["spo2"] >> [](pson& out){out= pox.getSpO2();}; thing["bpm"] >> [](pson& out){out= bpm ;}; // more details at http://docs.thinger.io/arduino/
}void loop(){ thing.handle();currentMillis= millis(); measured_pulse();}
This article takes a closer look at each of these devices, comparing them across key areas like Python support, ease of use, Python programming tools, pin design, and hardware projects.
Deciding between Scratch and Python for your child's coding journey? This article compares both languages based on learning background, goals, methods, and difficulty.