feat(backend): add dewPoint data
This commit is contained in:
parent
ab9e90cb20
commit
4703d92055
@ -25,12 +25,28 @@ public class BackendApplication {
|
|||||||
@PostMapping("/sensor")
|
@PostMapping("/sensor")
|
||||||
SensorData newEmployee(@RequestBody SensorData sensorData) {
|
SensorData newEmployee(@RequestBody SensorData sensorData) {
|
||||||
if (sensorData.timestamp() == null) {
|
if (sensorData.timestamp() == null) {
|
||||||
sensorData = new SensorData(sensorData.temperature(), sensorData.humidity(), System.currentTimeMillis());
|
double dewPoint = Math.round(calculateDewPoint(sensorData.temperature(), sensorData.humidity()) * 10.0) / 10.0;
|
||||||
|
sensorData = new SensorData(sensorData.temperature(), sensorData.humidity(), dewPoint, System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
this.sensorData = sensorData;
|
this.sensorData = sensorData;
|
||||||
return sensorData;
|
return sensorData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double calculateDewPoint(double temperature, double humidity) {
|
||||||
|
// Constants for the Magnus formula
|
||||||
|
final double a = 17.27;
|
||||||
|
final double b = 237.7;
|
||||||
|
|
||||||
|
// Convert relative humidity to a decimal
|
||||||
|
double rh = humidity / 100.0;
|
||||||
|
|
||||||
|
// Calculate alpha
|
||||||
|
double alpha = (a * temperature) / (b + temperature) + Math.log(rh);
|
||||||
|
|
||||||
|
// Calculate dew point
|
||||||
|
return (b * alpha) / (a - alpha);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/sensor")
|
@GetMapping("/sensor")
|
||||||
SensorData getSensorData() {
|
SensorData getSensorData() {
|
||||||
return sensorData;
|
return sensorData;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package org.mercury.backend;
|
package org.mercury.backend;
|
||||||
|
|
||||||
public record SensorData(double temperature, double humidity, Long timestamp) {
|
public record SensorData(double temperature, double humidity, double dewPoint, Long timestamp) {
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user