add timer to upload weight scale
This commit is contained in:
parent
8ebcc9e014
commit
c4e24d31ec
|
@ -25,7 +25,28 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "sys_app.h"
|
#include "sys_app.h"
|
||||||
|
|
||||||
int sts_weight_scale(void);
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t weight_scale_value;
|
||||||
|
float pressure; /*!< in mbar */
|
||||||
|
float temperature; /*!< in degC */
|
||||||
|
float humidity; /*!< in % */
|
||||||
|
int32_t latitude; /*!< latitude converted to binary */
|
||||||
|
int32_t longitude; /*!< longitude converted to binary */
|
||||||
|
int16_t altitudeGps; /*!< in m */
|
||||||
|
int16_t altitudeBar; /*!< in m * 10 */
|
||||||
|
/**more may be added*/
|
||||||
|
/* USER CODE BEGIN sensor_t */
|
||||||
|
|
||||||
|
/* USER CODE END sensor_t */
|
||||||
|
} sts_sensor_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void sts_weight_scale_init(void);
|
||||||
|
void sts_weight_scale(sts_sensor_t *sensor_data);
|
||||||
void HX711_Init(void);
|
void HX711_Init(void);
|
||||||
void Init_HX711pin(void);
|
void Init_HX711pin(void);
|
||||||
uint32_t HX711_Read(void);
|
uint32_t HX711_Read(void);
|
||||||
|
@ -39,5 +60,4 @@ void delay_us(uint32_t nus);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* YUNHORN_STS_WEIGHT_SCALE_H_ */
|
#endif /* YUNHORN_STS_WEIGHT_SCALE_H_ */
|
||||||
|
|
|
@ -91,7 +91,7 @@ int main(void)
|
||||||
|
|
||||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n ----- Start ----- \r\n");
|
APP_LOG(TS_OFF, VLEVEL_M, "\r\n ----- Start ----- \r\n");
|
||||||
|
|
||||||
sts_weight_scale();
|
//sts_weight_scale();
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
|
|
|
@ -25,20 +25,23 @@ volatile uint32_t gross_weight;
|
||||||
int32_t net_weight;
|
int32_t net_weight;
|
||||||
uint8_t Flag_Error;
|
uint8_t Flag_Error;
|
||||||
volatile uint32_t last_net_weight=0;
|
volatile uint32_t last_net_weight=0;
|
||||||
int sts_weight_scale(void)
|
volatile sts_sensor_t sts_sensor_data;
|
||||||
|
void sts_weight_scale_init(void)
|
||||||
{
|
{
|
||||||
HX711_Init();
|
HX711_Init();
|
||||||
Get_GrossWeight();
|
Get_GrossWeight();
|
||||||
|
|
||||||
HAL_Delay(500);
|
HAL_Delay(500);
|
||||||
|
|
||||||
Get_GrossWeight();
|
Get_GrossWeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sts_weight_scale(sts_sensor_t *sts_sensor_data)
|
||||||
|
{
|
||||||
|
|
||||||
while(1)
|
//while(1)
|
||||||
{
|
{
|
||||||
Get_NetWeight();
|
Get_NetWeight();
|
||||||
APP_LOG(TS_OFF, VLEVEL_M, "Net Weight = %d g \r\n", net_weight);
|
APP_LOG(TS_OFF, VLEVEL_M, "Net Weight = %d g \r\n", net_weight);
|
||||||
|
sts_sensor_data->weight_scale_value=net_weight;
|
||||||
|
|
||||||
last_net_weight = net_weight;
|
last_net_weight = net_weight;
|
||||||
if (((last_net_weight - net_weight) > 100) && (net_weight > 100)) // re-calibrate
|
if (((last_net_weight - net_weight) > 100) && (net_weight > 100)) // re-calibrate
|
||||||
|
@ -46,9 +49,9 @@ int sts_weight_scale(void)
|
||||||
Get_GrossWeight();
|
Get_GrossWeight();
|
||||||
HAL_Delay(100);
|
HAL_Delay(100);
|
||||||
Get_GrossWeight();
|
Get_GrossWeight();
|
||||||
HAL_Delay(2000);
|
//HAL_Delay(2000);
|
||||||
}
|
}
|
||||||
HAL_Delay(2000);
|
//HAL_Delay(2000);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,9 @@
|
||||||
#include "utilities_def.h"
|
#include "utilities_def.h"
|
||||||
#include "sys_debug.h"
|
#include "sys_debug.h"
|
||||||
#include "sys_sensors.h"
|
#include "sys_sensors.h"
|
||||||
|
#ifdef STS_WS
|
||||||
|
#include "sts_weight_scale.h"
|
||||||
|
#endif
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
@ -117,7 +119,9 @@ void SystemApp_Init(void)
|
||||||
|
|
||||||
/*Initialize the Sensors */
|
/*Initialize the Sensors */
|
||||||
EnvSensors_Init();
|
EnvSensors_Init();
|
||||||
|
#ifdef STS_WS
|
||||||
|
sts_weight_scale_init();
|
||||||
|
#endif
|
||||||
/*Init low power manager*/
|
/*Init low power manager*/
|
||||||
UTIL_LPM_Init();
|
UTIL_LPM_Init();
|
||||||
/* Disable Stand-by mode */
|
/* Disable Stand-by mode */
|
||||||
|
|
|
@ -36,7 +36,9 @@
|
||||||
#include "flash_if.h"
|
#include "flash_if.h"
|
||||||
|
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
|
#ifdef STS_WS
|
||||||
|
#include "sts_weight_scale.h"
|
||||||
|
#endif
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* External variables ---------------------------------------------------------*/
|
/* External variables ---------------------------------------------------------*/
|
||||||
|
@ -555,6 +557,9 @@ static void SendTxData(void)
|
||||||
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
|
||||||
uint8_t batteryLevel = GetBatteryLevel();
|
uint8_t batteryLevel = GetBatteryLevel();
|
||||||
sensor_t sensor_data;
|
sensor_t sensor_data;
|
||||||
|
#ifdef STS_WS
|
||||||
|
sts_sensor_t sts_sensor_data;
|
||||||
|
#endif
|
||||||
UTIL_TIMER_Time_t nextTxIn = 0;
|
UTIL_TIMER_Time_t nextTxIn = 0;
|
||||||
|
|
||||||
if (LmHandlerIsBusy() == false)
|
if (LmHandlerIsBusy() == false)
|
||||||
|
@ -572,7 +577,11 @@ static void SendTxData(void)
|
||||||
#endif /* CAYENNE_LPP */
|
#endif /* CAYENNE_LPP */
|
||||||
|
|
||||||
EnvSensors_Read(&sensor_data);
|
EnvSensors_Read(&sensor_data);
|
||||||
|
#ifdef STS_WS
|
||||||
|
sts_weight_scale(&sts_sensor_data);
|
||||||
|
APP_LOG(TS_ON, VLEVEL_M, "Weigt Scale : %d\r\n", sts_sensor_data.weight_scale_value);
|
||||||
|
|
||||||
|
#endif
|
||||||
APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel);
|
APP_LOG(TS_ON, VLEVEL_M, "VDDA: %d\r\n", batteryLevel);
|
||||||
APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature));
|
APP_LOG(TS_ON, VLEVEL_M, "temp: %d\r\n", (int16_t)(sensor_data.temperature));
|
||||||
|
|
||||||
|
@ -628,6 +637,10 @@ static void SendTxData(void)
|
||||||
AppData.Buffer[i++] = (uint8_t)((altitudeGps >> 8) & 0xFF);
|
AppData.Buffer[i++] = (uint8_t)((altitudeGps >> 8) & 0xFF);
|
||||||
AppData.Buffer[i++] = (uint8_t)(altitudeGps & 0xFF);
|
AppData.Buffer[i++] = (uint8_t)(altitudeGps & 0xFF);
|
||||||
}
|
}
|
||||||
|
#ifdef STS_WS
|
||||||
|
AppData.Buffer[i++] = (uint8_t)(sts_sensor_data.weight_scale_value >> 8& 0xFF);
|
||||||
|
AppData.Buffer[i++] = (uint8_t)(sts_sensor_data.weight_scale_value & 0xFF);
|
||||||
|
#endif
|
||||||
|
|
||||||
AppData.BufferSize = i;
|
AppData.BufferSize = i;
|
||||||
#endif /* CAYENNE_LPP */
|
#endif /* CAYENNE_LPP */
|
||||||
|
|
Loading…
Reference in New Issue