function connectToMQTT() { mqttClient = mqtt.connect(mqttConfig.broker, mqttConfig.options); mqttClient.on('connect', () => { console.log('Conectado al broker MQTT'); mqttClient.subscribe(mqttConfig.topics.receive, (err) => { if (err) { console.error('Error al suscribirse:', err); } }); }); mqttClient.on('message', (topic, message) => { if (topic === mqttConfig.topics.receive) { const data = message.toString().split(','); if (data.length === 7) { const [freqX, freqY, freqZ, lat, lng, panico, calma] = data; const now = new Date(); lastUpdateTime = now.toLocaleTimeString(); console.log(data); // Actualizar última actualización document.getElementById('lastUpdate').textContent = lastUpdateTime; // Convertir a números const freqXNum = parseFloat(freqX); const freqYNum = parseFloat(freqY); const freqZNum = parseFloat(freqZ); const latNum = parseFloat(lat); const lngNum = parseFloat(lng); // Actualizar gráficas updateChart(charts.frecuenciaX, freqXNum); updateChart(charts.frecuenciaY, freqYNum); updateChart(charts.frecuenciaZ, freqZNum); // Actualizar ubicación document.getElementById('latValue').textContent = lat; document.getElementById('lngValue').textContent = lng; // Actualizar mapa if (map && marker) { const latLng = [latNum, lngNum]; marker.setLatLng(latLng); map.setView(latLng, 15); marker.bindPopup(`Ubicación actual: ${lat}, ${lng}
Hora: ${lastUpdateTime}`).openPopup(); } // Verificar condiciones para cambiar estado y guardar datos if (panico === 'PANICO') { updateStatus('PANICO', 'El paciente ha activado el botón de pánico'); guardarDatosSensores('BASTON DE PANICO', lat, lng, freqX, freqY, freqZ); } else if (calma === 'CALMA') { updateStatus('CALMA', 'El paciente ha indicado que está en calma'); guardarDatosSensores('BASTON DE CALMA', lat, lng, freqX, freqY, freqZ); } else if (freqXNum > umbralX && freqYNum > umbralY && freqZNum > umbralZ) { updateStatus('TEMBLOR', `Se detectaron movimientos bruscos (X > ${umbralX}Hz, Y > ${umbralY}Hz, Z > ${umbralZ}Hz)`); guardarDatosSensores('CRISIS POR TEMBLOR', lat, lng, freqX, freqY, freqZ); console.log(umbralX); console.log(umbralY); console.log(umbralZ); } } } }); mqttClient.on('error', (err) => { console.error('Error MQTT:', err); }); }