Inhoudsopgave:

Digitale weegschaal met ESP32: 12 stappen
Digitale weegschaal met ESP32: 12 stappen

Video: Digitale weegschaal met ESP32: 12 stappen

Video: Digitale weegschaal met ESP32: 12 stappen
Video: Webinar Elanco - Water, water, water 2024, November
Anonim
Image
Image
Gebruikte bronnen
Gebruikte bronnen

Heeft u er ooit aan gedacht om een digitale weegschaal te monteren met een ESP32 en een sensor (bekend als een load cell)? Vandaag laat ik je zien hoe je dit kunt doen via een proces dat ook andere laboratoriumtests mogelijk maakt, zoals het identificeren van de kracht die een motor op een punt uitoefent, naast andere voorbeelden.

Vervolgens zal ik enkele concepten demonstreren die verband houden met het gebruik van loadcellen, celgegevens vastleggen om een voorbeeldweegschaal te bouwen en andere mogelijke toepassingen van loadcellen aanwijzen.

Stap 1: Gebruikte bronnen

• Heltec Lora 32 WiFi ESP

• Load cell (0 tot 50 newton, met behulp van een schaal)

• 1 potmeter van 100k (beter als je een multivolt trimpot gebruikt voor fijnafstelling)

• 1 Amp op LM358

• 2 1M5 weerstanden

• 2 10k weerstanden

• 1 4k7 weerstand

• Draden

• Een Protoboard

• Een USB-kabel voor ESP

• Een weegschaal, een container met een gegradueerd volume of een andere kalibratiemethode.

Stap 2: Demonstratie

Demonstratie
Demonstratie

Stap 3: laadcellen

Laadcellen
Laadcellen

• Het zijn krachtopnemers.

• Ze kunnen op verschillende manieren de uitgeoefende kracht vertalen naar een proportionele grootheid die als maatstaf kan worden gebruikt. Een van de meest voorkomende zijn die met behulp van plaatextensometers, HET piëzo-elektrische effect, hydrauliek, trillende snaren, enz …

• Ze kunnen ook worden ingedeeld volgens de meetvorm (spanning of compressie)

Stap 4: Laadcellen en spanningsmeters

Laadcellen en spanningsmeters
Laadcellen en spanningsmeters
Laadcellen en spanningsmeters
Laadcellen en spanningsmeters

• Sheet extensometers zijn films (meestal plastic) met een bedrukte draad die een weerstand hebben die kan variëren met hun grootteverandering.

• De constructie ervan heeft voornamelijk tot doel een mechanische vervorming om te zetten in een variatie van een elektrische grootheid (weerstand). Dit gebeurt bij voorkeur in één richting, zodat componentevaluatie kan worden uitgevoerd. Hiervoor is de combinatie van meerdere extensometers gebruikelijk

• Indien correct bevestigd aan een lichaam, is de vervorming gelijk aan die van het lichaam. De weerstand ervan varieert dus met de vervorming van het lichaam, die op zijn beurt verband houdt met de vervormingskracht.

• Ze worden ook wel rekstrookjes genoemd.

• Wanneer ze worden uitgerekt door een trekkracht, worden de strengen langer en smaller, waardoor de weerstand toeneemt.

• Wanneer ze worden samengedrukt door een drukkracht, worden de draden korter en breder, waardoor de weerstand afneemt.

Stap 5: Wheatstone-brug

Wheatstone-brug
Wheatstone-brug

• Voor een nauwkeurigere meting en om een efficiëntere detectie van weerstandsvariatie in een loadcel mogelijk te maken, is de rekstrookje gemonteerd in een Wheatstone-brug.

• In deze configuratie kunnen we de variatie van de weerstand door de brugonbalans bepalen.

• Als R1 = Rx en R2 = R3, dan zijn de spanningsdelers gelijk, en ook de spanningen Vc en Vb, met de brug in evenwicht. Dat wil zeggen, Vbc = 0V;

• Als Rx anders is dan R1, zal de brug ongebalanceerd zijn en zal de spanning Vbc niet nul zijn.

• Het is mogelijk om te laten zien hoe deze variatie zou moeten plaatsvinden, maar hier zullen we een directe kalibratie maken, waarbij de waarde die in de ADC wordt gelezen, wordt gerelateerd aan een massa die op de load cell wordt aangebracht.

Stap 6: Versterking

versterking
versterking

• Zelfs als de Wheatstone-brug wordt gebruikt om de meting efficiënter te maken, produceren de microvervormingen in het metaal van de load cell kleine spanningsvariaties tussen Vbc.

• Om deze situatie op te lossen, zullen we twee amplificatiestadia gebruiken. Een om het verschil te bepalen en een andere om de verkregen waarde af te stemmen op de ADC van de ESP.

Stap 7: Amplificatie (schema)

Versterking (schema)
Versterking (schema)

• De versterking van de aftrekstap wordt gegeven door R6 / R5 en is hetzelfde als R7 / R8.

• De winst van de niet-inverterende laatste stap wordt gegeven door Pot / R10

Stap 8: Verzameling van gegevens voor kalibratie

Verzameling van gegevens voor kalibratie
Verzameling van gegevens voor kalibratie
Verzameling van gegevens voor kalibratie
Verzameling van gegevens voor kalibratie

• Eenmaal gemonteerd, stellen we de uiteindelijke versterking zo in dat de waarde van de grootste gemeten massa dicht bij de maximale waarde van de ADC ligt. In dit geval, voor 2 kg toegepast in de cel, was de uitgangsspanning ongeveer 3V3.

• Vervolgens variëren we de toegepaste massa (bekend via een balans en voor elke waarde), en we associëren een LEITUR van de ADC om de volgende tabel te verkrijgen.

Stap 9: Het verkrijgen van een functierelatie tussen de gemeten massa en de waarde van de verkregen ADC

Verkrijgen van functierelatie tussen gemeten massa en de waarde van de verkregen ADC
Verkrijgen van functierelatie tussen gemeten massa en de waarde van de verkregen ADC

We gebruiken de PolySolve-software om een polynoom te verkrijgen dat de relatie tussen de massa en de waarde van de ADC weergeeft.

Stap 10: Broncode

Broncode - #Inclusief

Nu we weten hoe we de metingen kunnen krijgen en de relatie tussen de ADC en de toegepaste massa kennen, kunnen we doorgaan met het daadwerkelijk schrijven van de software.

//Bibliotecas para utilização do display oLED#include // Noodzakelijke apenas para o Arduino 1.6.5 en anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Broncode - #Defines

//Os pinos do OLED estão conectados oa ESP32 pelos seguintes GPIO's://OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //RST deve ser ajustado door software

Bron - Globale variabelen en constanten

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

Broncode - Instellingen ()

void setup(){ pinMode(pin, INPUT); //analoge gegevens Serial.begin(115200); //iniciando a serial // Inicia o display display.init(); display.flipScreenVertical(); //Vira a tela verticalmente}

Broncode - Loop ()

void loop(){ float medidas = 0.0;//variável para manipular as medidas float massa = 0.0; //variável para armazenar o valor da massa //inicia a coleta de amostras do ADC for (int i = 0; i (5000)) //se está ligado a mais que 5 segundos { //Envia um CSV-contesto o instante, a medida média do ADC en 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 obtido no ADC Serial.print(", "); Serial.println((massa), 1); //massa em gramas //Escreve no buffer display display.clear(); //Limpa of buffer om weer te geven //ajusta of alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); //ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); //Escreve geen buffer geeft een massa display weer.drawString(0, 0, "Massa:" + String(int(massa)) + "g"); // escreve geen buffer of doe ADC display.drawString (0, 30, "ADC: " + String (int (medidas))); } else //se está ligado a menos de 5 segundos { display.clear(); //limpa of buffer om display.setTextAlignment (TEXT_ALIGN_LEFT) weer te geven; //Ajusta of alinhamento para a esquerda display.setFont (ArialMT_Plain_24); //ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); //escreve no buffer display.setFont(ArialMT_Plain_16);//Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve geen buffer} display.display ();//transfer o buffer para o weergavevertraging (50); }

Broncode - Functie 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 * -320 * medida * medida * medida Medida * Medida * Medida + 1.796252359323e-10 * Medida * Medida * Medida * Medida + -3.995722708150e-14 * Medida * Medida * Medida * Medida * Medida + 3.284692453344e-18 * Medida * Medida * Medida * Medida * Medida mediterraan; }

Stap 11: Starten en meten

Starten en meten
Starten en meten

Stap 12: Bestanden

Download de bestanden

INO

PDF

Aanbevolen: