Pulse Oximeter datafångst med Raspberry Pi (3 / 8 steg)
Steg 3: Raw-data
Först måste jag se formatet för raw-data kommer ut ur maskinen. Jag ansluten usb -> seriell kabel från RPi på baksidan av pulseox maskinen, sätta sensorn på mitt finger och vände på den.
Jag behövde veta namnet på usb -> seriell adapter enhet på RPi så jag kunde titta på den för inkommande data. Jag hittade den här med det följande befallningen:
PI ~ $ lsusb
Enhet för buss 001 002: ID 0424:9514 Standard Microsystems Corp
Bus 001 enhet 001: ID 1d6b:0002 Linux Foundation 2.0 rotnavet
Bus 001 enhet 003: ID 0424:ec00 Standard Microsystems Corp
Bus 001 enhet 004: ID 148f:5370 Ralink teknik, Corp RT5370 Wireless Adapter
Bus 001 enhet 005: ID 0403:6001 framtidens teknik enheter International, Ltd FT232 USB-seriell (UART) IC
Nu vet jag vilken typ av chip i det och som gjorde det sista raden var uppenbarligen min enhet. Det var en anordning som anges i katalogen/dev kallas ttyUSB0, så detta var nog rätta. För att bekräfta, kollade jag utdata från dmesg bara när du har anslutit kabeln:
PI ~ $ dmesg | grep FTD
[3.711017] usb 1-1.5: tillverkare: FTDI
[3.718342] usb 1-1.5: serienummer: FTDDCQ7W
[9.429993] usbserial: USB-seriell stöd registrerade för FTDI USB-serieenhet
[9.929322] ftdi_sio 1-1.5:1.0: FTDI USB-serieenhet omvandlare upptäckt
[10.722481] usb 1-1.5: FTDI USB-serieenhet omvandlare nu bifogas ttyUSB0
Varje terminal enhet har specifika inställningar det förväntar sig, ansluta såsom hastighet, bitar per tecken, etc. Jag hittade en operatörs Manual för detta pulseox via en Google-sökning som gav mig den information jag behövde ställa in med kommandot stty:
- Överföringshastighet: 9600
- Bitar per tecken: 8
- Paritet: ingen
- Bitar: 1 start, 1 stopp
- Handskakning: ingen
Även om jag inte hittar dessa inställningar från en webbsökning, är de ganska vanligt (8-N-1) inställningarna för en enhet som denna, så att vissa inställningar kan lämnade standard eller gissade i stället för en spec, utan inverkan av enkla koden för detta projekt. Kommandot behövs till setup enligt ovan:
stty -F/dev/ttyUSB0 9600 cs8 - parenb - cstopb - crtscts
Den sista sak att göra är kommandot cat för att kontrollera för utdata:
katt/dev/ttyUSB0
12/30/14 22:40:35 SN = 0000057681 SPO2 = 096% BPM = 106 PI=01.68% SPCO=--.-% SPMET=--.-% DESAT =--PIDELTA = +--LARM = 0000 EXC = 000800
Stor, så data ser ganska enkelt att tolka, foder i en databas och presentera på en webbsida. Förutom datum/tid är endast lappar som jag vill just nu procent syremättnad (spo2) och hjärtfrekvens (puls). Om någon vet syftet med de andra fälten, jag har några akademiska nyfikenhet men behöver inte dem för detta projekt.