Arduino ProjectsLORA PROJECTS

MLX90614 Infrared temperature sensor with Arduino & LoRa

Arduino MLX90614 and Lora Based wireless temperature monitoring system

MLX90614 with Arduino & LoRa:

MLX90614 Arduino LoRa

MLX90614 Infrared temperature sensor with Arduino & LoRa– In this article, you will learn how to make a long-range wireless temperature monitoring system using MLX90614 Infrared contactless temperature sensor, a pair of Arduino boards, SX1278 LoRa Transceiver modules, SSD1306 I2C supported Oled display module, a potentiometer, and a 5V buzzer.

This is my third article on the MLX90614 Temperature sensor and is entirely based on my previous two tutorials. In my first article on the MLX90614, I covered the extreme basics including the MLX90614 IR temperature sensor technical specifications, its calibration using the Emissivity value, how to use it with Arduino, and display the temperature readings on the Oled display module. So, if you are just getting started with the MLX90614 non-contact infrared temperature sensor then I must say, you should definitely read my first article on the MLX90614 temperature sensor.

In my 2nd article, I used the MLX90614 infrared temperature sensor with the Nodemcu ESP8266 WiFi module. So, if you are thinking of monitoring the temperature from any part of the world using the MLX90614 temperature sensor then you should read my 2nd article. Now, let’s get back to our original topic.

MLX90614 Arduino LoRa

Here is a prototype model of my long-range wireless temperature monitoring system. On the right side is the transmitter, along which the MLX90614 temperature sensor and SX1278 LoRa transceiver module are connected. The Arduino reads the MLX90614 temperature Sensor and sends the temperature readings to the remote side Arduino using the SX1278 LoRa module.

And on the Left side is the Receiver. It has been connected with a Potentiometer, an Oled display module, a 5V buzzer, and an SX1278 LoRa transceiver module. We use the potentiometer to set the threshold value. This way when the temperature exceeds the set value the Buzzer will turn ON. Now, let’s kick off our practical demonstration.

Altium Designer + Altium 365 + Octopart:

Arduino LoRa Free SMS

Altium 365 lets you hold the fastest design reviews ever. Share your designs from anywhere and with anyone with a single click. it’s easy, leave a comment tagging your teammate and they’ll instantly receive an email with a link to the design. Anyone you invite can open the design using a web browser. Using the browser interface, you’re able to comment, markup, cross probe, inspect, and more. Comments are attached directly to the project, making them viewable within Altium designer as well as through the browser interface. Design, share, and manufacture, all in the same space with nothing extra to install or configure. Connect to the platform directly from Altium Designer without changing how you already design electronics. Altium 365 requires no additional licenses and comes included with your subscription plan.

Get real-time component insights as you design with Octopart built into Altium 365. Octopart is the fastest search engine for electronic parts and gives you the most up-to-date part data like specs, datasheets, cad models, and how much the part costs at different amounts etc. Right in the design environment so you can focus on your designs. Start with Altium Designer and Activate Altium 365. Search for electronic parts on Octopart.

MLX90614 Arduino LoRa

I have powered up the transmitter as well as the receiver’s side. You can view temperature readings in Celsius along with the set value on the Oled display module. Right now, the buzzer is OFF because the temperature reading is below the set value. Now, let’s go ahead and measure the temperature.

MLX90614 Arduino LoRa

You can see, on the Oled display, I have changed the set value “threshold value”, when the MLX90614 temperature sensor was focused on the fire, the temperature increased and at the same time the buzzer was also turned ON. For the practical demonstration watch the video tutorial given at the end of this article.

Since this project is based on the Long-range LoRa transceiver modules, and the MLX90614 itself is a non-contact temperature sensor; so, because of these outstanding features this project can be used for monitoring the temperature of any particular object or human, etc. All you need is to focus the sensor and set the threshold value.

The receiver side is completely portable, you can keep it with yourself, or you can fix it inside your room, or office. It obviously depends on you how you plan to use it. I am sure by now, you might have got an idea of how does this system work. So, without any further delay let’s get started!!!

Amazon Links:

MLX90614 Infrared Temperature Sensor

SSD1306 Oled display Module

Arduino Nano

LoRa SX1278 Module

5V buzzer

Other Tools and Components:

Top Arduino Sensors:

Super Starter kit for Beginners

Digital Oscilloscopes

Variable Supply

Digital Multimeter

Soldering iron kits

PCB small portable drill machines

*Please Note: These are affiliate links. I may make a commission if you buy the components through these links. I would appreciate your support in this way!

MLX90614 Infrared Temperature Sensor:

MLX90614 Arduino LoRa

This sensor consists of four pins as shown in the figure.

  • VCC
  • GND
  • SDA
  • SCL


SEN0206 (MLX90614-BBC)

  • Operating Voltage: 3.3V – 5V
  • Operating Current: 1.2mA
  • Temperature: -70.01℃ to +382.19℃, (0.01 ℃ resolution)
  • Interface Type: IIC
  • Interface Line Sequence: VCC, GND, SCL, SDA
  • FOV: 35°
  • Dimensions: 31.5*18 mm/1.24 x 0.7 inches

SEN0263 (MLX90614-DCI)

  • Operating Voltage: 3.3V-5V
  • Operating Current: 1.2mA
  • Temperature: -70.01℃ to +270℃,(0.01 ℃ resolution)
  • Interface Type: IIC
  • Interface Line Sequence: VCC,GND,SCL,SDA
  • FOV: 5°
  • Dimensions: 31.5*18mm/1.24 x 0.7 inches

SX1278 LoRa Module:

In this project we are using the same SX1278 LoRa modules for the transmitter and receiver. In order to use it as a receiver and transmitter we will make change in the code. Lora SX1278 long distance wireless transceiver module integrates Semtech RF transceiver chip SX1278, which adopts LoRa TM Spread Spectrum modulation frequency hopping technique. The features of long distance and high sensitivity (-139dBm) make this module perform better than FSK and GFSK module. Multi-signal won’t affect each other even in crowd frequency environment; it comes with strong anti-interference performance. This module is 100mW and ultra-small size, widely used in AMR , remote industrial control filed.

MLX90614 Arduino LoRa


  • Frequency Range: 868 / 915 MHz
  • Sensitivity up to -139dBm @Lora
  • Maximum output power: 20 dBm
  • 13mA@receiver mode
  • Sleep current <200 nA
  • Data transfer rate: @FSK,1.2-300 Kbps
  • @Lora TM, 0.018-37.5 Kbps
  • Lora TM, FSK, GFSK & OOK Modulation mode
  • Built-in ESD Protection
  • 127 dB Dynamic Range RSSI
  • Packet engine up to 256 bytes with FIFO and CRC
  • Hopping frequency
  • Built-in temperature sensor and low battery indicator
  • Excellent blocking immunity
  • Operating Temperature Range:-40 ~ + 85 °C


  • Remote control
  • Remote meter reading
  • Home security alarm and remote keyless entry
  • Industrial control
  • Home automation remote sensing
  • Individual data records
  • Toys control
  • Sensor network
  • Tire pressure monitoring
  • Health monitoring
  • Wireless PC peripherals
  • Tag reading and writing

MLX90614, Arduino, & LoRa; Tx Side:

MLX90614 Arduino LoRa

This is the transmitter side circuit diagram. The VCC of the LoRa module is connected with 3.3V of the Arduino. The MISO Pin of the LoRa module is connected with the Arduino pin 12. The MOSI pin is connected with pin 11. The SCK pin of the LoRa module is connected with pin 13. The NSS pin is connected with the Arduino’s pin 10 and the ground pin of the LoRa module is connected with the Arduino’s GND.

The VCC and GND pins of the MLX90614 Infrared temperature sensor are connected with the 3.3V and GND pins of the Arduino. While the SDA and SCL pins of the MLX90614 temperature sensor are connected with the A4 and A5 pins of the Arduino. A4 is the SDA and A5 is the SCL.

On the left side, you can see a 5V regulated power supply based on the LM7805 voltage regulator. We use this regulated 5 volts to power up the Arduino and all the other electronics.

MLX90614, Arduino, & LoRa; Rx Side:

MLX90614 Arduino LoRa

This is the receiver side circuit diagram. The Lora module connections with the Arduino and the 5V regulated power supply wiring remain exactly the same.

The SDA and SCL or SCK pins of the SSD1306 Oled display module are connected with the A4 and A5 pins of the Arduino. While the VCC and GND pins of the Oled display module are connected with the Arduino’s 3.3 volts and GND pins.

A potentiometer is connected with the Analog pin A0 of the Arduino.

Digital pin D3 on the Arduino is used to control the 5V buzzer. We use a 10K ohm resistor and 2n2222 NPN transistor to control the buzzer. The 10K ohm resistor and transistor make the driver circuit. Now, let’s take a look at the programming.

Wireless temperature monitoring Programming:

This Arduino, LoRa, and MLX90614 sensor based wireless temperature monitoring system is based on two programs. This program is written for the transmitter side, whereas this program is written for the receiver’s side.

Before, you start the programming, first of all, make sure you download all the necessary libraries.

First of all we will install the MLX90614 library for which we will click on the library manager and write MLX90614 and install the library.

MLX90614 Arduino LoRa

You will also need libraries for the SSD1306 Oled display module.

Download: Adafruit_GFX.h

Download: Adafruit_SSD1306.h

Download: LoRa.h

Arduino, LoRa, & MLX90614 Tx Code:

I developed this code by combining the codes of my previous two projects. So, for a detailed explanation read my article on the LoRa SX1278 two-way communication, and my getting started video on the MLX90614 temperature sensor.

I didn’t change anything, I am using the same LoRa nodes addresses.

The code inside the setup() function remains exactly the same. I am using the same code which I previously used for reading the MLX90614 temperature sensor. This time I am sending the temperature readings using the LoRa transceiver module. I must remind you once again, if you want to learn things in detail then you should watch my other videos on LoRa and MLX90614 temperature sensor. Now, let’s take a look at the receiver’s side programming.

Arduino, LoRa, & MLX90614 Rx Code:

Maximum of the code I have already explained in my previous videos. The only addition is that, this time I am using the potentiometer to select the threshold value. I simply read the potentiometer and then I map its value to define the range.

The temperature reading received from the transmitter side is printed on the Oled display module and is also compared with the set value and then accordingly the buzzer is turned ON or turned OFF. So, that’s all about the programming.

Watch Video Tutorial:

Engr Fahad

My name is Shahzada Fahad and I am an Electrical Engineer. I have been doing Job in UAE as a site engineer in an Electrical Construction Company. Currently, I am running my own YouTube channel "Electronic Clinic", and managing this Website. My Hobbies are * Watching Movies * Music * Martial Arts * Photography * Travelling * Make Sketches and so on...

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button