revised with env temperature

This commit is contained in:
Yunhorn 2024-01-08 17:35:31 +08:00
parent e98af7458f
commit 22aed14aa1
3 changed files with 14 additions and 10 deletions

View File

@ -59,6 +59,7 @@ volatile uint8_t sts_reed_hall_result =0;
volatile uint8_t sts_water_leakage_result=0;
volatile uint8_t sts_water_leakage_changed_flag=0;
extern volatile uint8_t sensor_data_ready;
extern volatile float env_temperature;
#ifdef YUNHORN_STS_O5_ENABLED
#endif
@ -413,6 +414,8 @@ void STS_YunhornSTSEventP9_Process(void)
{
APP_LOG(TS_OFF, VLEVEL_L, "\r\n P9 Testing Process start\r\n");
//MX_I2C2_Init();
env_temperature = (SYS_GetTemperatureLevel() >> 8);
mlx90640_display_init();
mlx90640_display_process();
}

View File

@ -62,6 +62,7 @@ volatile uint32_t HeartBeatPeriodicity = 120000; //unit ms
volatile uint8_t STS_LoRa_WAN_Joined = 0;
#ifdef STS_TMG
volatile float env_temperature= 25.0;
extern volatile uint8_t waterTempThreshold;
extern volatile uint8_t humanTempThreshold;
extern volatile uint8_t averageTempThreshold;
@ -818,6 +819,7 @@ static void SendTxData(void)
//r0_data.battery_Pct = batteryLevel; //(uint8_t)(99*batteryLevel/254);
// EnvSensors_Read(&sensor_data);
//env_temperature = (SYS_GetTemperatureLevel() >> 8);
// APP_LOG(TS_ON, VLEVEL_M, "\r\nVDDA: %d\r\n", batteryLevel);
// APP_LOG(TS_ON, VLEVEL_M, "\r\ntemp: %d\r\n", (int16_t)(sensor_data.temperature));

View File

@ -42,6 +42,7 @@ volatile float averageTemp=0.0f;
volatile float averageTempInner=0.0f;
volatile uint16_t waterSpillCount=0;
extern volatile uint8_t sensor_data_ready;
extern volatile float env_temperature;
char tempBuffer[256];
// variables for interpolated colors
uint8_t red, green, blue;
@ -209,7 +210,7 @@ static void sortFocusAreas(void)
{
temp1 = (float)tempValues[(x) + (y*COL)];
if ((temp1 + (float)(waterTempThreshold / 10.0)) < averageTemp ) // was max(averageTemp, normalWaterTemp))
if ((temp1 + (float)(waterTempThreshold / 10.0)) < (float)env_temperature ) // was max(averageTemp, env_temperature))
{
if (blackOutTag == 0) {
zoneMask[y*COL+x] ++;
@ -221,7 +222,6 @@ static void sortFocusAreas(void)
}
}
}
@ -229,7 +229,7 @@ void STS_M1A_SENSOR_Read(STS_M1A_SensorDataTypeDef *m1a_data)
{
m1a_data->waterSpillCount = blackOutTag==0?waterSpillCount:0;
m1a_data->spillage_level = (uint8_t)((m1a_data->waterSpillCount)*99/560.0); //((ROW-2)*(COL-2))); // (24-4) * (32 -4) minus edge dots
m1a_data->spillage_level = (uint8_t)((m1a_data->waterSpillCount)*99/768.0); //((ROW-2)*(COL-2))); // (24-4) * (32 -4) minus edge dots
m1a_data->averageTemp = averageTemp;
m1a_data->averageTempInner = averageTempInner;
m1a_data->centerTemp = centerTemp;
@ -257,8 +257,8 @@ void STS_M1A_SENSOR_Read(STS_M1A_SensorDataTypeDef *m1a_data)
memcpy((void *)m1a_data->order, (const void *)order, sizeof(order));
memset(tempBuffer,0x0,sizeof(tempBuffer));
sprintf(tempBuffer,(char *)"\r\n## Blackout=%u ######\n##Read Sensor Spot CNT=%4d (areas) \r\n## V_cnt=%2d (lane) H_cnt=%2d (lane) \r\n## Spillage Level =%02.2f%% \r\n## averageTempInner=%02.2f C averageTemp=%02.2f C centerTemp=%.2f C MinTemp=%02.2f C maxTemp=%02.2f C \r\n ######## Gap_Average= %02.2f Gap_Inner = %02.2f \r\n",
(uint8_t)blackOutTag, (int)m1a_data->waterSpillCount, (int)v_water_cnt, (int)h_water_cnt, (float)(m1a_data->spillage_level), (float)averageTempInner, (float)averageTemp, (float)centerTemp, (float)minTemp, (float)maxTemp, (float)(averageTemp - minTemp),(float)(averageTempInner - minTemp));
sprintf(tempBuffer,(char *)"\r\n## Blackout=%u ######\n##Read Sensor Spot CNT=%4d (areas), \r\n Env_Temp =%02.2f C,\r\n## V_cnt=%2d (lane), H_cnt=%2d (lane), \r\n## Spillage Level =%u %, \r\n## averageTempInner=%02.2f C, averageTemp=%02.2f C, centerTemp=%.2f C, MinTemp=%02.2f C, maxTemp=%02.2f C, \r\n ######## Gap_Average= %02.2fC, Gap_Inner = %02.2fC \r\n",
(uint8_t)blackOutTag, (uint16_t)(m1a_data->waterSpillCount), (float)env_temperature, (int)v_water_cnt, (int)h_water_cnt, (uint8_t)(m1a_data->spillage_level), (float)averageTempInner, (float)averageTemp, (float)centerTemp, (float)minTemp, (float)maxTemp, (float)(averageTemp - minTemp),(float)(averageTempInner - minTemp));
APP_LOG(TS_OFF, VLEVEL_H,(char *)tempBuffer);
if ((m1a_data->spot_cnt !=0 ) && (blackOutTag == 0))
@ -284,24 +284,23 @@ void mlx90640_display_process(void)
uint16_t spillcountTemp =0, spot_cntTemp=0;
do {
//APP_LOG(TS_OFF, VLEVEL_H, "Detection Cycle = %u \r\n", detectCycle);
readTempValues();
setTempScale();
sortFocusAreas();
findFocusArea();
spillcountTemp +=waterSpillCount;
spillcountTemp += waterSpillCount;
spot_cntTemp += spot_cnt;
} while (detectCycle++ < DetectCycleCount);
} while (++detectCycle < DetectCycleCount);
waterSpillCount = spillcountTemp/DetectCycleCount;
waterSpillCount = (uint16_t) (spillcountTemp/DetectCycleCount);
spot_cnt /= DetectCycleCount ; //max(v_water_cnt, h_water_cnt);
if (blackOutTag == 0)
{
APP_LOG(TS_OFF, VLEVEL_H, "Water Spill Detected Level = %u of 600 \r\n", waterSpillCount);
APP_LOG(TS_OFF, VLEVEL_H, "Water Spill Detected Level = %u of 768 \r\n", (uint16_t)waterSpillCount);
}
}