4262

Temperature, Pulse and Blood oxygen level measurement is very important for getting idea of Covid19 health status. This project does the same and more to upload it to the cloud for everybody to observe. the cost is hardly USD $11 or INR 1460. The project also helps to rig the faulty Chinese MAX30100 pulse oxymeter to give proper results.

                                                           Pulse oxymeter back pack

MAX30100 issues: Pandemic period and the whole world is working towards it’s remedy & precautionary measures. The hobby electronics world is no exception for that matter. Earlier it was the hands free utility devices and then suddenly the word – oxymeter came into being! Even some big companies provided individual pulse oxymeter free to their employees for free check up at home for blood oxygen level. I also purchased one button cell operated pulse oxymeter for a hefty INR:2000. Then suddenly the electronic markets got flooded with the pulse oxymeter probe MAX30100 for as low as INR:250 to USD2 a piece. I purchased a few from robu.in [Indian supplier] but I could not set the probes into work. Even after sensing the probe successfully the readings were awfully wrong!

After having read the datasheet of MAX30100 and handful of reports from Internet, I came to know that these flooded Chineese oxymeters has two issues – 1.8 volt regulator issues & the I2C pull down resistance connection issue. This is an I2C infra red measuring device. Ideally the board should have operating voltage 3.3V for infrared LED driver and the 1.8V for the control & measurement circuitry but that does not solve all the problems. The I2C & the Interrupter pin needs to be pulled up thorough 4.7K resistor to the 3.3 volt instead of 1.8 volt, other wise they will not work with I2C bus of Arduino or the ESP32 MCUs.

 The MAX30100 has a temperature sensing provision inside, for oxygen correction but it cannot be taken out for measurement purposes and the sensor has a power down sleep state which is not used by the popular hobby electronics world – why? However, we used it in our project here.

Rigging the MAX30100:
With a multi meter if you measure the voltage on either side of the 3 leg [65K9] regulator, you will get 3.3 volt and 1.8 volt. So far so good. The three resistors 4.7K [472] are from SCL, SDA & INT to the positive bus [1.8 volt] , this actually prevents to get the correct measurements for this device, even though it shows “successfully initialized oxymeter”. What we have to do is remove this resistors and get them one-end connected to 3.3 volt instead of 1.8 volt. For achieving that feat see on the board carefully. Cut the small track between the point marked [1] and then join a jumper wire between the middle leg and the top of the last resistor. Use small single strand good quality wire. Since this place will be in touch of the body parts, they need to be good quality and smooth wire.

Operation: The MCU we used is ESP32. The Oxymeter MAX30100 is connected on the I2C port of the ESP32 and the DS18B20 which is a digital temperature probe & whose digital signal pin is connected to GPIO15 of the ESP32. The probe measures pulse – oxygen level and temperature from the connected finger and then uploads to a cloud at thingspeak.com site. The ESP32 has been provided with multiple wifi id and password. It will connect to which ever is available at that moment. The LED connected on GPIO12 is to provide an indication which will blink for a brief period to mark that the data has been uploaded to the cloud server at thingspeak.com. After uploading data, the MCU will go to deep sleep mode for 20 seconds and then it will wake up and do it all over. During sleep mode the MAX30100 sensor will also go to power down mode and the total power consumption will go down to 4.2 mA and during active stage the current becomes 160 mA. to preserve battery power. On a 26650, [3.7 volt 3000 mAH] Li-Ion battery this expected to run for couple of weeks non stop.



Schematic:  Prototype: 

Checks: While putting the finger or the wrist on the sensor , ensure that the body part area is clean and without oil, ink or grease. It’s better to clean it with some spirit. In case the body contact is not perfect, then the device will hang. To avoid that situation, the MCU will restart after 25 seconds from here. In case the internet ,though connected but not able to deliver the data to the website [“Error on HTTP request”], the MCU will restart.

BOM: [aliexpress.com] ESP32 MCU = USD 5 / INR 450 [robu.in] MAX30100 = USD 3 / INR 250 [robu.in] DS18B20 = USD 1 / INR 100 [robu.in] Size 18650, 3000 mAh , Li-Ion battery = USD 2 / INR 660 [robu.in] LED , Resistor & power supply extra --------------------------------------------- Total = USD 11 / INR 1460 [approx]

Software: attached herewith.

Thingspeak account: Well, this is very common today. Just open an account [free] in thingspeak.com. Get the write key and then replace the same in the sketch with your own key. The HTTP GET command actually open the browser and write the data into the cloud account. Do it on your own or read their HOWTOs at internet.

My Thingspeak Chanel: https://thingspeak.com/channels/1203838



 Bye, bye

 S. Bera Vindhyanagar