Este repositório contém o código-fonte para o microcontrolador Raspberry Pi Pico W
O sistema foi projetado para medir e dispensar óleo com precisão, fornecendo feedback de dados em tempo real e alertas ao usuário. A operação é gerenciada por um Raspberry Pi Pico W e dividida nas seguintes funcionalidades principais.
O volume de óleo dispensado é medido usando um sistema híbrido mecânico-eletrônico.
- Engrenagens Magnéticas: Duas engrenagens magnéticas giram conforme o óleo flui pelo mecanismo.
- Sensor Magnético: Um sensor magnético detecta a rotação das engrenagens.
- Contagem de Quadratura: Um algoritmo de contagem de quadratura é usado para interpretar os sinais do sensor, permitindo uma medição precisa dos pulsos, que corresponde ao volume de líquido.
O fluxo de óleo é controlado por uma válvula solenoide que também fornece feedback tátil ao usuário.
-
Quando Ativado (Gatilho Pressionado):
- O solenoide abre, permitindo que o óleo flua pela pistola.
- Simultaneamente, ele cria resistência física no gatilho, sinalizando ao usuário que a dispensação está em andamento.
-
Quando Desativado:
- O solenoide fecha, bloqueando imediatamente o fluxo de óleo.
- O sistema desativa o solenoide assim que a quantidade de dispensação alvo é atingida, o que também libera a resistência no gatilho.
- Módulo WiFi: O módulo WiFi integrado do Raspberry Pi Pico W é usado para comunicação sem fio.
- Monitoramento Web: Os dados de cada pistola de dispensação individual são enviados para um servidor web central, permitindo o monitoramento em tempo real e o registro de dados.
- Monitoramento da Bateria: O sistema verifica continuamente a voltagem das baterias.
- Alerta de Bateria Fraca: Quando a voltagem cai para um nível crítico, o sistema emite um aviso, indicando que as baterias precisam ser substituídas.
- Microcontrolador: Raspberry Pi Pico W
- Display: OLED 128x64 I2C (SSD1306)
- Sensor de Fluxo: Sensor magnético com pino em
REED_SWITCH_PIN_AeREED_SWITCH_PIN_B. - Atuador: Válvula Solenoide controlada via Ponte H nos pinos
H_BRIDGE_IN1_PINeH_BRIDGE_IN2_PIN. - Entrada de Usuário: 2x Botões de pressão (
BUTTON_A_PIN,BUTTON_B_PIN).
O firmware opera em diferentes modos, controlados por dois botões (A e B).
-
Modo Normal:
- Exibe a contagem de pulsos atual e o fator de calibração (k-factor).
- Pressionar o botão B abre o fluxo de óleo.
- Pressionar o botão A fecha o fluxo e, se o fluxo já estiver fechado, zera a contagem.
-
Modo de Calibração:
- Pressione e segure A para entrar no modo de seleção de volume de calibração.
- Use o botão B para selecionar um volume pré-definido (500ml, 1000ml, 2000ml, 3000ml).
- Pressione A para confirmar o volume e zerar a contagem.
- Na tela "Pronto para Calibrar", pressione B para iniciar a dispensação.
- Pressione A quando o volume selecionado for atingido. O sistema irá calcular e exibir o novo k-factor.
-
Modo de Dosagem:
- Pressione e segure B para entrar no modo de seleção de volume de dosagem.
- Use o botão B para incrementar o volume de 100 em 100 ml.
- Pressione A para confirmar o volume e preparar a dosagem.
- Na tela "Pronto para Dosar", pressione B para iniciar.
- O sistema irá dispensar o volume selecionado e fechar o fluxo automaticamente.