Përmbajtje:

Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm !: 11 Hapa
Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm !: 11 Hapa

Video: Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm !: 11 Hapa

Video: Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm !: 11 Hapa
Video: НОЧЬ В АНОМАЛЬНОЙ ЗОНЕ С ПРИЗРАКАМИ 2024, Korrik
Anonim
Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm!
Mësoni Këtu Rreth Një Sensori Jashtëzakonisht të Rëndësishëm!

Si mund të mësoni për nivelin e ujit në një rezervuar uji? Për të monitoruar këtë lloj gjëje, mund të përdorni një sensor presioni. Kjo është pajisje shumë e dobishme për automatizimin industrial, në përgjithësi. Sot, ne do të flasim për këtë familje të saktë të sensorëve të presionit MPX, veçanërisht për matjen e presionit. Unë do t'ju prezantoj me sensorin e presionit MPX5700 dhe do të kryej një montim mostër duke përdorur ESP WiFi LoRa 32.

Unë nuk do të përdor komunikimin LoRa në qark sot, as WiFi as Bluetooth. Sidoqoftë, unë zgjodha këtë ESP32 sepse kam mësuar tashmë në video të tjera se si të përdorin të gjitha tiparet që diskutoj sot.

Hapi 1: Demonstrim

Demonstrim
Demonstrim
Demonstrim
Demonstrim

Hapi 2: Burimet e përdorura

Burimet e Përdorura
Burimet e Përdorura

• Sensori i presionit diferencial MPX5700DP

• potenciometër 10k (ose trimpot)

• Protoboard

• Telat e lidhjes

• Kabllo USB

• ESP WiFi LoRa 32

• Kompresor ajri (opsional)

Hapi 3: Pse Matni Presionin?

Pse të matni presionin?
Pse të matni presionin?

• Ka aplikime të shumta ku presioni është një variabël i rëndësishëm kontrolli.

• Ne mund të përfshijmë sisteme pneumatike ose hidraulike të kontrollit.

• Instrumentet mjekësore.

• Robotika.

• Kontrolli i proceseve industriale ose mjedisore.

• Matja e nivelit në rezervuarët e lëngjeve ose gazit.

Hapi 4: Familja MP e Sensorëve të Presionit

Familja MP e Sensorëve të Presionit
Familja MP e Sensorëve të Presionit

• Janë dhënës presioni në tension elektrik.

• Ato bazohen në një sensor piezo -rezistent, ku ngjeshja shndërrohet në një variacion të rezistencës elektrike.

• Ka versione të afta për të matur diferencat e vogla të presionit (nga 0 në 0.04atm), ose variacione të mëdha (nga 0 në 10atm).

• Ato shfaqen në pako të shumëfishta.

• Ato mund të matin presionin absolut (në raport me vakumin), presionin diferencial (diferenca midis dy presioneve, p1 dhe p2), ose matës (në raport me presionin atmosferik).

Hapi 5: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• Seria 5700 përmban sensorë absolutë, diferencialë dhe matës.

• MPX5700DP mund të masë një presion diferencial nga 0 në 700kPa (afërsisht 7atm).

• Tensioni i daljes varion nga 0.2V në 4.7V.

• Fuqia e tij është nga 4.75V në 5.25V

Hapi 6: Për demonstrimin

Për Demonstratën
Për Demonstratën

• Këtë herë, ne nuk do të bëjmë një aplikim praktik duke përdorur këtë sensor; ne vetëm do ta montojmë dhe do të kryejmë disa matje si demonstrim.

• Për këtë, ne do të përdorim një kompresor të drejtpërdrejtë ajri për të ushtruar presion në hyrjen e presionit të lartë (p1) dhe për të marrë ndryshimin në lidhje me presionin lokal atmosferik (p2).

• MPX5700DP është një sensor njëdrejtimësh, që do të thotë se mat diferencat pozitive ku p1 gjithmonë duhet të jetë më e madhe ose e barabartë me p2.

• p1> p2 dhe ndryshimi do të jetë p1 - p2

• Ekzistojnë sensorë diferencialë të dyanshëm që mund të vlerësojnë ndryshimet negative dhe pozitive.

• Edhe pse është vetëm një demonstrim, ne lehtë mund t'i përdorim parimet këtu për të kontrolluar, për shembull, presionin në një rezervuar ajri, të mundësuar nga ky kompresor.

Hapi 7: Kalibrimi i ESP ADC

Kalibrimi i ESP ADC
Kalibrimi i ESP ADC
Kalibrimi i ESP ADC
Kalibrimi i ESP ADC
Kalibrimi i ESP ADC
Kalibrimi i ESP ADC

• Meqenëse e dimë që konvertimi analog-dixhital i ESP nuk është plotësisht linear dhe mund të ndryshojë nga një SoC në tjetrin, le të fillojmë duke bërë një përcaktim të thjeshtë të sjelljes së tij.

• Duke përdorur një potenciometër dhe një multimetër, ne do të matim tensionin e aplikuar në AD dhe do ta lidhim atë me vlerën e treguar.

• Me një program të thjeshtë për leximin e AD dhe mbledhjen e informacionit në një tabelë, ne ishim në gjendje të përcaktonim kurbën e sjelljes së tij.

Hapi 8: Llogaritja e Presionit

Llogaritja e Presionit
Llogaritja e Presionit
Llogaritja e Presionit
Llogaritja e Presionit

• Edhe pse prodhuesi na siguron funksionin me sjelljen e komponentit, është gjithmonë e këshillueshme të kryhet një kalibrim kur flasim për marrjen e matjeve.

• Megjithatë, meqenëse është vetëm një demonstrim, ne do të përdorim drejtpërdrejt funksionin që gjendet në fletën e të dhënave. Për këtë, ne do ta manipulojmë atë në një mënyrë që na jep presionin në funksion të vlerës ADC.

* Mos harroni se fraksioni i tensionit të aplikuar në ADC me tensionin e referencës duhet të ketë të njëjtën vlerë si ADC të lexuar nga ADC -ja totale. (Duke mos marrë parasysh korrigjimin)

Hapi 9: Asambleja

Kuvendi
Kuvendi
Kuvendi
Kuvendi

• Për të lidhur sensorin, kërkoni shkallën në njërin prej terminaleve të tij, që tregon pin 1.

• Duke numëruar prej andej:

Pin 1 siguron dalje sinjali (nga 0V në 4.7V)

Pin 2 është referenca. (GND)

Pin 3 për energji. (Vs)

• Meqenëse dalja e sinjalit është 4.7V, ne do të përdorim një ndarës të tensionit në mënyrë që vlera maksimale të jetë ekuivalente me 3V3. Për këtë, ne bëmë rregullimin me potenciometër.

Hapi 10: Kodi Burimor

Kodi Burim
Kodi Burim
Kodi Burim
Kodi Burim

Kodi Burim: #Përfshin dhe #përcakton

// Bibliotekat për përdorimin e shfaqjes së OLED #përfshijnë // Nevojat për përdorim në Arduino 1.6.5 e pasme #përfshijnë "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // Os pinos për OLED estão conectados ao ESP32 ofron zgjedhje të GPIO -ve: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado por software

Burimi: Variablat dhe konstantet globale

Ekrani 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 const float fator_atm = 0.0098692327; // fator de conversão para atmosferas const float fator_bar = 0.01; // fator de conversão para bar const float fator_kgf_cm2 = 0.0101971621; // fator de conversão kgf/cm2

Kodi burim: Setup ()

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

Kodi burim: Loop ()

loop void () {float medidas = 0.0; // variável para manipular as medidas float pressao = 0.0; // variável para armazenar o valor da pressão // inicia a coleta de amostras do ADC për (int i = 0; i (5000)) // shikoni se cilat janë 5 segundos {// Limpa ose buffer do display display.clear (); // austa o alinhamento për një ekran esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // drejtoj një bazë para Arial 10 display.setFont (ArialMT_Plain_16); // Escreve no buffer do display a pressao display.drawString (0, 0, String (int (pressao)) + "kPa"); display.drawString (0, 16, String (pressao * fator_atm) + "atm"); display.drawString (0, 32, String (pressao * fator_kgf_cm2) + "kgf/cm2"); // mos ruani asnjë tampon o trimëri në shfaqjen ADC.drawString (0, 48, "adc:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos, exibe a teicial in {// limpa o buffer do display display.clear (); // Përgjigje për centralizado display.setTextAlignment (TEXT_ALIGN_CENTER); // austa a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // mos ruani asnjë ekran tampon.drawString (64, 0, "Sensor Pressão"); // mos shfaq asnjë ekran tampon.drawString (64, 18, "Diferencial"); // drejtoj një bazë para Arial 10 display.setFont (ArialMT_Plain_10); // mos shfaq asnjë ekran tampon.drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // transferoni një tampon para o vonesës së shfaqjes (50); }

Kodi burim: Funksioni që llogarit presionin në kPa

float calculaPressao (float medida) {// Llogaritni një shtypão o // valor do AD corrigido pela função corrigeMedida () // Esta função foi escrita de acordo com dados do fabricante // e NÃO LEVA EM CONSIDERAÇÃO OS POSSÍVEIS DESVIOS erro) kthimi ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }

- PAMOT

Kodi burim: Funksioni që korrigjon vlerën AD

float corrigeMedida (noton x) { / * Esta função foi obtida através da relação entre a tensão aplicada no AD e valor lido * / return 4.821224180510e-02 + 1.180826610901e-03 * x + -6.640183463236e-07 * 5.235532597676e-10 * x * x * x + -2.020362975028e-13 * x * x * x * x + 3.809807883001e-17 * x * x * x * x * x + -2.896158699016e-21 * x * x * x * x * x * x; }

Hapi 11: Skedarët

Shkarkoni skedarët:

PDF

INO

Recommended: