Using Melexis Non-Contact MLX90614 Infrared Thermometer with ESP32 over Bluetooth
In this tutorial, you will learn how to display temperature on a mobile phone over Bluetooth using an ESP32 Arduino board with an MLX90614 infrared non-contact temperature sensor.
🔴Infrared non-contact temperature sensor
337-Arduino Code to measure Temperature using MLX90614 with ESP32
اللغة: C++
/*
* //*
*/
*
*
* This is Arduino code to Measure Temperature over Bluetooth using
MLX90614 with ESP32
* Watch video instruction for this code: https: // youtu.be/HpsvNIAtjm4
* Written/updated by Ahmad Shamshiri for Robojax Video channel www.Robojax.com
* Date: July 01, 2020, in Ajax, Ontario, Canada
Related Videos:
Related videos:
Introduction to MLX90614 Non-Contact https: // youtu.be/cFDSqiEIunw
Display Temperature on LCD from MLX90614: https: // youtu.be/_iO2L4P_irw
Measure temperature using MLX90614 Over WiFi:
* this code has been downloaded from https: // robojax.com
* Get this code and other Arduino codes from Robojax.com
you may make donation using PayPal http: // robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https: // www.gnu.org/licenses/>.
*/
#include <Wire.h>
#include <Adafruit_MLX90614.h>
char *typeName[]={"Object: ","Ambient: "};
float tempC, tempF, tempK, tempCA, tempFA, tempKA;
int type=1; // 1=C, 2=F, 3=K,
int showAmbient =1; // 1=yes, 0=no
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
int inData;
char receivedChar; // received value will be stored as CHAR in this variable
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32_Robojax"); // Bluetooth device name
Serial.println("The device started, now you can pair it with bluetooth!");
Serial.println("Search for ESP32_Robojax device and Pair your phone to ESP32_Robojax");
mlx.begin();
// Robojax.com MLX90614 with ESP32 Bluetooth
}
void loop() {
getTemp();
// Robojax.com MLX90614 with ESP32 Bluetooth
if (Serial.available()) {
// SerialBT.write(Serial.read());
}
while (SerialBT.available() ) {
receivedChar =(char)SerialBT.read();
inData += receivedChar;
if (receivedChar == '\n')
{
// SerialBT.print("Received:");// write on BT app
// SerialBT.println(inData);// write on BT app
// Serial.print("Received:");//print on Serial Monitor
// Serial.println(inData); //print on Serial Monitor
type = inData;
sendTemp();
inData = 0; // Clear recieved buffer
} // if (receivedChar
} // while
// Serial.println(servo1Angle);
delay(20);
// Robojax.com MLX90614 with ESP32 Bluetooth
} // loop ends here
void sendTemp()
{
// Robojax.com MLX90614 with ESP32 Bluetooth
if(type ==24)
{
SerialBT.print(typeName[0]);
SerialBT.print(tempC); // object Temperature
SerialBT.println("°C");
Serial.print("Temperature:"); // print on Serial Monitor
Serial.println(tempC); // print on Serial Monitor
if(showAmbient)
{
SerialBT.print(typeName[1]);
SerialBT.print(tempCA); // ambient temperature
SerialBT.println("°C");
}
}
if(type ==25)
{
SerialBT.print(typeName[0]);
SerialBT.print(tempF); // object Temperature
SerialBT.println("°F");
if(showAmbient)
{
SerialBT.print(typeName[1]);
SerialBT.print(tempFA); // ambient temperature
SerialBT.println("°F");
}
}
if(type ==26)
{
SerialBT.print(typeName[0]);
SerialBT.print(tempC); // object Temperature
SerialBT.println("°K");
if(showAmbient)
{
SerialBT.print(typeName[1]);
SerialBT.print(tempKA); // ambient temperature
SerialBT.println("°K");
}
}
// Robojax.com MLX90614 with ESP32 Bluetooth
} // sendTemp ends here
/*
* @brief returns temperature or relative humidity
* @return returns one of the values above
* Usage: to get Fahrenheit type: getTemp('F')
* to print it on serial monitor Serial.println(getTemp('F'));
* Written by Ahmad Shamshiri on Mar 30, 2020.
* in Ajax, Ontario, Canada
* www.Robojax.com
*/
void getTemp()
{
// Robojax.com MLX90614 Code
tempC = mlx.readObjectTempC(); // in C object
tempCA = mlx.readAmbientTempC();
tempF = mlx.readObjectTempF(); // Fah. Object
tempFA = mlx.readAmbientTempF(); // Fah Ambient
tempK = tempC + 273.15; // Object Kelvin
tempKA = tempCA + 273.15; // Ambient Kelvin
// Robojax.com MLX90614 Code
} // getTemp
الموارد والمراجع
لا توجد موارد حتى الآن.
ملفات📁
لا توجد ملفات متاحة.