Infrared thermometer on the wall (iThermowall): An open source and 3-D print infrared thermometer for fever screening

Graphical abstract


Hardware description
The iThermowall thermometer (Fig. 1a) was designed to be easily reproducible by using a readily accessible module and 3-D printer. Fig. 1b shows the detailed parts of the iThermowall. The electronic components of this hardware consist of a microcontroller unit (MCU), OLED display, LED, infrared thermometer sensor, infrared proximity sensor, buzzer, charger module, step-up converter, and battery.
The MCU utilized open-source Arduino Nano microcontrollers [13]. Arduino Nano uses an ATmega328 microcontroller with 32 KB of flash memory, 2 KB of SRAM, and 1 KB of EEPROM. Additionally, Arduino Nano is utilized besides its capability using I2C communication to read data from the infrared thermometer sensor and write to the OLED display. A step-up converter was utilized as a step-up voltage from 3.7 V to 5 V for powering the electronic component. Battery to power the hardware used two parallel Lithium-ion 18,650 with a capacity of 2200 mAh and voltage of 3.7 V. A charger module TP4056 can charge the lithium-ion battery with battery protection. The infrared thermometer sensor used the GY-906 module that utilized MLX90614 temperature sensor. This module sensor is easy to integrate with Arduino Nano because of I2C communication. To measure the distance between the forehead and hardware, an infrared proximity sensor module was utilized. The distance was set using a potentiometer inside the infrared proximity sensor module. The result of the temperature sensor was shown in the OLED SSD1306 with a size of 128 mm Â 64 mm [14]. Green LED was used to show that the temperature is below 38°C and Red LED was used to show that the temperature is above 38°C. An active buzzer was utilized to warn for 5 s if the temperature sensor value is more than 38°C. Finally, a switch was used to turn off the hardware. It will be very handy if the hardware wants to be moved to another place or when it is charged.
Different techniques are being used by many researchers to measure human body temperature. The measurements are performed with various types of sensors. Zakaria et al. used the LM35 sensor to measure infant body temperature [15]. Azizulkarim et al. utilized DS18D20 to monitor real-time patient temperature [16]. However, the weakness of LM35 and DS18B20 sensors for fever screening COVID-19 is that there must be contact with the sensor. For non-contact human body temperature, the MLX906 sensor is being used by many researchers [17][18][19][20]. It can measure a wide temperature range: À40 to 125°C for sensor temperature and À70 to 380°C for object temperature [21]. Asif et al. used an MLX906 sensor to measure body temperature in real-time using IoT [18]. A contactless infrared thermometer prototype has been developed using Arduino Uno MCU with an ultrasonic sensor as distance sensor [22]. However, the prototype did not perform a thorough validation of the hardware and did not have provide a casing for the electronic components. Advanced human body temperature measurement could be conducted using a camera, such as FLIR Thermovision [23] and OptoTerm Thermoscreen [24]. The advantage of the camera sensor system is that it can measure many people's temperature quickly, while the price of the camera sensor system is costly (more than $ 15,000) [25].
In this hardware, we design iThermowall that is a low-cost and non-contact thermometer. The iThermowall can automatically measure human body temperature using a proximity sensor when the distance between the sensor and forehead is adequate. Researchers who use the iThermowall and system will do so because it offers: A simple assembly hardware with microcontroller, display, and sensor that are available as manufactured modules, An open-source file to program the thermometer system algorithm that can be modified with Arduino integrated development environment software, An open-source file to design the schematic and footprint of the circuit that can be modified.

Design files
Design

3-D print casing
Print Front Case (Case1) and Back Case (Case2) using a 3-D printer with infill 30% and layer 0.2 mm. We recommend using PLA + 3D printing filament with a diameter of 1.75 mm. Fig. 2 shows the result of the 3-D print of the iThermowall Front Case and Back Case from the top view and bottom view.

Uploading the firmware
Before connecting the cable to Arduino Nano, Arduino Firmware need to upload it to the Arduino Nano MCU. To upload the Arduino firmware, please use the following procedure: 1. Open firmware program Arduino_Firmware.ino using Arduino IDE. 2. Connect Arduino Nano to the computer that already installed Arduino IDE, using a mini-B USB cable. 3. On the Arduino IDE, choose the Arduino Nano board, ATmega328P processor, and correct USB port. 4. Verify the program. If there are errors in verification of the library, please install libraries OLED (Adafruit_SSD1306.h) [26], MLX90614 (Adafruit_MLX90614.h) [27], and millisDelay (millisDelay.h) [28]. 5. Upload the firmware program. If the upload is successful, there is a message ''Done Uploading" on the Arduino IDE.

Component connection of iThermowall
After successfully uploading the firmware, connect the component with the cable, according to Fig. 3 and Table 1. Fig. 4 shows the component connections on the inside of iThermowall before and after component connection. Designator's name is shown in Fig. 3. Fig. 5 shows how to set the detection distance from proximity sensor to object. We can use screwdriver to rotate potentiometer on the proximity sensor (U4), so that the detection distance is approximately 50 mm. Rotating potentiometer to clockwise will increase detection distance and counter-clockwise will reduce the detection distance. When setting the proximity sensor (U4), please connect VCC (U4) to the 3 V3 (U1) and GND (U4) to GND (U1).

Operation instructions
The following is the operation instruction on how to use the iThermowall.  2. Close the front and back case of the iThermowall using 4 screws of M3 Â 10 mm.
3. Turn-on the switch on the right side.
4. The OLED screen will turn-on and show ''Initializing." When the OLED shows ''OLED Display allocation failed," there is something incorrect with the OLED. 5. Put the hardware on the wall approximately 150 cm (close to the forehead), as shown in Fig. 6. 6. If the battery starts to run out of energy, charge the hardware using a power adapter charger 5 V DC with a micro-USB port. Step-up 5 V (U7)

Temperature measurement validation
For validation, the iThermowall sensed the body temperature in various sites, they were head, brow, ear, and wrist, and compared by a reference thermometer. The reference thermometer we used was a handheld infrared thermometer, SK-T008 (Luzhou Skinod Technology, China) with accuracy ± 0.2°C within range 35.0°C À 42.0°C at operating temperature in 10-40°C [29]. Volunteers were recruited in this study, including men and women with age ranges from 3 to 40 years old. Oral   informed consent was obtained from the volunteers or parents of the children after explaining the purpose of temperature measurement. Simultaneous temperature measurements were conducted in the morning, afternoon, and night, with the head, forehead, external auditory canal (EAC), and wrist as the target points. The measurements were performed by compar-  ing the iThermowall to the reference thermometer. Briefly, the probe of the infrared thermometer was directed into the head, forehead, EAC, and wrist. The investigation was held in this position for a few seconds until the device bleeped and display the temperature in Celsius degree. The measurements performed from each point were repeated three times. Tables  2 and 3 show the comparison between the reference thermometer and iThermowall.
Testing the ANOVA, we found the P-value is greater than the considerable level of significance (a = 0.05), indicating no differences for all means among sites detected by the iThermowall. Then we conducted T-test analysis, the P-values for all the test is greater than 0.05, means that the mean Celsius temperature for both groups (Reference and iThermowall) for all sites of the sensor are similar. The difference between the mean Celsius temperature for both groups in fours site were less than 0.2°C. There are several factors influencing the accuracy of the iThermowall, such as ambient temperature, the alignment of the thermometer, non-linearity, target emissivity value, and background radiation [30,31]. The iThermowall used the GY-906 sensor module that utilized an MLX90614 temperature sensor with accuracy ± 0.2°C for a limited temperature range around the human body temperature [21].

Green and Red LED validation
In the iThermowall algorithm, Green LED and active buzzer turn on for 1 s when the temperature is less than 38°C. On the other hand, Red LED and active buzzer turn on for 5 s when the temperature is more than 38°C. Fig. 7(a) and 7(b) show the validation of the Green and Red LED to the temperature, respectively. In Fig. 7(a), the Green LED is turn on when the mea- sured temperature is 37.03°C (less than 38°C). Fig. 7(b) shows that the Red LED is turned on when the measured temperature is 45.54°C (more than 38°C).

Power consumption and battery life
The power characterization of iThermowall was conducted by USB Meter UM24 (RuiDeng Tech., China) with voltage and current measurement resolution of 0.01 V and 0.001 A, respectively. Fig. 8(a) and (b) show the I-V (Current-Voltage) characterization of the thermometer when the temperature is less than 38°C and more than 38°C, respectively. The period of the current peak in Fig. 8(b) is longer than Fig. 8(a) due to the longer period of Red LED and Buzzer turn on (5 s) when the temperature is more than 38°C. In a temperature less than 38°C, the Green LED and Buzzer only turn on for 1 s. Fig. 8 shows that the maximum current consumption during LED and Buzzer turn on (when the sensor detects people in front of the iThermowall) is 118 mA. On the other hand, minimum current consumption during LED and Buzzer turn off (when the sensor does not detect people in front of the iThermowall) is 44 mA. The voltage is stable at around 4.98 V to 5.00 V.
To measure the power consumption of the iThermowall, the total current is assumed by 30% for the maximum current and 70% for the minimum current.
where W is power consumption, V is voltage, I max is maximum current, and I min is minimum current. The energy of the two lithium-ion batteries was calculated by 80% of the total energy.
where E bat is battery energy. From the battery energy and power consumption, we can calculate battery lifetime.
where T bat is battery lifetime. From the calculation, the iThermowall will work without charging up to 39.3 h. On the other hand, the iThermowall can continue operating while the hardware is charging because of Lithium Battery Charger Module TP4056. Therefore, to support its continuous operation, we recommend having one additional power bank for each iThermowall unit.

Performance comparison
There are a number of thermometer types that have their own criteria in detecting the human body temperature. Measuring techniques, target distance, accuracy, power supply, and price become essential concerns to develop a new device since the device's compatibility should be suitable to needed. Here, we provide the specifications of iThermowall compared to other thermometers, as shown in Table 4.

Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.