INHOUDSOPGAWE:

Digitale weegskaal met ESP32: 12 stappe
Digitale weegskaal met ESP32: 12 stappe

Video: Digitale weegskaal met ESP32: 12 stappe

Video: Digitale weegskaal met ESP32: 12 stappe
Video: Webinar Elanco - Water, water, water 2024, Julie
Anonim
Image
Image
Hulpbronne gebruik
Hulpbronne gebruik

Het u al ooit daaraan gedink om 'n digitale weegskaal te monteer met behulp van 'n ESP32 en 'n sensor (bekend as 'n laadsel)? Vandag sal ek u wys hoe u dit moet doen deur middel van 'n proses wat ook ander laboratoriumtoetse moontlik maak, soos die identifisering van die krag wat 'n enjin op 'n punt verrig, onder andere voorbeelde.

Ek sal dan 'n paar konsepte demonstreer wat verband hou met die gebruik van laadselle, seldata opneem om 'n voorbeeldskaal op te stel en ander moontlike toepassings van vragselle aan te dui.

Stap 1: Hulpbronne gebruik

• Heltec Lora 32 WiFi ESP

• Laai sel (0 tot 50 newton, met behulp van 'n skaal)

• 1 potensiometer van 100k (beter as u 'n multivolt -trimpot gebruik vir fyn verstelling)

• 1 Amp op LM358

• 2 1M5 weerstande

• 2 10k weerstande

• 1 4k7 weerstand

• Drade

• 'n Protoboard

• 'n USB -kabel vir ESP

• 'n Weegskaal, houer met gegradeerde volume of enige ander kalibreringsmetode.

Stap 2: Demonstrasie

Demonstrasie
Demonstrasie

Stap 3: Laai selle

Laai selle
Laai selle

• Hulle is kragopnemers.

• Hulle kan verskillende metodes gebruik om die toegepaste krag in 'n proporsionele grootte te vertaal wat as maatstaf gebruik kan word. Een van die algemeenste is dié wat plaatverlengmeters gebruik, DIE piëzo -elektriese effek, hidroulika, trilsnare, ens …

• Hulle kan ook geklassifiseer word volgens die meetvorm (spanning of kompressie)

Stap 4: Laai selle en sifmeters

Laai selle en sifmeters
Laai selle en sifmeters
Laai selle en sifmeters
Laai selle en sifmeters

• Plaatrekmeters is films (gewoonlik plastiek) met 'n gedrukte draad wat 'n weerstand het wat kan wissel met hul grootteverandering.

• Die konstruksie daarvan is hoofsaaklik daarop gemik om 'n meganiese vervorming om te skakel in 'n variasie van 'n elektriese grootte (weerstand). Dit vind verkieslik in 'n enkele rigting plaas, sodat komponentevaluering uitgevoer kan word. Hiervoor is die kombinasie van verskeie ekstensometers algemeen

• As dit behoorlik aan 'n liggaam geheg is, is sy vervorming gelyk aan die van die liggaam. Die weerstand daarvan wissel dus met die vervorming van die liggaam, wat weer verband hou met die vervormingskrag.

• Dit staan ook bekend as rekmeters.

• Wanneer hulle deur 'n trekstrek uitgerek word, word die drade verleng en smal, wat die weerstand verhoog.

• As dit saamgepers word deur 'n drukkrag, word die drade verkort en verbreed, wat die weerstand verminder.

Stap 5: Wheatstone Bridge

Wheatstone Bridge
Wheatstone Bridge

• Vir 'n meer akkurate meting en vir 'n meer doeltreffende opsporing van weerstandsverandering in 'n laadsel, word die rekmeter in 'n Wheatstone -brug saamgestel.

• In hierdie opset kan ons die variasie van die weerstand deur die wanbalans van die brug bepaal.

• As R1 = Rx en R2 = R3, sal die spanningsverdelers gelyk wees, en die spannings Vc en Vb sal ook gelyk wees, met die brug in ewewig. Dit wil sê Vbc = 0V;

• As Rx anders as R1 is, sal die brug ongebalanseerd wees en sal die spanning Vbc nul wees.

• Dit is moontlik om aan te toon hoe hierdie variasie moet plaasvind, maar hier sal ons 'n direkte kalibrasie doen wat die waarde wat in die ADC gelees word, in verband bring met 'n massa wat op die laadsel toegepas word.

Stap 6: Amplifikasie

Versterking
Versterking

• Selfs deur die Wheatstone -brug te gebruik om die lesing meer doeltreffend te maak, produseer die mikro -vervormings in die metaal van die lassel klein spanningsvariasies tussen Vbc.

• Om hierdie situasie op te los, gebruik ons twee fases van versterking. Een om die verskil te bepaal en 'n ander om die waarde wat ooreenstem met die ADC van die ESP te pas.

Stap 7: Amplifikasie (skema)

Amplifikasie (skema)
Amplifikasie (skema)

• Die wins van die aftrekstap word gegee deur R6 / R5 en is dieselfde as R7 / R8.

• Die wins van die nie-omkerende laaste stap word deur Pot / R10 gegee

Stap 8: Versameling van data vir kalibrasie

Versameling van data vir kalibrasie
Versameling van data vir kalibrasie
Versameling van data vir kalibrasie
Versameling van data vir kalibrasie

• Nadat ons dit saamgestel het, stel ons die finale versterking in sodat die waarde van die grootste gemete massa naby die maksimum waarde van die ADC is. In hierdie geval, vir 2 kg toegedien in die sel, was die uitsetspanning ongeveer 3V3.

• Vervolgens wissel ons die toegepaste massa (bekend deur 'n saldo en vir elke waarde), en ons assosieer 'n LEITUR van die ADC en kry die volgende tabel.

Stap 9: Verkryging van funksieverhouding tussen gemete massa en die waarde van die ADC verkry

Verkry funksieverhouding tussen gemete massa en die waarde van die ADC verkry
Verkry funksieverhouding tussen gemete massa en die waarde van die ADC verkry

Ons gebruik die PolySolve -sagteware om 'n polinoom te kry wat die verhouding tussen die massa en die waarde van die ADC voorstel.

Stap 10: Bronkode

Bronkode - #ingesluit

Noudat ons weet hoe om die metings te kry en die verband tussen die ADC en die toegepaste massa te ken, kan ons voortgaan met die skryf van die sagteware.

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

Bronkode - #Defines

// Ons kan ook 'n OLED -eenheid met ESP32 gebruik om GPIO's te onderskei: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #definieer SDA 4 #definieer SCL 15 #definieer RST 16 // RST ontwikkel ser ajustado deur sagteware

Bron - Globale veranderlikes en konstantes

SSD1306 -skerm (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

Bronkode - Opstelling ()

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

Bronkode - lus ()

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)) // ons kan meer as 5 segmente {// Envia vir CSV -instellings, sowel as ADC -eienskappe, of vir seriële. 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 // Skep geen buffer om display.clear () te vertoon nie; // Limp o buffer to display // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Gee geen buffer nie 'n massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // kry geen buffer of waarde vir ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } anders // se está ligado a menos de 5 segundos {display.clear (); // limpa o buffer wys 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"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte for Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // oordra of buffer vir vertoning van vertoning (50); }

Bronkode - Funksie 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 * -3320838 * 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 * medida; }

Stap 11: Begin en meet

Begin en meet
Begin en meet

Stap 12: lêers

Laai die lêers af

EK NEE

PDF

Aanbeveel: