pain.exe
This commit is contained in:
parent
db6b2a2a6e
commit
58a45463d4
38 changed files with 512 additions and 173 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,87 @@
|
|||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ThingSpeakURLGenerator {
|
||||
|
||||
// Constants for Room channel numbers
|
||||
private static final int ROOM_39_NUMBER = 1521262;
|
||||
private static final int ROOM_38_NUMBER = 1364580;
|
||||
private static final int ROOM_37_NUMBER = 1521263;
|
||||
|
||||
// Example Dates for fetching data, dynamically generated
|
||||
private static final LocalDateTime START_DATE = LocalDateTime.of(2024, 11, 1, 0, 0);
|
||||
private static final LocalDateTime END_DATE = LocalDateTime.of(2024, 11, 1, 23, 59);
|
||||
|
||||
// Room URLs
|
||||
private static final Map<Integer, String> ROOM_URLS = new HashMap<>();
|
||||
static {
|
||||
ROOM_URLS.put(39, createUrl(ROOM_39_NUMBER));
|
||||
ROOM_URLS.put(38, createUrl(ROOM_38_NUMBER));
|
||||
ROOM_URLS.put(37, createUrl(ROOM_37_NUMBER));
|
||||
}
|
||||
|
||||
// Method to create the ThingSpeak API URL dynamically
|
||||
public static String createUrl(int channelNumber) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
String startDate = encodeUrlParam(START_DATE.format(formatter));
|
||||
String endDate = encodeUrlParam(END_DATE.format(formatter));
|
||||
|
||||
return String.format("https://api.thingspeak.com/channels/%d/feeds.csv?start=%s&end=%s",
|
||||
channelNumber, startDate, endDate);
|
||||
}
|
||||
|
||||
// Helper method to URL encode the date strings
|
||||
private static String encodeUrlParam(String value) {
|
||||
try {
|
||||
return URLEncoder.encode(value, "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
System.err.println("Error encoding URL parameter: " + e.getMessage());
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
// Method to calculate the average of a specific number of data points (e.g.,
|
||||
// CO2 levels)
|
||||
public static double calculateAverage(List<Co2Data> dataList) {
|
||||
if (dataList == null || dataList.isEmpty()) {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
double sum = 0.0;
|
||||
for (Co2Data data : dataList) {
|
||||
sum += data.getCo2Level(); // Assuming Co2Data has a method getCo2Level() that returns the CO2 level
|
||||
}
|
||||
return sum / dataList.size();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
// Print out the generated URLs for each room
|
||||
for (Map.Entry<Integer, String> entry : ROOM_URLS.entrySet()) {
|
||||
System.out.println("Room " + entry.getKey() + " URL: " + entry.getValue());
|
||||
}
|
||||
|
||||
// Example: Calculate and print the average CO2 level for each room (assuming
|
||||
// Co2Data.getData() method exists)
|
||||
List<Co2Data> room39Data = Co2Data.getData(ROOM_URLS.get(39));
|
||||
List<Co2Data> room38Data = Co2Data.getData(ROOM_URLS.get(38));
|
||||
List<Co2Data> room37Data = Co2Data.getData(ROOM_URLS.get(37));
|
||||
|
||||
double avgRoom39 = calculateAverage(room39Data);
|
||||
double avgRoom38 = calculateAverage(room38Data);
|
||||
double avgRoom37 = calculateAverage(room37Data);
|
||||
|
||||
System.out.println("Average CO2 Level in Room 39: " + avgRoom39);
|
||||
System.out.println("Average CO2 Level in Room 38: " + avgRoom38);
|
||||
System.out.println("Average CO2 Level in Room 37: " + avgRoom37);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue