Temperaturmessung mit ESP32 und LU90614 IRTempSensor

LU90614 Uart Communication Protocol


Quelltext TestProgramm: Quellcode von ESP32_LU90614_Debug.ino
#define pin_RXD2 16
#define pin_TXD2 17
#define LU90614_BAUD 9600
#define LU90614_AMBI "\xFA\xC6\xC0"
#define LU90614_READ "\xFA\xCA\xC4"

bool LU90614_debug()
{
	char ac_data[10]; int i_resp=0,i_checksum=0; float f_tambi;
	Serial2.print(LU90614_AMBI);
	Serial2.print(LU90614_READ); 
	long l_ms0=millis();
	while(Serial2.available()<9){Serial2.print("."); delay(1);} 
	Serial.printf("Response after %3d ms\r\n",millis()-l_ms0);
	for(int i=0;i<=7;i++){i_resp=Serial2.read(); i_checksum+=i_resp; ac_data[i]=i_resp; Serial.printf("%02X ",i_resp);} i_checksum%=256;
	i_resp=Serial2.read(); Serial.printf("chk:%02X==%02X ",i_resp,i_checksum);
	if(ac_data[3]!=0xFF)
	{
		if(ac_data[1]==0xAA){f_tambi=ac_data[2]+ac_data[3]/100.0; Serial.printf("Ambi:%.2f\r\n",f_tambi); }
		return true;
	}
	return false;
}

void setup() 
{
	Serial.begin(115200);
	Serial2.begin(LU90614_BAUD,SERIAL_8N1, pin_RXD2, pin_TXD2);
	Serial.printf("LU90614 TxD-->ESP.RX2D[GPIO%d] RxD<--ESP.TXD2[GPIO%d]\r\n",pin_RXD2,pin_TXD2);
}

void loop() 
{
	LU90614_debug();
}
Download: Full Featured Programm mit Class