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;