Pulse Oximeter datafångst med Raspberry Pi (6 / 8 steg)
Steg 6: webbsida för att visa data
Jag vill visa den senaste rapporterade syrehalten och puls på en webbsida. Första lade jag några PHP-kod i en enkel webbsida att hämta data. I nästa steg kommer jag förbättra presentationen:
$dbh = ny sub ("sqlite: / var/www/pulseox.db ');
$query = $dbh -> förbereda ("Välj stampdate, stamptime, spo2, bpm från pulseox order by id desc limit 1");
$query -> execute();
$result = $query -> fetch();
ECHO "$result [0] $result [1] $result $result [2] [3]";
Hittills har få vi bara följande resultat:
01/03/15 07:33:18 SPO2 = 094% BPM = 090
Jag vill också Visa på webbsidan genomsnittliga syrehalten och hjärtfrekvens över den sista timmen. Följande kod är hur jag får dessa 2 värden:
$query = $dbh -> förbereda ("Välj round(avg(substr(bpm,5,3)),1), round(avg(substr(spo2,6,3)),1) från pulseox där bpm! = ' BPM =---" och spo2! = ' SPO2 =---%' och id > ((Välj max(id) från pulseox) - 3600) ");
$query -> execute();
$result = $query -> fetch();
$avg_bpm = $result [0];
$avg_spo2 = $result [1].
Några anteckningar om ovanstående kod:
- Funktionerna "substr" används för att tömma data i tabellen ("SPO2 = 094%") ner till användbara siffror ("94")
- "max(id)... minus 3600" hitta den senaste posten och backar upp 1 timme / 3600 rader, eftersom det är oftast 1 läsa per sekund.
- "Round" funktionen gör att vi räknar med 1 decimal till höger, dvs 94,5
- Filtren "där bpm/spo2! =" gör sig av med rader där pulseox maskinen insamling av data men hade inga data. Detta kan inträffa när sensorn är inte på rätt sätt eller behöver bytas från slitage.