Elevated body temperature detector (Cloud Enabled)

An automated system that takes IR measurements and tries to determine the elevated Body Temperature of a person.

Public Chat
Similar projects worth following
Is it possible to determine that someone has a fever by taking a quick snapshot of IR magnitude at a preset distance? I am working on a system that can detect motion and take an IR reading when a target is in the range. An open-source project.

I built a simple system at home with a sonar sensor and an IR sensor. The system constantly runs and check for movement in the area. If movement is detected, the sonar sensor estimate distance to a closest target and IR sensor takes IR readings. If IR readings from all four sensors are higher than a threshold "EBT" is reported. The system also runs and post data to the web-page when no motion is detected or when only motion is detected (no EBT). 

Once sonar sensor detects a target at a distance of 16 inches or further the IR sensor takes infrared readings.  If IR readings are above the set threshold EBT is reported. The unit streams data over UART-USB converter and also sends data to the web application.

Infrared thermometers in general are characterised by accuracy and angular coverage. The distance-to-spot ratio (D:S) is the ratio of the distance to the measurement surface and the diameter of the temperature measurement area. This ratio determines accuracy of temperature measurements. The firther the distance to the measured object the less accurate is the temperature reading. For example, a 12:1 rated device can sense a 1-inch circle at a distance of one foot. If the distance is greater than 12 inches temperature reading will be inaccurate. The ideal target area should be at least twice the size of the spot at that distance. That is why my system constantly measures the distance and when target is at a specified range the unit takes temperature readings.

Testing the system. I held a hot cup of water in my hand before running this test. When I place my hand in front of the IR sensor the IR readings are above the set threshold at the set distance and "sick person" image appears on the web page.

I took a few IR readings from myself to get a baseline IR. The distance was approximately 16 inches from the IR sensor (not very far). Using these readings as a reference the system tries to determine if one has an elevated body temperature.

The project is based on the CC3200 board. Once information is collected it gets reported to my web application: To view my data enter ID: 95378810207688.

In the image above "EBT" stands for an elevated body temperature. 

For the project I have selected MB1212 Maxbotix sonar sensor and an AK9753 Human Presence Sensor Breakout board. This project is based on my "Monitor Data and Remote Control from a WebApp" project:

The unique ID number is printed to a serial terminal as a Hex value when system is running.

This number can be a MAC default assigned by TI or manually assigned. To manually set the new MAC address (or ID) enter unique values as shown below. After the board is programmed you will need to press and hold SW3 and push the Reset button while pressing SW3. After a 10 - 15 seconds you should see " MAC address is set to: XX:XX:XX:XX:XX:XX" printen on a serial terminal:

//SET MAC address
GPIO_IF_GetPortNPin(SH_GPIO_13,&uiGPIOPort,&pucGPIOPin);//If SW3 button is pressed set MAC address
ucPinValue = GPIO_IF_Get(SH_GPIO_13,uiGPIOPort,pucGPIOPin);
if (ucPinValue == 1){
    _u8 MAC_Address[6];
    MAC_Address[0] = 0x8;
    MAC_Address[1] = 0x0;
    MAC_Address[2] = 0x28;
    MAC_Address[3] = 0x22;
    MAC_Address[4] = 0x69;
    MAC_Address[5] = 0x31;
    sl_NetCfgSet(SL_MAC_ADDRESS_SET,1,SL_MAC_ADDR_LEN,(_u8 *)MAC_Address);
    UART_PRINT("\n MAC address is set to: %02x:%02x:%02x:%02x:%02x:%02x \n",

Technical information on the sensors used in the project

Sensor Minimum Distance
For the MB1202 and MB1212 the sensor minimum reported distance is 25-cm. However, the I2CXL-MaxSonar-EZ will range and report targets to the front sensor face. Large targets closer than 25-cm will typically...

Read more »

Adobe Portable Document Format - 1.15 MB - 04/09/2020 at 21:46


Adobe Portable Document Format - 86.93 kB - 04/09/2020 at 21:45


Adobe Portable Document Format - 795.19 kB - 04/09/2020 at 21:45


  • 1 × CC3200-LAUNCHXL SimpleLink™ Transceiver For Use With CC3200
  • 2 × MB1212-000 Ultrasonic Sensor 42kHz
  • 1 × SEN-14349 AK9753 Proximity Infrared (IR) Sensor Qwiic Platform Evaluation Expansion Board

  • Distance measurements with Sonar sensor

    Roman04/08/2020 at 18:45 0 comments

    It is a bit of a challenge to get accurate distance readings with sonic sensors. Sonic sensors report stable readings when faced a flat surface and there is no obstacles between sonic sensors and a target. The following image shows distance readings to a wall. Both sensors read 27" distance:

    Once I turn sensors away from the wall I get:

  • Debugging the source code for a public release

    Roman04/08/2020 at 03:36 0 comments

    I have a few issues with the source code. As soon as I get a stable version, the code will be uploaded to the github.

View all 2 project logs

  • 1
    Connecting to a WiFi network

    Download and install the CC3200 SDK on your PC.

    Download C-source code files from the Github

    Import project files into your CCS workspace (link to CCS project import example).

    Connect CC3200 development board to a computer.

    Open a serial terminal on your PC and Set: COM PORT X, 115200 bps, 8N1, no parity, no flow control.

    To enter WiFi SSID name and password:

    1. Press and hold SW2 

    2. Press and release RESET while holding SW2 until you see:

    Enter SSID name and press ENTER.

    When prompted enter password.

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates