Índice:
- Etapa 1: O circuito
- Etapa 2: O Código de Processamento de Sinal e Comunicações do Servidor
- Etapa 3: o servidor e as comunicações de dados
- Etapa 4: o aplicativo Android
- Etapa 5: Conclusão
Vídeo: Monitor de frequência cardíaca IOT (ESP8266 e aplicativo Android): 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Como parte do meu projeto de último ano, eu queria projetar um dispositivo que monitorasse sua frequência cardíaca, armazenasse seus dados em um servidor e o notificasse por meio de notificação quando sua frequência cardíaca estivesse anormal. A ideia por trás deste projeto surgiu quando tentei construir um aplicativo adequado que notifica um usuário quando ele está tendo um problema cardíaco, mas não consigo descobrir uma maneira de usar informações em tempo real. O projeto tem quatro partes principais. incluindo o circuito físico para medir os batimentos cardíacos, um módulo ESP8266 Wi-Fi com código de processamento de sinal, o servidor para armazenar o código e um aplicativo Android para exibir a frequência cardíaca.
Um vídeo detalhando o circuito físico pode ser visto acima. Todo o código do projeto pode ser encontrado no meu Github.
Etapa 1: O circuito
Existem dois métodos principais para medir os batimentos cardíacos, mas para este projeto decidi usar fotopletismografia (PPG), que usa uma fonte de luz infravermelha ou vermelha que é refratada através das primeiras camadas da pele. Um fotossensor é usado para medir a mudança na intensidade da luz (quando o sangue está fluindo através de um vaso). Os sinais PPG são incrivelmente barulhentos, então usei um filtro passa-banda para filtrar as frequências específicas necessárias. Um coração humano bate entre 1 e 1,6 Hz de frequência. O op-amp que usei foi o lm324, que tinha o melhor desvio de tensão de todos os op-amps disponíveis para mim. Se você estiver recriando este projeto, um amplificador operacional de precisão seria uma escolha muito melhor.
Um ganho de apenas dois foi usado porque a tolerância máxima de voltagem no ESP8266 é 3,3v e eu não queria danificar minha placa!
Siga o circuito acima e tente fazê-lo funcionar em uma placa de pão. Se você não tiver um osciloscópio em casa, pode conectar a saída em um Arduino e representá-la, mas certifique-se de que a tensão não seja superior à tolerância do arduino ou do microcontrolador.
O circuito foi testado em uma placa de pão e uma mudança na saída foi observada quando um dedo foi colocado sobre o LED e o fototransistor. Decidi então soldar a placa, o que não foi mostrado no vídeo.
Etapa 2: O Código de Processamento de Sinal e Comunicações do Servidor
Decidi usar o IDE do Arduino no ESP8266 porque é muito fácil de usar. Quando o sinal foi plotado, ele ainda era muito barulhento, então decidi limpá-lo com um filtro de média móvel FIR com um número de amostra de dez. Modifiquei um programa Arduino de exemplo chamado "smoothing" para fazer isso. Fiz algumas experiências para encontrar uma maneira de medir a frequência do sinal. Os pulsos eram de comprimento e amplitude variáveis devido ao coração ter quatro tipos diferentes de pulsos e as características dos sinais PPG. Eu escolhi um valor médio conhecido que o sinal sempre cruzou como um ponto de referência para cada pulso. Usei um buffer de anel para determinar quando a inclinação do sinal era positiva ou negativa. A combinação dos dois me permitiu calcular o período entre os pulsos quando o sinal era positivo e igual a um valor específico.
O software produziu um BPM bastante impreciso que não pôde ser usado. Com iterações adicionais, um programa melhor poderia ser projetado, mas devido às limitações de tempo, essa não era uma opção. O código pode ser encontrado no link abaixo.
Software ESP8266
Etapa 3: o servidor e as comunicações de dados
Decidi usar o Firebase para armazenar os dados, pois é um serviço gratuito e muito fácil de usar com aplicativos móveis. Não existe uma API oficial para Firebase com o ESP8266, mas descobri que a biblioteca do Arduino funcionou muito bem.
Existe um programa de exemplo que pode ser encontrado na biblioteca ESP8266WiFi.h que permite que você se conecte a um roteador com o SSID e a senha. Isso foi usado para conectar a placa à internet para que os dados pudessem ser enviados.
Embora o armazenamento de dados tenha sido feito facilmente, ainda há uma série de problemas com o envio de notificações push por meio de uma solicitação HTTP POST. Encontrei um comentário no Github que usava um método legado de fazer isso por meio de mensagens em nuvem do Google e a biblioteca HTTP para ESP8266. Este método pode ser visto no código em meu Github.
No Firebase, criei um projeto e usei a API e as chaves de registro do software. O Firebase Cloud Messaging foi usado com o aplicativo para enviar notificações push ao usuário. Quando as comunicações foram testadas, os dados puderam ser vistos no banco de dados enquanto o ESP8266 estava em execução.
Etapa 4: o aplicativo Android
Um aplicativo Android muito básico foi projetado com duas atividades. A primeira atividade conectou o usuário ou o registrou usando a API Firebase. Pesquisei a ficha técnica e encontrei vários tutoriais sobre como usar o Firebase com um aplicativo móvel. A atividade principal que exibia ao usuário de dados do usuário um ouvinte de eventos em tempo real para que não houvesse atraso perceptível nas mudanças no BPM do usuário. As notificações push foram feitas usando o Firebase Cloud Messaging mencionado anteriormente. Há muitas informações úteis na folha de dados do Firebase sobre como implementar isso e o aplicativo pode ser testado enviando notificações do painel no site do Firebase.
Todo o código para as atividades e os métodos para mensagens em nuvem podem ser encontrados em meu Repositório Github.
Etapa 5: Conclusão
Houve alguns problemas importantes com a medição do BPM do usuário. Os valores variavam muito e não podiam ser usados para determinar a saúde de um usuário. Isso se resumiu ao código de processamento de sinal que foi implementado no ESP8266. Após pesquisas adicionais, descobri que um coração tem quatro pulsos diferentes com períodos variados, então não era de se admirar que o software fosse impreciso. Uma forma de combater isso seria pegar uma média dos quatro pulsos em uma matriz e calcular o período do coração nesses quatro pulsos.
O resto do sistema estava funcional, mas este é um dispositivo muito experimental que eu queria construir para ver se o objeto era possível. O código legado usado para enviar notificações push em breve ficará inutilizável, portanto, se você estiver lendo isso no final de 2018 ou no final, um método diferente será necessário. No entanto, esse problema só ocorre com o ESP, portanto, se você quisesse implementar isso em um Arduino compatível com WiFi, não haveria problema.
Se você tiver dúvidas ou problemas, sinta-se à vontade para me enviar uma mensagem no Instructables.
Recomendado:
Sensor de batimentos cardíacos usando Arduino (monitor de frequência cardíaca): 3 etapas
Sensor de batimentos cardíacos usando Arduino (monitor de frequência cardíaca): o sensor de batimentos cardíacos é um dispositivo eletrônico usado para medir a frequência cardíaca, ou seja, a velocidade dos batimentos cardíacos. Monitorar a temperatura corporal, a frequência cardíaca e a pressão arterial são as coisas básicas que fazemos para nos manter saudáveis. A frequência cardíaca pode ser mon
Monitor de frequência cardíaca faça você mesmo (registrador): 4 etapas
Monitor de frequência cardíaca DIY (logger): neste projeto, vou mostrar como um smartwatch comercial mede e monitora sua frequência cardíaca e, depois, mostrarei como criar um circuito DIY que pode basicamente fazer o mesmo com a adição de que também pode armazene os dados de freqüência cardíaca
Dispositivo de respiração leve para ansiedade com monitor de frequência cardíaca: 18 etapas (com fotos)
Dispositivo Respire Leve para Ansiedade com Monitor de Frequência Cardíaca: Com o mundo cada vez mais ocupado, todos estão em um ambiente cada vez mais estressante. Os estudantes universitários correm um risco ainda maior de estresse e ansiedade. Os exames são períodos especialmente de alto estresse para os alunos e smartwatches com exercícios respiratórios
A medição da frequência cardíaca está na ponta do dedo: Fotopletismografia Abordagem para determinar a frequência cardíaca: 7 etapas
A medição da frequência cardíaca está na ponta do dedo: Fotopletismografia Abordagem para determinar a frequência cardíaca: A fotopletismografia (PPG) é uma técnica ótica simples e de baixo custo frequentemente usada para detectar alterações no volume sanguíneo em um leito microvascular de tecido. É usado principalmente de forma não invasiva para fazer medições na superfície da pele, normalmente
Monitor de frequência cardíaca Arduino: 5 etapas
Monitor de frequência cardíaca Arduino: Olá a todos, eu construí este monitor de frequência cardíaca controlado por Arduino portátil