Dual or single THERMOMETER with INFRARED support
Sensor typeDS18S20/DS18B20
Project Information

The thermometer reads one local sensor (DS18S20 or DS18B20) and listens for infrared temperature signal. The infrared signal is generated by another external circuit which can be placed meters away. The device can be used to display:

  • only the temperature measured by its local sensor
  • only the temperature received through infrared signal
  • both temperatures, one from the local sensor and the other from the infrared signal
  • 7×4 common cathode and common anode segment display support
  • Single or dual mode display for either local, external or both sensors
  • Configurable display time for both sensors
  • Configurable Celsius or Fahrenheit temperatures display
  • High temperature range from -55 up to +120 Celsius
  • Thermostat for the local sensor controlling temperatures between 0 and 99
  • Led indicating thermostat state
  • Thermostat active type (active high or low) for the local sensor
  • Great menu with SET/UP/DOWN buttons
  • Low power consumption by the external circuit making a long battery life (~4 years)
  • 64 seconds temperature conversion by the external circuit
  • Up to 8 meters straight infra-red range
How it works

At power up, the device tries to establish a communication with the local sensor. If the local sensor exists, then it will display read temperature (TEMP1) for a number of seconds (TS1) set by the user. While working, the device always listens for infrared signal on a dedicated pin. If no valid infrared signal is detected, then only the local sensor is displayed. The user can connect the pin 6 (RB0) to +5V and drop the TSOP1738 usage, in the case external IR temperature is not needed. Local temperature conversion occurs when seconds (TS1) rolls over to 0. This means that user will read a new temperature conversion at every TS1 interval.

If a valid infrared signal is present, a flag inside the chip is set. When the seconds (TS1) to display local temperature (TEMP1) elapsed, the temperature received through infrared signal will be displayed (TEMP2), also for a number of seconds set by the user (TS2). When the seconds to display external temperature (TEMP2) elapsed, then local temperature (TEMP1) will be displayed. The last digit 4 will blink between C or F and 1 or 2, meaning Celsius/Fahrenheit and first(local)(1)/second(infrared)(2) sensors being displayed. Read more about digit 4 in section 4. „Displaying temperatures” from the documentation.

The device can function without the local sensor. In this case, the user must connect pin 1 (RA2) to ground through a 4.7K resistor. In this case, local sensor is not detected and the device will start a countdown from 70 down to 0 to ensure the user that infrared signal is awaited. The countdown will start again until valid infrared signal is detected. If an infrared signal occur then the received temperature will be displayed and the countdown reset. While displaying temperature, if for 210 seconds no infrared signal is detected, then the device will again enter in 70 seconds countdown mode. TS2 has no meaning in this mode.


The video displays the device in dual mode where local sensor reads 24° Celsius and temperature received through infra-red signal is 9° Celsius. The last digit that blinks between C and 1/2 means Celsius scale is used and 1/2 are local/remote sensors. The remote sensor was outside and infra-red signal passed through my window. Device has thermostat support for local sensor so you may set tl, th, tt (thermostat type, active low[L] or high [H]). User can set time to display both local or remote temps (t1, t2) and scale.

Project zip file
  • ASM source code
  • HEX files
  • Eagle png file and sch file
  • Documentation
Download Project