iot sensor finished
1)with validation on front and backend 2)fixed seed route generating value 0 for data
This commit is contained in:
@ -1,49 +1,66 @@
|
||||
const { app } = require("./modules/express.js");
|
||||
const client = require("./modules/mqtt");
|
||||
const { validateData } = require("./functions/validateData.js");
|
||||
const { insertData } = require("./functions/database.js");
|
||||
/*
|
||||
1) on data received, validate data
|
||||
2) websocket to another server
|
||||
|
||||
*/
|
||||
const client = require("./modules/mqtt");
|
||||
const { isJson, isNumber } = require("./functions/validateData.js");
|
||||
const { insertDatatoDB } = require("./functions/database.js");
|
||||
|
||||
// Event handlers
|
||||
client.on('connect', () => {
|
||||
console.log('Connected to MQTT broker');
|
||||
client.subscribe('iot-data');
|
||||
});
|
||||
|
||||
client.on('message', (topic, message) => {
|
||||
//console.log(`Received message on topic ${topic}: ${message}`);
|
||||
let data = JSON.parse(message);
|
||||
if (validateData(data)) {
|
||||
//upload to db logic here
|
||||
insertData(data);
|
||||
|
||||
//websocket logic here??
|
||||
|
||||
}
|
||||
else {
|
||||
console.log("Data is invalid");
|
||||
throw new Error("Data is invalid");
|
||||
}
|
||||
});
|
||||
|
||||
client.on('error', (err) => {
|
||||
console.error('Error:', err);
|
||||
client.end();
|
||||
});
|
||||
|
||||
client.on('end', () => {
|
||||
console.log('Disconnected from MQTT broker');
|
||||
client.reconnect = true;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
client.on("connect", () => {
|
||||
console.log("Connected to MQTT broker");
|
||||
client.subscribe("iot-data");
|
||||
});
|
||||
|
||||
client.on("message", (topic, message) => {
|
||||
try {
|
||||
let datas = JSON.parse(message);
|
||||
if (isJson(datas)) {
|
||||
for (let key in datas) {
|
||||
let data = parseInt(
|
||||
datas[key].locationid +
|
||||
" " +
|
||||
datas[key].sensorid +
|
||||
" " +
|
||||
datas[key].measurement.psi +
|
||||
" " +
|
||||
datas[key].measurement.humidity +
|
||||
" " +
|
||||
datas[key].measurement.o3 +
|
||||
" " +
|
||||
datas[key].measurement.no2 +
|
||||
" " +
|
||||
datas[key].measurement.so2 +
|
||||
" " +
|
||||
datas[key].measurement.co +
|
||||
" " +
|
||||
datas[key].measurement.temperature +
|
||||
" " +
|
||||
datas[key].measurement.windspeed
|
||||
);
|
||||
if (isNumber(data)) {
|
||||
{
|
||||
//pass datas to database
|
||||
insertDatatoDB(datas[key]);
|
||||
|
||||
}
|
||||
} else {
|
||||
console.log("Invalid data");
|
||||
client.end();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log("Invalid data");
|
||||
client.end();
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
|
||||
client.on("error", (err) => {
|
||||
console.error("Error:", err);
|
||||
client.end();
|
||||
});
|
||||
|
||||
client.on("end", () => {
|
||||
console.log("Disconnected from MQTT broker");
|
||||
client.reconnect = true;
|
||||
});
|
||||
|
Reference in New Issue
Block a user