Protótipo Validado v1.0

Robô de Transporte de Ampolas Médicas.

Um robô inteligente projetado para o transporte seguro de materiais médicos sensíveis. Inovação na área hospitalar integrando refrigeração automatizada, cinemática autônoma e telemetria Wi-Fi.

Arduino Mega ESP32 Blynk IoT

Especificações de Hardware

Integração de múltiplos sensores e atuadores para segurança logística.

Sensor Ultrassônico

Levanta a tampa automaticamente via Servo Motor para acesso seguro e *touchless*, minimizando o risco de contaminação cruzada.

Monitoramento Térmico

Dois sensores DHT11 trabalham simultaneamente para máxima precisão, analisando o delta térmico entre a câmara fria e as ampolas.

Refrigeração Automática

Ventoinha integrada que atua em malha fechada para manter a temperatura ideal, acionada pela lógica do microcontrolador principal.

Mobilidade Controlada

Sistema de tração gerenciado via sinais PWM, permitindo movimentação ágil e responsiva através de comandos de rede.

Stack de Componentes

O ecossistema eletrônico que dá vida à aplicação.

Arduino MegaArduino Mega
ESP32 MicrocontroladorESP32
Sensor de Temperatura DHT11Sensores DHT11
Plataforma Blynk CloudBlynk Cloud
Servo Motor de precisãoServo Motor
Componentes EletrônicosTransistores de Potência

Arquitetura do Sistema

Funcionamento Geral

O projeto integra um Arduino Mega e um ESP32, que trabalham juntos para garantir o controle total do sistema. Sensores DHT11 monitoram as temperaturas continuamente. A conectividade via Blynk permite o controle remoto do robô e o monitoramento da telemetria diretamente no smartphone.

Interface Homem-Máquina (OLED)

A tela OLED é um componente crítico no sistema de *fallback*, exibindo as temperaturas das caixas em tempo real. Com alta visibilidade e baixo consumo de energia, a tela garante que os operadores estejam cientes das condições mesmo sem conectividade remota.

Integração de Hardware

  • Arduino Mega: Gerencia de forma robusta sensores de ambiente e atuadores mecânicos.
  • ESP32: Dedicado exclusivamente à comunicação TCP/IP com o aplicativo Blynk.
  • Automação: O robô reage às condições do ambiente em tempo real processando a lógica em C++.
#define BLYNK_TEMPLATE_ID "TMPL2PmD9EKj2"
#define BLYNK_TEMPLATE_NAME "Auto"
#define BLYNK_AUTH_TOKEN "boFHNIVsTRL6VbBdHmimumelLtCsWAlF"

#include <SPI.h>
#include <Wire.h>
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>

// Credenciais do Wi-Fi
char auth[] = "boFHNIVsTRL6VbBdHmimumelLtCsWAlF";
char ssid[] = "Nome da Rede";                  
char pass[] = "Senha da Rede";              

// Definições dos pinos dos motores PWM
#define MOTOR_LEFT_PIN 5         
#define MOTOR_RIGHT_PIN 18       

void setup() {
  Serial.begin(9600);
  pinMode(MOTOR_LEFT_PIN, OUTPUT);
  pinMode(MOTOR_RIGHT_PIN, OUTPUT);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
}

// Controle de direção com botões (Blynk RPC)
BLYNK_WRITE(V3) {  // Frente
  int buttonState = param.asInt();
  if (buttonState == 1) {            
    analogWrite(MOTOR_LEFT_PIN, 255);
    analogWrite(MOTOR_RIGHT_PIN, 255);
  }
}

BLYNK_WRITE(V4) {  // Ré
  int buttonState = param.asInt();
  if (buttonState == 1) {            
    analogWrite(MOTOR_LEFT_PIN, 0);
    analogWrite(MOTOR_RIGHT_PIN, 0);
  }
}

void loop() {
  Blynk.run(); // Executa o socket do Blynk
}
#include <Adafruit_SH110X.h>
#include <DHT.h>
#include <Servo.h>
#include "Ultrasonic.h"

const int DHTPIN1 = 4; // Caixa com gelo
const int DHTPIN2 = 5; // Caixa vazia
#define DHTTYPE DHT11
#define FAN_PIN 2         
#define i2c_Address 0x3C
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

DHT dht1(DHTPIN1, DHTTYPE); 
DHT dht2(DHTPIN2, DHTTYPE); 
Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Servo meuServo;
HC_SR04 sensor1(12, 13);

float targetTemp = 23.0; 
unsigned long previousMillis = 0;
const long interval = 2000; 

void setup() {
  Serial.begin(9600);
  dht1.begin();
  dht2.begin();
  pinMode(FAN_PIN, OUTPUT);
  display.begin(i2c_Address, true);
  meuServo.attach(9);
}

void ControlFan(float temp1, float temp2) {
  if (temp2 > targetTemp && temp1 < temp2) {
    digitalWrite(FAN_PIN, HIGH);
  } else {
    digitalWrite(FAN_PIN, LOW);
  }
}

void OpenCap() {
  if (sensor1.distance() < 8) {
    ServoUp();
  } else {
    ServoDown();
  }
}

void loop() {
  unsigned long currentMillis = millis();
  OpenCap();
  
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    float tempGelo = dht1.readTemperature(); 
    float tempVazia = dht2.readTemperature(); 
    ControlFan(tempGelo, tempVazia);
  }
}

Telemetria de Eficiência Térmica

Curva de resfriamento analisada em tempo real pelo microcontrolador.

Galeria do Protótipo

Visão Frontal do Robô Chassi Interno e Placas Circuitos e Sensores Estrutura de transporte médica

Equipe de Engenharia

Os desenvolvedores responsáveis pela integração de Hardware e Software.

Marcos Corrêa

Marcos Corrêa Nunes

Ver Portfólio
Guskov

Guskov da Silva Coelho

Engenharia
Paulo

Paulo G. Sodré Meneses

Engenharia
João

João Manoel S. Muniz

Engenharia
Marcos Vinícios

Marcos Vinicios S. Lima

Engenharia
Fernando

Fernando L. S. Cordeiro

Engenharia