Este projeto de monitoramento cardíaco integra-se ao contexto do curso de Objetos Inteligentes Conectados, realizado na Universidade Presbiteriana Mackenzie. A sua finalidade é monitorar em tempo real os batimentos cardíacos, transmitindo esses dados para uma plataforma remota por meio do protocolo MQTT e visualização em uma página web. Essencialmente, trata-se de um projeto de IoT, onde dispositivos conectados e inteligentes são empregados para coleta e transmissão de informações relevantes.
- Monitoramento contínuo dos batimentos cardíacos.
- Transmissão dos dados para uma plataforma remota via MQTT.
- Alerta sonoro quando o batimento cardíaco ultrapassa 150 BPM.
Característica | Descrição |
---|---|
Wireless Padrão | 802.11 b/g/n |
Contém | Antena embutida |
Contém | Conector micro-USB CH340 |
Modos de Operação | STA/AP/STA+AP |
Suporta | 5 conexões TCP/IP |
Portas GPIO | 11 |
GPIO | PWM, I2C, SPI, etc |
Tensão de Operação | 3,3VDC |
Taxa de Transferência | 110-460 mbps |
Suporta | Upgrade remoto de firmware |
Contém | Conversor analógico digital (ADC) |
Característica | Descrição |
---|---|
Tensão de Operação | 3.7 e 5.3V |
Corrente de Operação | 60mA (90mA, no máximo) |
Velocidade de Rotação | 9000RPM |
Característica | Descrição |
---|---|
Tensão de Operação | 3.3V - 5V |
Consumo de Energia | Cerca de 4mA |
Compatibilidade | ESP8266 ESP-01 |
- Protoboard
- Jumpers Macho-Fêmea
- Micro cabo USB 2.0 modelo CMC-USB-30
O código pulsesensor.ino
implementa um sistema de monitoramento cardíaco utilizando o microcontrolador ESP8266 (NodeMCU) e o protocolo MQTT para transmitir os dados para uma plataforma remota. O sistema monitora os batimentos cardíacos em tempo real e envia os dados do BPM (batimentos por minuto) para um servidor MQTT e possibilita a exibição e acompanhamento em uma página web.
- SSID e Senha da Rede Wi-Fi: As variáveis
ssid
epassword
devem ser configuradas com o nome e senha da sua rede Wi-Fi, respectivamente. - Servidor MQTT: A variável
mqtt_server
deve ser configurada com o endereço do servidor MQTT a ser utilizado.
-
Sensor de Pulso (Sensor de Batimentos Cardíacos): Conecte o sensor de pulso ao NodeMCU da seguinte maneira:
- Conecte o pino VCC do sensor ao pino 3V do NodeMCU.
- Conecte o pino GND do sensor ao pino GND do NodeMCU.
- Conecte o pino S ao pino analógico A0 do NodeMCU.
-
Buzzer (motor de vibração): Conecte o buzzer ao NodeMCU da seguinte maneira:
- Conecte o pino positivo (VCC) do buzzer ao pino 3V do NodeMCU.
- Conecte o pino negativo (GND) do buzzer ao pino GND do NodeMCU.
- Conecte o pino de sinal do buzzer ao pino digital D5 (GPIO14) do NodeMCU.
- Veja o protótipo do sensor de pulso
- Setup: Inicializa a comunicação serial, conecta-se à rede Wi-Fi e configura o servidor MQTT.
- Reconexão MQTT: Função para reconectar ao servidor MQTT em caso de desconexão.
- Publicação MQTT: Função para publicar os dados do BPM no tópico MQTT.
- Loop: Loop principal do programa, onde ocorre a leitura do sensor de pulso, cálculo do BPM, publicação dos dados MQTT e controle do buzzer.
- O código faz uso da biblioteca PubSubClient para comunicação MQTT.
- A leitura do sensor de pulso é realizada utilizando a função
analogRead()
e comparada com um limiar para detectar batimentos cardíacos. - O tempo entre batimentos é calculado utilizando a função
millis()
.
- Certifique-se de que as bibliotecas necessárias (
ESP8266WiFi.h
ePubSubClient.h
) estejam instaladas no seu ambiente de desenvolvimento. - Ao configurar o servidor MQTT, verifique se o endereço e a porta estão corretos e se o servidor está disponível.
- Arduino IDE: Para programação do NodeMCU ESP8266.
- HTML: Para a interface web de visualização dos dados.
- CSS: Para estilização da interface web.
- JavaScript: Para interatividade na interface web.
- Biblioteca MQTT.
Para reproduzir este projeto, siga as etapas abaixo:
- Clone este repositório para sua máquina local.
- Monte o hardware de acordo com o protótipo.
- Carregue o código-fonte no Arduino IDE.
- Configure as credenciais do Wi-Fi.
- Conecte a placa em uma fonte de energia utilizando um cabo micro USB 2.0
- Compile e envie o programa para a placa e observe os dados sendo transmitidos.
- Para rodar a página web, entre na pasta com os arquivos
html
,css
,javascript
, abra o terminal e rodenpm install
, e depois execute o scriptnpx http-server
para instalar o servidor local, e para executarhttp-server
. Após esses passos ao acessar a rota exibida no terminal a página web estará disponível: