Introduction: IOT Based Health Monitoring System

A microcontroller-based device with appropriate bio-medical sensors will be attached to patient to provide constant cloud-based monitoring. The vital signs i.e. temperature and pulse rate of human body which are major clues to detect any health problem will be sensed by respective sensors supported by NodeMCU in a Wi-Fi environment and the data will be sent to ThingSpeak cloud where the data will be analysed to look for any irregularity. In case of any irregularity a notification will be sent to doctors and nurses.

By this system, patients can be kept under proper constant monitoring without being dependent on any human’s responsibility at a very low cost. This will also reduce any possible errors and help the doctor to quickly respond to the situation.

Step 1: Connection

Things you will need:-

1. Breadboard

2. NodeMCU

3. Pulse sensor

4. DS18B20 waterproof temperature sensor

5. Jumper wires

6. 4.7k ohm resistor for DS18B20

Now, setup your connection as per the circuit given in the image.

Step 2: Coding and Thingspeak

Upload the code and setup your thingspeak channel to receive the data (you can easily find a lot of tutorials regarding this on internet, still if you have any issues you can leave a comment below) .

Make sure the field 1 is for BPM and field 2 is for temperature on your thingspeak channel and then, select NodeMCU as your board (you will have to download this board as it is not added by default, you can go through this guide to setup your IDE: https://www.instructables.com/id/Quick-Start-to-N... ).

Now, upload the code and make sure to edit the WiFi credentials and the thingspeak API key accordingly in the code before uploading.

Step 3: Optional

You can generate email alerts accordingly:

https://in.mathworks.com/help/thingspeak/analyze-c...

Here is the guide to set it up.

Code:

channelID=Your_channel_ID;

iftttURL='Your_IFTTT_URL';

readAPIKey='read_API_key';

bpm=thingSpeakRead(channelID,'Fields',1,'ReadKey',readAPIKey);

temp=thingSpeakRead(channelID,'Fields',2,'ReadKey',readAPIKey);

tempf=(temp*9/5)+32;

if (bpm<60 | bpm>100 | temp<36.1 | temp>37.2)

webwrite(iftttURL,'value1',bpm,'value2',temp,'value3',tempf);

end