60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
/*
|
|
1) PSI metric data
|
|
2) Humidity
|
|
3) Gases (O3,NO2,SO2)
|
|
4) temperature
|
|
5) Air pressure?
|
|
6) windspeed?
|
|
8) time when data was collected / generated
|
|
*/
|
|
|
|
/*
|
|
1) generate random data for each sensor
|
|
3) send the coap request to the server
|
|
*/
|
|
|
|
const { isNumber } = require("../../Web-Server/functions/validateData");
|
|
|
|
let region = ["central", "north-east", "north", "east", "west"];
|
|
|
|
function generateRandomData() {
|
|
const psiData = getRandomValue(0, 500);
|
|
const humidityData = getRandomValue(0, 100);
|
|
const o3Data = getRandomValue(0, 600); //max 600
|
|
const no2Data = getRandomValue(0, 1000); //max 1000
|
|
const so2Data = getRandomValue(0, 1000); //max 1000
|
|
const coData = getRandomValue(0 , 100);
|
|
const temperatureData = getRandomValue(24, 40);
|
|
const windspeedData = getRandomValue(0, 35);
|
|
const currentTime = new Date(Date.now() + 28800000)
|
|
.toISOString()
|
|
.slice(0, 19)
|
|
.replace("T", " ");
|
|
const regionData = region[Math.floor(Math.random() * region.length)];
|
|
|
|
var json = {
|
|
psi: psiData.toFixed(0),
|
|
humidity: humidityData.toFixed(0) + "%",
|
|
o3: o3Data.toFixed(0) + "ppm",
|
|
no2: no2Data.toFixed(0) + "ppm",
|
|
so2: so2Data.toFixed(0) + "ppm",
|
|
co: coData.toFixed(0) + "ppm",
|
|
temperature: temperatureData.toFixed(0) + "°C",
|
|
windspeed: windspeedData.toFixed(0) + "km/h",
|
|
time: currentTime,
|
|
region: regionData,
|
|
};
|
|
return json;
|
|
}
|
|
|
|
function getRandomValue(min, max) {
|
|
return Math.random() * (max - min) + min;
|
|
}
|
|
|
|
function iot_sensor_data() {
|
|
return generateRandomData();
|
|
}
|
|
|
|
module.exports = { iot_sensor_data };
|
|
|