Um oxímetro é um dispositivo que mede a quantidade de oxigênio transportada pelos glóbulos vermelhos de uma pessoa. O oxigênio fornece energia para nossos corpos, apoia o sistema imunológico, ajuda a substituir células que se degradam e muito mais. Níveis baixos de oxigênio no sangue podem indicar certos problemas de saúde. Esses níveis também podem diminuir à medida que envelhecemos, por isso pode ser útil monitorar o oxigênio no sangue.
O método convencional para fazer isso é por meio de um teste de gasometria aérea (ABG), que é um exame de sangue que mede os níveis de oxigênio, dióxido de carbono e acidez. Os resultados de um ABG normalmente levam algumas horas.
Técnicas mais novas e avançadas para testar a quantidade de saturação de oxigênio no sangue estão atualmente em desenvolvimento. O mais promissor até agora é através da oximetria de pulso, um método não invasivo pelo qual um determinado comprimento de onda de luz é emitido através da pele (normalmente, este é um dispositivo de clipe que se coloca no dedo – apenas certifique-se de que não esteja em uma tatuagem, que absorveria parte da luz).
Um fotodiodo é usado para medir a quantidade de luz que é absorvida pelo sangue. Este método pode detectar rapidamente até mesmo pequenas mudanças na eficiência com que o oxigênio está sendo transportado pelo corpo e tem uma pequena taxa de erro de apenas dois por cento.
Estão disponíveis oxímetros de pequena escala que podem ser interligados com controladores de baixo custo para projetos do tipo faça você mesmo (faça você mesmo). SparkFun Electronics oferece um oxímetro e sensor de monitor de frequência cardíaca, que vem montado em uma pequena placa. Os usuários só precisam pressionar um dedo no módulo do sensor para fazer uma leitura.
A comunicação com um controlador externo é feita facilmente com um protocolo I2C, que é o que usamos neste projeto, junto com o Arduino Nano. O endereço I2C para este sensor é definido como 0x55 hex.

Você notará que o Arduino Nano é tolerante a 3,3 volts e o oxímetro acima é o mesmo, então isso é ideal. Existem dois pinos adicionais no sensor: um é um reset e o outro é uma entrada/saída multifuncional (MFIO). O pino de reinicialização está ativo baixo e, como o próprio nome indica, reinicia o módulo.
O MFIO é um pino importante porque coloca o módulo no modo de aquisição de dados. O módulo é composto por dois CIs. Um deles é o MAX3010, que é um oxímetro e sensor de monitoramento de frequência cardíaca. O segundo é um MAX32664, responsável por converter os dados recebidos do outro sensor.
O hub é composto por um microcontrolador Cortex M4 que recebe dados do algoritmo de conversão de aplicação MAX3010 e envia esses dados para um controlador externo.
Diagrama de circuito

Os pinos da interface I2C são conectados aos pinos A4 e A5 do Arduino Nano. Os pinos digitais 4 e 5 do Arduino são usados para reset e MFIO. A placa do sensor é alimentada pelos pinos de saída de energia de 3,3 V do Arduino.
O código
Primeiro, importe a biblioteca do hub de sensores SparkFun. Isso tornará este projeto muito mais fácil. Você também precisará baixar a biblioteca wire para inicializar a interface I2C.
A seguir, defina as variáveis para os pinos do Arduino. O nome e número de cada pino devem ser passados para a biblioteca do hub para inicialização adequada do HUB IC (MAX32664). Então, uma variável chamada corpo do tipo dados biológicos tem de ser declarado. Esta variável conversa com o sensor IC (MAX3010).
No loop de configuração, inicie o monitor serial do Arduino em 115.200 bps e ative os pinos I2C. O hub deve iniciar e seu status será analisado em busca de possíveis erros (resultado variável).
Inicialize o sensor. O bioHub.configBPM função inicializa o módulo do sensor. Uma variável chamada MODO UM é passado na função, que é discutida abaixo. Após a inicialização adequada do sensor, o ideal é permitir descanso para estabilização, por isso inserimos um atraso de quatro segundos.

No loop principal, os dados são lidos através do módulo sensor. O sensor passa os dados para o HUB, que os prepara (incluindo frequência cardíaca, níveis de oxigênio, etc.) para o controlador externo.
O controlador externo pode colocar a solicitação de leitura em qualquer instância.

Existem dois modos para este módulo em termos de configuração do HUB. Cada modo calcula um tipo de parâmetro(s).
Modo um

Modo dois

Os parâmetros acima podem ser explorados mais detalhadamente visitando o SparkFun's local na rede Internet.
Onde comprar as peças?
- Arduíno: rato
- Oxímetro SparkFun: rato