Kazalo:

Digitalna tehtnica z ESP32: 12 korakov
Digitalna tehtnica z ESP32: 12 korakov

Video: Digitalna tehtnica z ESP32: 12 korakov

Video: Digitalna tehtnica z ESP32: 12 korakov
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, November
Anonim
Image
Image
Uporabljeni viri
Uporabljeni viri

Ste kdaj razmišljali o namestitvi digitalne tehtnice z uporabo ESP32 in senzorja (znanega kot merilna celica)? Danes vam bom pokazal, kako to storiti s postopkom, ki med drugim omogoča tudi druge laboratorijske teste, na primer ugotavljanje sile, ki jo motor izvaja na točki.

Nato bom prikazal nekaj konceptov, povezanih z uporabo merilnih celic, zajel podatke celic za izdelavo vzorčne lestvice in opozoril na druge možne aplikacije merilnih celic.

1. korak: Uporabljeni viri

• Heltec Lora 32 WiFi ESP

• Naloži celico (0 do 50 newtonov, z uporabo tehtnice)

• 1 potenciometer 100k (bolje, če za natančno nastavitev uporabite večvoltni trimpot)

• 1 ojačevalnik Op LM358

• 2 upora 1M5

• 2 10k uporov

• 1 4k7 upor

• Žice

• Protoboard

• Kabel USB za ESP

• Tehtnica, posoda z merjenim volumnom ali katera koli druga metoda umerjanja.

2. korak: demonstracija

Demonstracija
Demonstracija

3. korak: Naložite celice

Naloži celice
Naloži celice

• So pretvorniki sile.

• Z različnimi metodami lahko uporabljeno silo prevedejo v sorazmerno velikost, ki jo je mogoče uporabiti kot merilo. Med najpogostejšimi so tisti, ki uporabljajo pločevinske ekstenzore, piezoelektrični učinek, hidravliko, vibrirajoče strune itd.

• Lahko jih razvrstimo tudi po obliki merjenja (napetost ali stiskanje)

4. korak: Naložite celice in merilnike napetosti

Merilne celice in merilniki napetosti
Merilne celice in merilniki napetosti
Merilne celice in merilniki napetosti
Merilne celice in merilniki napetosti

• Listni ekstenzometri so folije (običajno plastične) z natisnjeno žico, katerih upor se lahko spreminja glede na njihovo velikost.

• Njena konstrukcija je namenjena predvsem pretvorbi mehanske deformacije v variacijo električne velikosti (upora). To se po možnosti zgodi v eni smeri, tako da je mogoče opraviti oceno komponente. Za to je pogosta kombinacija več ekstenzometrov

• Če je pravilno pritrjen na telo, je njegova deformacija enaka deformaciji telesa. Tako se njegova upornost spreminja z deformacijo telesa, kar je povezano z deformirajočo silo.

• Znani so tudi kot merilniki napetosti.

• Ko se natezna sila raztegne, se prameni podaljšajo in zožijo, kar povečuje upor.

• Ko so tlačne sile stisnjene, se žice skrajšajo in razširijo, kar zmanjša upor.

5. korak: Wheatstoneov most

Wheatstonov most
Wheatstonov most

• Za natančnejše merjenje in učinkovitejše zaznavanje nihanja upora v bremenski celici je merilnik napetosti sestavljen v Wheatstonovem mostu.

• V tej konfiguraciji lahko določimo variacijo upora skozi neravnovesje mostov.

• Če je R1 = Rx in R2 = R3, bodo delilniki napetosti enaki, napetosti Vc in Vb pa enaki, pri čemer bo most v ravnovesju. To pomeni, da je Vbc = 0V;

• Če Rx ni R1, bo most neuravnotežen, napetost Vbc pa nič.

• Možno je prikazati, kako naj bi prišlo do te variacije, vendar bomo tukaj naredili neposredno kalibracijo, ki bo vrednost, prebrano v ADC -ju, povezala z maso, ki se nanaša na merilno celico.

6. korak: Ojačanje

Ojačanje
Ojačanje

• Tudi pri uporabi Wheatstonovega mostu za bolj učinkovito odčitavanje mikro deformacije v kovini merilne celice povzročijo majhna nihanja napetosti med Vbc.

• Za rešitev te situacije bomo uporabili dve stopnji ojačanja. Enega za določitev razlike in drugega za ujemanje dobljene vrednosti z ADC ESP.

7. korak: Ojačitev (shema)

Ojačitev (shema)
Ojačitev (shema)

• Dobiček koraka odštevanja je podan z R6 / R5 in je enak kot R7 / R8.

• Dobiček neinvertirajočega zadnjega koraka je podan z Pot / R10

8. korak: Zbiranje podatkov za kalibracijo

Zbiranje podatkov za kalibracijo
Zbiranje podatkov za kalibracijo
Zbiranje podatkov za kalibracijo
Zbiranje podatkov za kalibracijo

• Ko je sestavljen, nastavimo končni dobiček tako, da je vrednost največje izmerjene mase blizu največje vrednosti ADC. V tem primeru je bila za 2 kg, uporabljena v celici, izhodna napetost okoli 3V3.

• Nato spremenimo uporabljeno maso (znano po tehtnici in za vsako vrednost) in povežemo LEITUR ADC -ja ter dobimo naslednjo tabelo.

9. korak: Pridobivanje funkcionalne povezave med izmerjeno maso in vrednostjo pridobljenega ADC

Pridobivanje funkcijske povezave med izmerjeno maso in vrednostjo pridobljenega ADC
Pridobivanje funkcijske povezave med izmerjeno maso in vrednostjo pridobljenega ADC

S programsko opremo PolySolve dobimo polinom, ki predstavlja razmerje med maso in vrednostjo ADC -ja.

10. korak: izvorna koda

Izvorna koda - #Vključuje

Zdaj, ko imamo na voljo meritve in poznamo razmerje med ADC in uporabljeno maso, lahko preidemo na dejansko pisanje programske opreme.

// Bibliotecas para utilizationção to display oLED #include // Potrebne apene za Arduino 1.6.5 e spredaj #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Izvorna koda - #Defines

// Os pinos do OLED estão conectados ao 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 ali programsko opremo

Vir - Globalne spremenljivke in konstante

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

Izvorna koda - Nastavitev ()

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

Izvorna koda - zanka ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float massa = 0.0; // variaá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 contendo o instante, a medida média do ADC e o valor em gramas // para a Serial. Serijski.tisk (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 do display display.clear (); // Limpa o medpomnilniku za prikaz // ajusta o alinhamento para esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer do display a massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // brez vmesnega pomnilnika ali hrabrosti za ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // se prikaže le 5 sekund {display.clear (); // limpa o vmesnem pomnilniku za prikaz display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // izklopi brez vmesnega prikaza display.setFont (ArialMT_Plain_16); // Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // prenos o vmesnem pomnilniku o o zakasnitvi prikaza (50); }

Izvorna koda - izračun funkcije Massa ()

// 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 + -3.74888 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; }

11. korak: Zagon in merjenje

Zagon in merjenje
Zagon in merjenje

12. korak: Datoteke

Prenesite datoteke

JAZ NE

PDF

Priporočena: