Índice:

Balança digital com ESP32: 12 etapas
Balança digital com ESP32: 12 etapas

Vídeo: Balança digital com ESP32: 12 etapas

Vídeo: Balança digital com ESP32: 12 etapas
Vídeo: Arduino + 5kg Load Cell Sensor + HX711 Module | Arduino Digital Scales with Load Cell Sensor & HX711 2024, Novembro
Anonim
Image
Image
Recursos Usados
Recursos Usados

Você já pensou em montar uma balança digital usando um ESP32 e um sensor (conhecido como célula de carga)? Hoje, vou mostrar como fazer isso por meio de um processo que também permite outros testes de laboratório, como identificar a força que um motor exerce sobre um ponto, entre outros exemplos.

Em seguida, demonstrarei alguns conceitos relacionados ao uso de células de carga, capturarei dados de células para construir uma escala de exemplo e apontarei outras aplicações possíveis de células de carga.

Etapa 1: Recursos usados

• Heltec Lora 32 WiFi ESP

• Célula de carga (0 a 50 newtons, usando uma escala)

• 1 potenciômetro de 100k (melhor se você usar um trimpot multivolt para ajuste fino)

• 1 Amp Op LM358

• 2 resistores 1M5

• 2 resistores de 10k

• 1 resistor 4k7

• Fios

• Um protoboard

• Um cabo USB para ESP

• Uma balança, recipiente com volume graduado ou qualquer outro método de calibração.

Etapa 2: Demonstração

Demonstração
Demonstração

Etapa 3: Carregar células

Células de carga
Células de carga

• Eles são transdutores de força.

• Eles podem usar vários métodos para traduzir a força aplicada em uma magnitude proporcional que pode ser usada como uma medida. Entre os mais comuns estão aqueles que usam extensômetros de folha, O efeito piezoelétrico, hidráulica, cordas vibratórias, etc …

• Eles também podem ser classificados pela forma de medição (tensão ou compressão)

Etapa 4: carregar células e medidores de tensão

Células de carga e medidores de tensão
Células de carga e medidores de tensão
Células de carga e medidores de tensão
Células de carga e medidores de tensão

• Extensômetros de folha são filmes (geralmente de plástico) com um fio impresso que tem uma resistência que pode variar com a mudança de tamanho.

• Sua construção visa principalmente converter uma deformação mecânica em uma variação de magnitude elétrica (resistência). Isso ocorre preferencialmente em uma única direção, para que a avaliação dos componentes possa ser realizada. Para isso, a combinação de vários extensômetros é comum

• Quando conectado corretamente a um corpo, sua deformação é igual à do corpo. Assim, sua resistência varia com a deformação do corpo, que por sua vez está relacionada à força deformadora.

• Eles também são conhecidos como medidores de tensão.

• Quando esticados por uma força de tração, os fios se alongam e estreitam, aumentando a resistência.

• Quando comprimidos por uma força compressiva, os fios encurtam e alargam, reduzindo a resistência.

Etapa 5: Ponte Wheatstone

Ponte Wheatstone
Ponte Wheatstone

• Para uma medição mais precisa e para permitir uma detecção mais eficiente da variação da resistência em uma célula de carga, o extensômetro é montado em uma ponte de Wheatstone.

• Nesta configuração, podemos determinar a variação da resistência através do desequilíbrio da ponte.

• Se R1 = Rx e R2 = R3, os divisores de tensão serão iguais, e as tensões Vc e Vb também serão iguais, com a ponte em equilíbrio. Ou seja, Vbc = 0V;

• Se Rx for diferente de R1, a ponte será desequilibrada e a tensão Vbc será diferente de zero.

• É possível mostrar como essa variação deve ocorrer, mas aqui faremos uma calibração direta, relacionando o valor lido no ADC a uma massa aplicada na célula de carga.

Etapa 6: amplificação

Amplificação
Amplificação

• Mesmo utilizando a ponte de Wheatstone para tornar a leitura mais eficiente, as microdeformações no metal da célula de carga produzem pequenas variações de tensão entre Vbc.

• Para resolver esta situação, usaremos dois estágios de amplificação. Um para determinar a diferença e outro para igualar o valor obtido ao ADC do ESP.

Etapa 7: Amplificação (esquema)

Amplificação (esquema)
Amplificação (esquema)

• O ganho da etapa de subtração é dado por R6 / R5 e é o mesmo que R7 / R8.

• O ganho da etapa final não inversora é dado por Pot / R10

Etapa 8: Coleta de dados para calibração

Coleta de dados para calibração
Coleta de dados para calibração
Coleta de dados para calibração
Coleta de dados para calibração

• Uma vez montado, definimos o ganho final de forma que o valor da maior massa medida esteja próximo do valor máximo do ADC. Nesse caso, para 2kg aplicados na célula, a tensão de saída ficou em torno de 3V3.

• A seguir, variamos a massa aplicada (conhecida através de uma balança e para cada valor), e associamos um LEITUR do ADC, obtendo a tabela seguinte.

Etapa 9: Obtenção da relação funcional entre a massa medida e o valor do ADC obtido

Obtendo a relação funcional entre a massa medida e o valor do ADC obtido
Obtendo a relação funcional entre a massa medida e o valor do ADC obtido

Usamos o software PolySolve para obter um polinômio que representa a relação entre a massa e o valor do ADC.

Etapa 10: Código Fonte

Código-fonte - #Inclui

Agora que temos como obter as medições e saber a relação entre o ADC e a massa aplicada, podemos prosseguir para escrever o software.

// Bibliotecas para utilização do display oLED # include // Necessário apenas para o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Código-fonte - #Defines

// Os OLED estão conectados ao ESP32 pelos seguintes pinos GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser por software

Fonte - Variáveis Globais e Constantes

Display SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" const int. = 10000; // número de coletadas para a média const int pin = 13; // pino de leitura

Código Fonte - Configuração ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // inicia um serial // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Código Fonte - Loop ()

void loop () {float medidas = 0,0; // variável para manipular como medidas float massa = 0,0; // variável para armazenar o valor da massa // inicia a coleta de proprietários do ADC para (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// Envia um CSV contendo o instante, a medida média do ADC e o valor em gramas // para a Serial. Serial.print (millis () / 1000,0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio calcular no ADC Serial.print (","); Serial.println ((massa), 1); // massa em gramas // Escreve sem buffer do display display.clear (); // Limpa o buffer do display // ajusta o alinhamento para um display esquerdo.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer exibe uma massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // leva sem buffer o valor do ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos {display.clear (); // limpa o buffer do display display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para a esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // sem buffer display.setFont (ArialMT_Plain_16); // Ajusta uma fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // leva no buffer} display.display (); // transfere o buffer para o display delay (50); }

Código-fonte - Função calculaMassa ()

// função para cálculo da massa obtida pela regressão // usando oPolySolve float calculaMassa (float medida) {return -6,798357840659e + 01 + 3,885671618930e-01 * medida + 3,684944764970e-04 * medida * medida medida + -3,748108838320e-07 * medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * medida * medida; }

Etapa 11: Iniciando e Medindo

Iniciando e Medindo
Iniciando e Medindo

Etapa 12: Arquivos

Baixe os arquivos

EU NÃO

PDF

Recomendado: