Ciência & tecnologia
Sensores ambientais 24/7 — temperatura, umidade, pressão diferencial
Sala de manipulação não é como sala de casa. Tem regras de temperatura, umidade e pressão diferencial que se desviam da norma comprometem a qualidade da manipulação — às vezes silenciosamente, sem nenhum sintoma visual.
A pergunta operacional é: como você sabe que o ambiente está dentro da especificação? A resposta padrão da indústria magistral é "termômetro analógico na parede + planilha preenchida 2 vezes por dia". Funciona, mas tem dois problemas:
- 12 horas de "buraco" entre medições — qualquer excursão fora da faixa nesse intervalo passa despercebida
- Confiabilidade humana — em rotina apertada, planilha pode ser preenchida retrospectivamente
A solução técnica é sensores 24/7 com leitura automática — exatamente o que implementamos no ERP Magistral 4.0 com MQTT + TimescaleDB. Vamos abrir como funciona.
O que precisamos medir (RDC 67 + ABNT)
| Variável | Faixa típica | Por que importa |
|---|---|---|
| Temperatura ambiente | 18-25°C | Estabilidade de IFAs sensíveis (proteínas, retinoides) |
| Umidade relativa | 40-65% RH | Higroscopia (alguns IFAs absorvem água); proliferação microbiana acima de 70% |
| Pressão diferencial entre sala limpa e antessala | +10-15 Pa | Garantia de fluxo de ar para fora da sala (impede contaminação por particulado externo) |
| Pressão diferencial entre antessala e área externa | +5-10 Pa | Mesmo princípio, gradiente progressivo |
| Particulado (em sala estéril ISO 7-8) | menor que 352.000/m³ ≥0,5µm | Classificação ABNT NBR ISO 14644 |
Cada sala tem 2-4 sensores; a farmácia inteira tem 10-30 sensores em operação contínua.
Stack técnico
Sensores físicos:
- DHT22 / SHT31 (temperatura + umidade) — precisão ±0,5°C, ±2% RH
- Pressão diferencial: BME280 ou SDP800 (faixa 0-50 Pa)
- Contadores de partículas: Hanvon, Beckman Coulter (mais caros, salas estéreis)
Comunicação — MQTT (Message Queuing Telemetry Transport):
- Protocolo leve, projetado para IoT
- Cada sensor publica em tópico (ex:
farma/sala-1/temp,farma/sala-1/umidade) - Broker central (Mosquitto) recebe + retransmite para subscribers
Persistência — TimescaleDB (PostgreSQL com hypertables):
- Otimizado para séries temporais
- 1 leitura/segundo × 30 sensores × 24h = ~2,6 milhões de pontos/dia
- Compressão automática após 7 dias (~10× redução de volume)
- Queries de janelas (média de 1h, 1 dia, 1 semana) muito rápidas
Alertas — XState v5 + WebSocket:
- Excursão fora da faixa: alerta imediato no painel + notificação push pro RT
- Auto-pause no ERP se excursão maior que 5 minutos em sala ativa de manipulação
- Audit log da excursão + duração + ação tomada
Cenário real: por que 24/7 importa
Sexta-feira, 19h30. Sala 2 (semi-sólidos) entrou em manipulação às 14h.
A temperatura sobe progressivamente desde 17h (HVAC com problema sutil — ventilador funcionando 80% da capacidade, sem alerta da própria HVAC). Termômetro analógico marca 25,8°C (limite superior da faixa). Operador vê no painel digital que a tendência das últimas 2h foi de subida.
O sistema:
- Alerta o RT em 19h32 (5 minutos após cruzar 25°C)
- Mostra histograma de temperatura das últimas 24h e identifica que sala 1 também está em ascensão (mesmo HVAC compartilhado)
- Auto-pausa todas as ordens de produção em sala-1 e sala-2
- RT decide: comparar com IFAs e fórmulas em manipulação. Tretinoína em creme — IFA crítico pra temperatura. Decide refazer a fórmula segunda-feira após manutenção HVAC; descarta os ~30g manipulados nessa janela.
Sem sensores 24/7, o operador acabaria a manipulação às 21h e sairia. Tretinoína exposta a 26-27°C durante 4 horas teria oxidação parcial — paciente receberia produto com dose efetiva abaixo do prescrito, sem nenhuma forma de detectar visualmente.
Histograma como ferramenta de auditoria
Pós-incidente, o histograma do TimescaleDB serve de prova. Em uma fiscalização Anvisa:
SELECT
time_bucket('5 min', timestamp) AS bucket,
AVG(temperatura) AS temp_avg,
MAX(temperatura) AS temp_max
FROM sensors_temp
WHERE sala = 'sala-1'
AND timestamp > NOW() - INTERVAL '7 days'
GROUP BY bucket
ORDER BY bucket;
Em segundos, gerar o gráfico que prova exatamente em que minuto a temperatura subiu, quando desceu, em que duração total ficou fora da faixa. Compatível com auditoria fora de qualquer dúvida.
E se o sensor falhar?
Redundância:
- 2 sensores por sala — leitura cruzada, alerta se divergência maior que 0,5°C ou maior que 5% RH
- Heartbeat MQTT — sensor sem publicação por maior que 30s gera alerta
- Calibração mensal com termômetro de referência rastreável (NIST/INMETRO)
- Verificação trimestral com câmara climática externa
Em caso de falha do sensor primário, sistema usa secundário; em falha de ambos, sala é bloqueada para uso até manutenção.
Custo dessa infra
Para uma farmácia magistral pequena (3 salas):
- 6-9 sensores temperatura/umidade × R$ 80-150 cada = R$ 500-1.300
- 3 sensores pressão diferencial × R$ 200-400 cada = R$ 600-1.200
- Microcontrolador (ESP32) + broker MQTT + servidor: pode rodar em hardware existente
- Software: open-source (Mosquitto + TimescaleDB) ou ERP integrado
Total: R$ 2.000-3.000 hardware + dev integração. Para farmácia que opera há 5+ anos sem isso, é decisão de upgrade. Para uma sendo construída do zero (caso da Farmanipulação), é parte do design inicial — nenhum custo marginal.
Conclusão
Sensores 24/7 não são "tecnologia premium" — são redundância básica de atenção em ambiente controlado. RDC 67 exige controle ambiental; a forma de fazê-lo com confiabilidade é sensorização contínua + audit log persistente.
Quando alguém perguntar "como vocês garantem que a temperatura está sempre na faixa?", a resposta certa é: "Não confiamos em humano lembrar. Sensor mede a cada segundo, audit log prova retroativamente, e o sistema pausa a sala sozinho se algo sair do padrão."
Esse padrão é o que estamos implementando na Farmanipulação. Pré-AFE, ainda não há sala montada — mas o ERP Magistral 4.0 já tem o pipeline pronto pra ligar nos sensores quando o lab físico existir.
Fontes