كود البحث

Using Melexis Non-Contact MLX90614 Infrared Thermometer with ESP32 over Bluetooth

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

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

لا توجد ملفات متاحة.