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.
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 Mega
ESP32
Sensores DHT11
Blynk Cloud
Servo Motor
Transistores de PotênciaArquitetura 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
Equipe de Engenharia
Os desenvolvedores responsáveis pela integração de Hardware e Software.
Marcos Corrêa Nunes
Ver Portfólio
Guskov da Silva Coelho
Engenharia
Paulo G. Sodré Meneses
Engenharia
João Manoel S. Muniz
Engenharia
Marcos Vinicios S. Lima
Engenharia