Cuprins:

Scară digitală cu ESP32: 12 pași
Scară digitală cu ESP32: 12 pași

Video: Scară digitală cu ESP32: 12 pași

Video: Scară digitală cu ESP32: 12 pași
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Iulie
Anonim
Image
Image
Resurse utilizate
Resurse utilizate

V-ați gândit vreodată să montați o cântare digitală utilizând un ESP32 și un senzor (cunoscut sub numele de celulă de încărcare)? Astăzi, vă voi arăta cum să faceți acest lucru printr-un proces care permite și alte teste de laborator, cum ar fi identificarea forței pe care o efectuează un motor asupra unui punct, printre alte exemple.

Voi demonstra apoi câteva concepte legate de utilizarea celulelor de încărcare, voi captura date celulare pentru a construi un exemplu de scară și voi arăta alte posibile aplicații ale celulelor de încărcare.

Pasul 1: Resurse utilizate

• Heltec Lora 32 WiFi ESP

• Celula de încărcare (de la 0 la 50 de newtoni, utilizând o scală)

• 1 potențiometru de 100k (mai bine dacă utilizați un trimpot multivolt pentru reglarea fină)

• 1 Amp Op LM358

• 2 rezistențe 1M5

• 2 rezistențe de 10k

• 1 rezistor 4k7

• Fire

• Un Protoboard

• Un cablu USB pentru ESP

• Un cântar, recipient cu volum gradat sau orice altă metodă de calibrare.

Pasul 2: demonstrație

Demonstrație
Demonstrație

Pasul 3: Încărcați celulele

Încărcați celulele
Încărcați celulele

• Sunt traductoare de forță.

• Pot folosi diverse metode pentru a traduce forța aplicată într-o magnitudine proporțională care poate fi utilizată ca măsură. Printre cele mai frecvente se numără cele care utilizează extensometre cu foi, efectul piezoelectric, hidraulică, corzi vibrante etc.

• Pot fi clasificate și după forma de măsurare (tensiune sau compresie)

Pasul 4: Încărcați celulele și aparatele de tensiune

Încărcați celulele și aparatele de tensiune
Încărcați celulele și aparatele de tensiune
Încărcați celulele și aparatele de tensiune
Încărcați celulele și aparatele de tensiune

• Extensometrele pentru foi sunt pelicule (de obicei din plastic) cu o sârmă tipărită care au o rezistență care poate varia în funcție de schimbarea dimensiunii lor.

• Construcția sa vizează în principal transformarea unei deformări mecanice într-o variație de magnitudine electrică (rezistență). Acest lucru are loc de preferință într-o singură direcție, astfel încât să poată fi efectuată evaluarea componentelor. Pentru aceasta, combinația mai multor extensometre este obișnuită

• Când este atașat corespunzător de un corp, deformarea acestuia este egală cu cea a corpului. Astfel, rezistența sa variază în funcție de deformarea corpului, care la rândul său este legată de forța de deformare.

• Sunt, de asemenea, cunoscute sub numele de aparate de măsură.

• Când sunt întinse de o forță de întindere, firele se alungesc și se îngustează, crescând rezistența.

• Când sunt comprimate de o forță de compresie, firele se scurtează și se lărgesc, reducând rezistența.

Pasul 5: Podul Wheatstone

Podul Wheatstone
Podul Wheatstone

• Pentru o măsurare mai precisă și pentru a permite o detectare mai eficientă a variației rezistenței într-o celulă de sarcină, dispozitivul de măsurare a tensiunii este asamblat într-un pod Wheatstone.

• În această configurație, putem determina variația rezistenței prin dezechilibrul podului.

• Dacă R1 = Rx și R2 = R3, divizoarele de tensiune vor fi egale, iar tensiunile Vc și Vb vor fi de asemenea egale, cu puntea în echilibru. Adică Vbc = 0V;

• Dacă Rx este altul decât R1, puntea va fi dezechilibrată și tensiunea Vbc va fi diferită de zero.

• Este posibil să se arate cum ar trebui să apară această variație, dar aici vom face o calibrare directă, raportând valoarea citită în ADC la o masă aplicată celulei de încărcare.

Pasul 6: Amplificare

Amplificare
Amplificare

• Chiar și folosind puntea Wheatstone pentru a face citirea mai eficientă, micro-deformările din metalul celulei de sarcină produc mici variații de tensiune între Vbc.

• Pentru a rezolva această situație, vom folosi două etape de amplificare. Una pentru a determina diferența și alta pentru a potrivi valoarea obținută cu ADC-ul ESP.

Pasul 7: Amplificare (schemă)

Amplificare (schemă)
Amplificare (schemă)

• Câștigul etapei de scădere este dat de R6 / R5 și este același cu R7 / R8.

• Câștigul pasului final care nu se inversează este dat de Pot / R10

Pasul 8: Colectarea datelor pentru calibrare

Colectarea datelor pentru calibrare
Colectarea datelor pentru calibrare
Colectarea datelor pentru calibrare
Colectarea datelor pentru calibrare

• Odată asamblat, stabilim câștigul final astfel încât valoarea celei mai mari mase măsurate să fie aproape de valoarea maximă a ADC. În acest caz, pentru 2 kg aplicate în celulă, tensiunea de ieșire a fost de aproximativ 3V3.

• În continuare, vom varia masa aplicată (cunoscută printr-o balanță și pentru fiecare valoare) și vom asocia un LEITUR al ADC, obținând tabelul următor.

Pasul 9: Obținerea funcției Relația dintre masa măsurată și valoarea ADC obținută

Obținerea funcției Relația dintre masa măsurată și valoarea ADC obținută
Obținerea funcției Relația dintre masa măsurată și valoarea ADC obținută

Folosim software-ul PolySolve pentru a obține un polinom care reprezintă relația dintre masă și valoarea ADC.

Pasul 10: Cod sursă

Cod sursă - # Include

Acum că avem cum să obținem măsurătorile și să cunoaștem relația dintre ADC și masa aplicată, putem trece la scrierea efectivă a software-ului.

// Bibliotecas pentru utilizare do display oLED # include // Necesar apenas for o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Cod sursă - #Defines

// Os pinos do OLED este conectat la ESP32 pentru următorii GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST trebuie să fie ajustat prin software

Sursă - Variabile și constante globale

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

Cod sursă - Configurare ()

void setup () {pinMode (pin, INPUT); // pino de leitura analogică Serial.begin (115200); // iniciando a serial // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Cod sursă - Buclă ()

void loop () {float medidas = 0.0; // variável para manipular as mesures 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 contendo o instante, a măsură media do ADC e o valor em gramas // para a Serial. Serial.print (milis () / 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 buffer do display // ajusta o aliniament pentru a stânga display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte pentru Arial 16 display.setFont (ArialMT_Plain_16); // Screve no buffer do display a massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // escreve no 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 aliniament pentru a afișa stânga.setFont (ArialMT_Plain_24); // ajusta a fonte pentru Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte pentru Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // transfere o buffer para o display delay (50); }

Cod sursă - Funcția calculaMassa ()

// funcție pentru calculul de masă obținut pela regresie // folosind oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.748108838320e-07 * măsură * măsură * măsură + 1.796252359323e-10 * măsură * măsură * măsură * măsură + -3.995722708150e-14 * măsură * măsură * măsură * măsură * măsură * măsură + 3.284692453344e-18 * măsură * măsură * măsură * măsură * măsură * măsură * măsură; }

Pasul 11: Pornire și măsurare

Pornire și măsurare
Pornire și măsurare

Pasul 12: Fișiere

Descărcați fișierele

EU NU

PDF

Recomandat: