Algunas pistas para la práctica MVP para depuradora (curso 2019-2020)
Salta a la navegació
Salta a la cerca
Contingut
Código para recoger datos en formato JSON
En el código IoT-02_altitude_00 se han añadido estos temas en IoT-02_mqttTopics.h:
#define TOPIC_REQUEST_JSON "/jsonReq" #define TOPIC_JSON "/json"
El código IoT-02_altitude_00 responde al la solicitud /[MAC]/jsonReq con el tema /[MAC]/json conteniendo una cadena JSON con este aspecto:
{"T":26.690000534057617,"RH":43.029998779296875,"P":1003.4299926757812,"A":82.069999694824219,"L":2367}
Siendo T la temperatura, RH la humedad relativa, P la presión atmosférica, A la altitud realtiva considerando la presión a nivel del mar a 1013.25 hPa y L el valor de la LDR (entre 0 y 4095).
IoT-02_altitude_00.zipIoT-02_altitude_00 en GitHub
Tratamiento del JSON recibido de la placa IoT-02 en NodeRED
Recepción de un JSON en formato texto
Conversión de un texto JSON a un objeto JSON
Graficación en NodeRED de la altura relativa
Función Init:
flow.set("FIRST_TIME",1);
flow.set("DIFF",0.0);
return msg;
Función [fT,fRH,fP,fA,nL]:
var fT = {payload: msg.payload.T};
var fRH = {payload: msg.payload.RH};
var fP = {payload: msg.payload.P};
var fA = {payload: msg.payload.A};
var nL = {payload: msg.payload.L};
return [fT,fRH,fP,fA,nL]
Función Manage Diff:
var bFirstTime = flow.get("FIRST_TIME");
if(bFirstTime){
flow.set("FIRST_TIME",0);
flow.set("DIFF",parseFloat(msg.payload));
}
var fDiff = parseFloat(flow.get("DIFF"));
var fAltitud = parseFloat(parseInt(10.0*(parseFloat(msg.payload) - fDiff))/10);
msg.payload = fAltitud;
if(fAltitud > -3.0 && fAltitud < 3.0)
return msg;



