Stap 6: Web pagina om de gegevens weer te geven
Ik wil de laatste gerapporteerde zuurstofgehalte en hartslag weergeven op een webpagina. Eerst ik sommige PHP-code in een eenvoudige web-pagina om de gegevens te halen. In de volgende stap zal ik de presentatie verbeteren:
$dbh = new PDO('sqlite:/var/www/pulseox.db'); $query=$dbh->prepare("SELECT stampdate, stamptime, spo2, bpm from pulseox order by id desc limit 1"); $query->execute(); $result=$query->fetch(); echo "$result[0] $result[1] $result[2] $result[3]";
Tot nu toe, krijgen we alleen het volgende resultaat:
01/03/15 07:33:18 SPO2=094% BPM=090
Ik wil ook laten zien op de webpagina het gemiddelde zuurstofgehalte en hartslag gedurende het laatste uur. De volgende code is hoe ik deze 2 waarden:
$query=$dbh->prepare("SELECT round(avg(substr(bpm,5,3)),1), round(avg(substr(spo2,6,3)),1) from pulseox where bpm != 'BPM=---' and spo2 != 'SPO2=---%' and id > ((select max(id) from pulseox) - 3600)"); $query->execute(); $result=$query->fetch(); $avg_bpm = $result[0]; $avg_spo2 = $result[1];
Een paar opmerkingen over de bovenstaande code:
- De "substr"-functies worden gebruikt om het strippen van de gegevens in de tabel ("SPO2 = 094%") tot bruikbare nummers ("94")
- De "max(id)... min 3600" vinden de laatste ingang en back-up 1 uur / 3600 rijen, als daar is meestal 1 lezen per seconde.
- De "ronde" functie zorgt ervoor dat we berekenen tot op 1 decimaal naar rechts, d.w.z. 94,5
- De filters "waar bpm/spo2! =" krijgt ontdoen van rijen waar de pulseox machine was het verzamelen van gegevens, maar had geen gegevens. Dit kan gebeuren wanneer de sensor niet op correct of moet worden vervangen van slijtage.