Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Health Band - Um Assistente Inteligente para Idosos

Componentes e suprimentos

Infineon DPS310
× 1
Arduino Nano R3
× 1
Espressif ESP8266 ESP-01
× 1
Fios de jumpers (genérico)
× 1
Bateria LiPo 3,7 V
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE
Blynk

Sobre este projeto


O seu ente querido é velho e mora sozinho? Não precisa se preocupar. Usando o sensor de pressão DPS310 da Infineon, desenvolvemos um assistente virtual que se ajusta perfeitamente ao seu braço na forma de uma pulseira, que cuida desse trabalho demorado, deixando seus entes queridos em boas mãos!

"Os idosos representam atualmente cerca de 14,5 por cento da população dos EUA , e em 2030 haverá cerca de 74 milhões de indivíduos mais velhos. À medida que os custos de saúde aumentam e as instituições de saúde sofrem pressões para fornecer cuidados adequados, novas soluções para gerenciar a saúde dos idosos são imperativas. "

Depois de uma busca rápida e vendo os números chocantes, esta é a nossa tentativa de ajudar os idosos!

A HISTÓRIA

Já se passaram alguns anos desde que minha avó começou a sofrer os primeiros sinais do mal de Alzheimer e, infelizmente, sua condição parece estar piorando. Isso resultou em uma série de problemas inesperados, como

1) vagando para o trabalho (mesmo que ela tenha sido aconselhada a não)

2) pular refeições ou às vezes fazer refeições duplas

3) não fazer os exercícios

Tudo isso devido à falta de memória e também ao desconhecimento de seu estado.

Isso fez com que minha mãe precisasse ficar com ela quase o dia todo, sete dias por semana. Essa tarefa se mostrou muito cansativa e demorada. Foi então que surgiu a ideia de fazer um assistente virtual que pudesse acompanhar o comportamento e as atividades da minha avó e, se necessário, alertar um familiar em caso de emergência. Dando um tempo para minha mãe e ao mesmo tempo mantendo o paciente em boas mãos!

COMPONENTES DO SISTEMA / CONCEITO

Embora este sistema se concentre principalmente nos problemas enfrentados por um paciente de Alzheimer, inculcamos muitos outros sistemas em nosso projeto que impactam a vida de todos os idosos, ajudando-os a cruzar os obstáculos de sua vida diária de forma independente.

Uma das principais características do sensor de pressão da Infineon é seu tamanho! Isso torna o componente principal portátil e super versátil. No coração do nosso sistema, temos o Arduino Nano, que é conectado ao sensor de pressão DPS310 por meio do barramento I2C. Ações e comportamentos serão codificados para simular o movimento ao vivo do paciente. Usando esses gráficos ou valores, determinamos o estado do paciente e alertamos um membro em caso de emergência. Os dados gerados serão então representados em um pequeno aplicativo usando o Blynk.

Todo esse sistema será integrado em uma pulseira vestível compacta, mas de boa aparência, combinando essa tecnologia perfeitamente com a vida do paciente.

FUNÇÕES E RECURSOS

Aqui estão as principais funções e movimentos que nossa banda será capaz de analisar / detectar:

Outono - estudos mostram que o maior problema com os idosos é perder o equilíbrio e cair. Freqüentemente, os pacientes ficam desamparados e só depois de algum tempo é que a ajuda chega. Isso poderia ser facilmente evitado com o Health Band pela detecção de uma queda repentina na pressão. Uma vez detectada, uma mensagem é enviada automaticamente aos parentes, para auxílio na prevenção do agravamento da lesão.

Exercício - para os idosos, pode ser difícil fazer com que façam exercícios ou dêem uma caminhada, embora isso os mantenha em forma e saudáveis. Descobrimos que uma forma de motivá-los seria mostrar-lhes o número de passos dados ou por quanto tempo caminharam, para que tivessem algo com que fazer exercícios.

E no caso da minha avó, os médicos disseram a ela para andar cerca de 1000 passos, ela está disposta, mas ela perde a conta. Um contador também a ajuda!

Assim que o Health Band detecta um movimento de "onda", deduz que o paciente iniciou o exercício. De crista a crista ou vale a vale marca um ciclo. Conforme as etapas são executadas, o número de ciclos é gerado e, em seguida, exibido, criando seu próprio contador de passos.

Febre - este é bem direto, o sensor também dá a temperatura. A faixa em contato com o braço fornece a temperatura ao vivo do paciente. Quaisquer picos ou quedas serão alertados novamente automaticamente por meio de mensagem para parentes.

Estado - diz aos parentes o estado de vida do paciente. Por exemplo, se o Health Band não detectar muitas mudanças de pressão, o paciente pode estar dormindo.

Temos três estados:dormindo, acordado e se exercitando. (isso disse que não aperfeiçoamos esta função ainda, pois às vezes recebíamos "estados" errados. Também planejamos adicionar mais estados)

CIRCUITO

O poderoso sensor DPS310 da Infineon pode ser sincronizado usando Bluetooth para um aplicativo. O aplicativo gera representações visuais ao vivo do sensor. Embora tenha sido útil, ele teve suas limitações para o nosso conceito.

Portanto, para acessar o fluxo de dados do sensor, conectamos um Arduino Nano, por meio do barramento I2C. Isso nos permitiu computar os dados tornando possível deduzir vários cenários em que o paciente se encontrava.

Depois de resolver esse problema, conectamos o Arduino a um módulo WiFi ESP8266, dando a ele os meios de se comunicar com um aplicativo móvel.

CONFIGURANDO

Antes de configurar tudo, você precisará adicionar pinos ao sensor. Corte dois pedaços de sete pinos e solde-os. Você pode usar uma placa de ensaio para tornar as coisas mais fáceis.
  • Sensor de pressão DPS310 para Arduino Nano (I2C)

NOTA :a orientação do sensor é conforme ilustrado na imagem

Pino 1 (SDA) no sensor => Pino analógico 4 no Arduino

Pino 2 (SCL) no sensor => Pino analógico 5 no Arduino

Pino 8 (GND) no sensor => GND no Arduino
  • Arduino Nano para ESP8266 (módulo WiFi)



NOTA :a orientação do módulo é conforme ilustrado na imagem

Pino 1 no módulo WiFi => Pino digital 11 no Arduino

Pino 2 no módulo WiFi => Pino digital 10 no Arduino

Pino 7 (GND) no módulo WiFi => GND no Arduino

Pino 8 (alimentação) no módulo WiFi => 3v3 no Arduino

FAZENDO A BANDA

Todos os componentes sendo pequenos cabem perfeitamente no seu pulso. Para fazer a banda real, usamos Canvas e Espuma para incorporar os componentes. E então velcro para formar as alças.





Para fazer a sua faixa DIY Health, comece cortando a espuma na largura da sua mão. Em seguida, organize os vários sensores e corte o tamanho final. Arredonde as bordas para dar uma aparência mais organizada. Pressione os pinos na espuma (dando-lhe proteção e aderência) e insira a bateria em um pequeno slot.



Agora vire a fita e solde as conexões, os pinos devem ficar para fora ... Faça um teste para ver se tudo está funcionando.



Adicione tiras de velcro para fazer as tiras. Envolva a pulseira em tela e cole com cola quente, isso dá um acabamento e toque impecáveis!





Como não temos uma impressora 3D, planejamos atualizar este protótipo no futuro com um 3D impresso que terá slots perfeitos para todos os componentes dando um design ergonômico à nossa Health Band!

*** Iremos atualizar este projeto, quando imprimirmos nosso modelo impresso em 3D final, com fotos e arquivos de impressão ***

CODIFICANDO OS VÁRIOS ALGORITMOS

Antes de começarmos a programar nosso sistema, existem certas bibliotecas que você precisará instalar para que o programa funcione. As bibliotecas que você precisará baixar são:
  • Biblioteca de fios (Normalmente vem pré-instalado, é responsável pela comunicação entre o Arduino Nano e o sensor de pressão DPS310) https://github.com/PaulStoffregen/Wire
  • Biblioteca de sensores de pressão DPS310 https://github.com/Infineon/DPS310-Pressure-Sensor
  • Biblioteca Blynk (para que o Arduino Nano seja capaz de se comunicar com a nuvem Blynk) https://github.com/blynkkk/blynk-library

Depois de fazer o download de cada uma das bibliotecas, a instalação de cada uma segue o mesmo processo:abra o Arduino IDE e vá para esboçar (topo da janela). Em seguida, na lista suspensa, clique em incluir biblioteca . Em seguida, clique em adicionar biblioteca .ZIP . Agora navegue para onde você armazenou os arquivos baixados e clique em abrir. Repita o processo para todas as três bibliotecas.

Agora você pode tentar fazer download do código de teste e verifique se ele compila. Faça upload para o seu Arduino Nano e certifique-se de obter dados ativos abrindo o monitor serial (representado pelo ícone do monitor no canto superior direito do IDE).

Se isso funcionar bem, vá em frente e carregue o código principal, você pode então começar a construir seu aplicativo.

CONSTRUINDO O APLICATIVO

Para se conectar à internet, usamos uma plataforma pré-construída chamada Blynk, que pode ser baixada da loja de jogos Android, link abaixo. Existem inúmeros exemplos de como usar o aplicativo com o Arduino, todos disponíveis acessando arquivos no IDE do Arduino, em seguida, exemplos e na lista Blynk.

Link para o aplicativo blynk :https://play.google.com/store/apps/details?id=cc.

Usamos o aplicativo para fazer representações dos dados de uma maneira amigável.

Selecione Arduino Nano como seu microcontrolador e como '' tipo de conexão '' WiFi . Você receberá um e-mail do "token de autenticação" que você precisa inserir no código (mencionado no código).

Adicionamos vários widgets, como um Medidor para representar a temperatura ao vivo, uma Exibição de valor para o contador de passos e um visor LCD mostrando o estado atual. Estes são os blocos de construção básicos aos quais você pode adicionar muito mais funções para outros casos específicos.

CONCLUSÕES, BEM SUCEDIDO NO TODO!





O projeto teve alguns erros e leituras incorretas. Um era a temperatura corporal. lido pelo HealthBand foi de 36 ° Celsius (temperatura do pulso), enquanto o termômetro de grau médico leu como 36,8 ° Celsius (temperatura da axila).

Nossos algoritmos para as etapas provaram estar fornecendo contagens erradas no início, mas depois de várias tentativas de modificação funcionaram com bastante precisão. Outro problema estava na função de estado. Adicionamos mais variáveis ​​e instruções para torná-lo melhor compreender outros estados.

No final, fomos capazes de corrigir os problemas recalibrando e o HealthBand reúne com sucesso os dados necessários. Minha avó está sem assistente nas últimas duas semanas e a banda tem funcionado muito bem!

No momento, as mensagens de queda ou febre não foram testadas, pois não houve nenhuma dessas situações, mas, teoricamente, elas funcionam!

Este tem sido um grande projeto e pode ser implementado com bastante facilidade, esperamos que essa banda possa salvar vidas e manter os idosos em boas mãos!

Código

  • Teste de geração de dados
  • HealthBand com aplicativo Blynk
Gerando teste de dados Arduino
Assim que as várias bibliotecas estiverem instaladas, execute este programa para ver se tudo funciona. Você deve obter um fluxo de dados ou valores ao vivo no monitor serial.
 #include  void setup () {Serial.begin (9600); while (! Serial); // A chamada começa a inicializar ifxDps310 // O parâmetro 0x76 é o endereço do barramento. O endereço padrão é 0x77 e não precisa ser fornecido. //ifxDps310.begin(Wire, 0x76); // Use a linha comentada abaixo em vez de usar o endereço I2C padrão. ifxDps310.begin (Wire); // NOTA IMPORTANTE // Se você enfrentar o problema de que o DPS310 indica uma temperatura em torno de 60 C, embora deva estar em torno de 20 C (temperatura ambiente), você pode ter um IC com um problema de bit de fusível // Chame a seguinte função diretamente após begin () para resolver este problema (só precisa ser chamado uma vez após a inicialização) //ifxDps310.correctTemp (); // taxa de medição de temperatura (valor de 0 a 7) // 2 ^ temp_mr resultados de medição de temperatura por segundo int temp_mr =2; // taxa de sobreamostragem de temperatura (valor de 0 a 7) // 2 ^ temp_osr medições de temperatura interna por resultado // Um ​​valor mais alto aumenta a precisão int temp_osr =2; // taxa de medição de pressão (valor de 0 a 7) // 2 ^ prs_mr resultados de medição de pressão por segundo int prs_mr =2; // taxa de sobreamostragem de pressão (valor de 0 a 7) // 2 ^ prs_osr medições de pressão interna por resultado // Um ​​valor mais alto aumenta a precisão int prs_osr =2; // startMeasureBothCont ativa o modo de fundo // temperatura e pressão são medidas automaticamente // Taxas de medição de alta precisão e alta ao mesmo tempo não estão disponíveis. // Consulte a folha de dados (ou tentativa e erro) para obter mais informações int ret =ifxDps310.startMeasureBothCont (temp_mr, temp_osr, prs_mr, prs_osr); // Use uma das linhas comentadas abaixo para medir apenas a temperatura ou pressão // int ret =ifxDps310.startMeasureTempCont (temp_mr, temp_osr); // int ret =ifxDps310.startMeasurePressureCont (prs_mr, prs_osr); if (ret! =0) {Serial.print ("Init FAILED! ret ="); Serial.println (ret); } else {Serial.println ("Init complete!"); }} void loop () {unsigned char pressureCount =20; pressão interna longa [pressureCount]; sem sinal chartemperaturaCount =20; temperatura interna longa [temperatureCount]; // Esta função grava os resultados das medições contínuas nas matrizes fornecidas como parâmetros // Os parâmetros temperatureCount e pressureCount devem conter os tamanhos das matrizes de temperatura e pressão quando a função é chamada // Após o fim da função, temperatureCount e pressureCount mantenha os números de valores gravados nas matrizes // Nota:O Dps310 não pode salvar mais de 32 resultados. Quando seu buffer de resultados estiver cheio, ele não salvará nenhum novo resultado de medição int ret =ifxDps310.getContResults (temperatura, temperaturaContagem, pressão, pressãoContagem); if (ret! =0) {Serial.println (); Serial.println (); Serial.print ("FALHA! Ret ="); Serial.println (ret); } else {Serial.println (); Serial.println (); Serial.print (temperatureCount); Serial.println ("valores de temperatura encontrados:"); para (int i =0; i  
HealthBand com aplicativo Blynk Arduino
Este é o programa final, poucas variáveis ​​e limites precisam ser inseridos manualmente para que a banda de saúde funcione bem, siga os comentários e faça os ajustes. Configure os widgets no aplicativo Blynk de acordo com suas necessidades e seu assistente deve ganhar vida!
 #include  #include  #include  #define BLYNK_PRINT Autenticação serial [ ] ="YourAuthToken"; // Suas credenciais de WiFis.// Defina a senha como "" para redes abertas.char ssid [] ="YourNetworkName"; char pass [] ="YourPassword"; const unsigned char pressureLength =50; unsigned char pressureCount =0; long int pressure [pressureLength]; unsigned char temperatureCount =0; const unsigned char temperatureLength =50; long int temperature [temperatureLength]; / * esses limites vão mudar de acordo com onde você está atualmente, esses valores funcionaram perfeitamente em nosso região costeira onde as temperaturas médias eram 34 graus Celsius * / int pressureFallingThresh =1; int pressureSleepingThresh =4; int tempFeverThresh =39; int pressureJogThresh =5; configuração vazia () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); while (! Serial); ifxDps310.begin (Wire); ret interno =ifxDps310.setInterruptPolarity (1); ret =ifxDps310.setInterruptSources (1, 0, 0); // limpa o sinalizador de interrupção lendo ifxDps310.getIntStatusFifoFull (); int interruptPin =3; pinMode (interruptPin, INPUT); attachInterrupt (digitalPinToInterrupt (interruptPin), onFifoFull, RISING); // início de uma medição contínua exatamente como antes int temp_mr =3; int temp_osr =2; int prs_mr =1; int prs_osr =3; ret =ifxDps310.startMeasureBothCont (temp_mr, temp_osr, prs_mr, prs_osr); if (ret! =0) {Serial.print ("Init FAILED! ret ="); Serial.println (ret); } else {Serial.println ("Init complete!"); }} void loop () {Blynk.run (); Serial.println ("loop em execução"); atraso (500); if (pressureCount ==pressureLength &&temperatureCount ==temperatureLength) {// imprimir resultados Serial.println (); Serial.println (); Serial.print (temperatureCount); Serial.println ("valores de temperatura encontrados:"); para (int i =0; i  tempFeverThresh) {feverEmail (); } Serial.println ("graus Celsius"); } Serial.println (); Serial.print (pressureCount); Serial.println ("valores de pressão encontrados:"); para (int i =0; i  

Esquemas


Processo de manufatura

  1. Compreendendo os padrões de segurança para aparelhos inteligentes
  2. Smart Blinds
  3. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  4. Homem de Ferro
  5. Encontre-me
  6. Como medir a massa da Terra usando o Arduino
  7. Controle do umidificador Arduino
  8. Encontrando o retorno para a fabricação inteligente
  9. Software para a fábrica inteligente:As vantagens do software independente de hardware
  10. A serra de fita manual para qualquer ocasião