Სარჩევი:

შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!: 11 ნაბიჯი
შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!: 11 ნაბიჯი

ვიდეო: შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!: 11 ნაბიჯი

ვიდეო: შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!: 11 ნაბიჯი
ვიდეო: 🙌🏻✔️ვიდეო, რომელიც ყველა ქალმა უნდა ნახოს! 2024, ივლისი
Anonim
შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!
შეიტყვეთ აქ უაღრესად მნიშვნელოვანი სენსორის შესახებ!

როგორ შეგიძლიათ გაიგოთ წყლის დონის შესახებ წყლის ავზში? ამ ტიპის ნივთების მონიტორინგისთვის შეგიძლიათ გამოიყენოთ წნევის სენსორი. ეს არის ძალიან სასარგებლო მოწყობილობა ზოგადად სამრეწველო ავტომატიზაციისთვის. დღეს ჩვენ ვისაუბრებთ MPX წნევის სენსორების ამ ოჯახზე, განსაკუთრებით წნევის გაზომვისთვის. მე გაგაცნობთ MPX5700 წნევის სენსორს და შევასრულებ ნიმუშის შეკრებას ESP WiFi LoRa 32 გამოყენებით.

დღეს მე არ გამოვიყენებ LoRa კომუნიკაციას წრეში, არც WiFi და არც Bluetooth. თუმცა, მე შევარჩიე ეს ESP32, რადგან მე უკვე ვასწავლე სხვა ვიდეოებში როგორ გამოვიყენო ყველა ის თვისება, რასაც დღეს განვიხილავ.

ნაბიჯი 1: დემონსტრაცია

დემონსტრაცია
დემონსტრაცია
დემონსტრაცია
დემონსტრაცია

ნაბიჯი 2: გამოყენებული რესურსები

გამოყენებული რესურსები
გამოყენებული რესურსები

• MPX5700DP დიფერენციალური წნევის სენსორი

• 10 კ პოტენომეტრი (ან ტრიმპოტი)

• პროტობორდი

• დამაკავშირებელი მავთულები

• USB კაბელი

• ESP WiFi LoRa 32

• ჰაერის კომპრესორი (სურვილისამებრ)

ნაბიჯი 3: რატომ გავზომოთ წნევა?

რატომ გავზომოთ წნევა?
რატომ გავზომოთ წნევა?

• არსებობს უამრავი პროგრამა, სადაც წნევა არის მნიშვნელოვანი კონტროლის ცვლადი.

• ჩვენ შეგვიძლია ჩავრთოთ პნევმატური ან ჰიდრავლიკური მართვის სისტემები.

• სამედიცინო აპარატურა.

• რობოტიკა

• სამრეწველო თუ გარემოსდაცვითი პროცესების კონტროლი.

• დონის გაზომვა თხევადი ან გაზის რეზერვუარებში.

ნაბიჯი 4: წნევის სენსორების MPX ოჯახი

MPX წნევის სენსორების ოჯახი
MPX წნევის სენსორების ოჯახი

• ისინი არიან ელექტრული ძაბვის წნევის გადამცემები.

• ისინი დაფუძნებულია პიეზო რეზისტენტულ სენსორზე, სადაც შეკუმშვა გარდაიქმნება ელექტრული წინააღმდეგობის ვარიაციად.

• არსებობს ვერსიები, რომელთაც შეუძლიათ გაზომონ წნევის მცირე განსხვავებები (0 -დან 0,04 ატმ -მდე), ან დიდი ვარიაციები (0 -დან 10 ათმ -მდე).

• ისინი გამოჩნდება მრავალ პაკეტში.

• მათ შეუძლიათ გაზომონ აბსოლუტური წნევა (ვაკუუმთან შედარებით), დიფერენციალური წნევა (განსხვავება ორ წნევას შორის, p1 და p2), ან ლიანდაგი (ატმოსფერულ წნევასთან შედარებით).

ნაბიჯი 5: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• 5700 სერიას აქვს აბსოლუტური, დიფერენციალური და ლიანდაგის სენსორები.

• MPX5700DP- ს შეუძლია გაზომოთ დიფერენციალური წნევა 0 -დან 700kPa- მდე (დაახლოებით 7 ატმ).

• გამომავალი ძაბვა მერყეობს 0.2 ვ -დან 4.7 ვ -მდე.

• მისი სიმძლავრეა 4.75 ვ -დან 5.25 ვ -მდე

ნაბიჯი 6: დემონსტრაციისთვის

დემონსტრაციისთვის
დემონსტრაციისთვის

• ამჯერად, ჩვენ არ გავაკეთებთ პრაქტიკულ გამოყენებას ამ სენსორის გამოყენებით; ჩვენ მხოლოდ დავამაგრებთ მას და შევასრულებთ გაზომვებს საჩვენებლად.

• ამისათვის ჩვენ გამოვიყენებთ პირდაპირ ჰაერის კომპრესორს, რომ გამოვიყენოთ წნევა მაღალი წნევის შესასვლელში (p1) და მივიღოთ სხვაობა ადგილობრივ ატმოსფერულ წნევასთან (p2).

• MPX5700DP არის ცალმხრივი სენსორი, რაც იმას ნიშნავს, რომ ის ზომავს დადებით განსხვავებებს, სადაც p1 ყოველთვის უნდა იყოს p2– ზე მეტი ან ტოლი.

• p1> p2 და სხვაობა იქნება p1 - p2

• არსებობს ორმხრივი დიფერენციალური სენსორები, რომლებსაც შეუძლიათ შეაფასონ უარყოფითი და დადებითი განსხვავებები.

• მიუხედავად იმისა, რომ ეს მხოლოდ დემონსტრაციაა, ჩვენ შეგვიძლია მარტივად გამოვიყენოთ აქ არსებული პრინციპები, რომ გავაკონტროლოთ, მაგალითად, წნევა ჰაერის რეზერვუარში, ამ კომპრესორით.

ნაბიჯი 7: ESP ADC- ის დაკალიბრება

ESP ADC- ის დაკალიბრება
ESP ADC- ის დაკალიბრება
ESP ADC- ის დაკალიბრება
ESP ADC- ის დაკალიბრება
ESP ADC- ის დაკალიბრება
ESP ADC- ის დაკალიბრება

• ვინაიდან ჩვენ ვიცით, რომ ESP- ის ანალოგიურ-ციფრული გარდაქმნა არ არის მთლად წრფივი და შეიძლება განსხვავდებოდეს ერთი SoC– დან მეორეში, დავიწყოთ მისი ქცევის მარტივი განსაზღვრით.

• პოტენომეტრის და მულტიმეტრის გამოყენებით, ჩვენ გავზომავთ AD- ზე გამოყენებულ ძაბვას და დავუკავშირებთ მას მითითებულ მნიშვნელობას.

• AD– ს წაკითხვისა და ცხრილში ინფორმაციის შეგროვების მარტივი პროგრამით ჩვენ შევძელით მისი ქცევის მრუდის დადგენა.

ნაბიჯი 8: წნევის გამოთვლა

წნევის გაანგარიშება
წნევის გაანგარიშება
წნევის გაანგარიშება
წნევის გაანგარიშება

• მიუხედავად იმისა, რომ მწარმოებელი გვაძლევს ფუნქციას კომპონენტის ქცევით, ყოველთვის მიზანშეწონილია კალიბრაციის განხორციელება, როდესაც ჩვენ ვსაუბრობთ გაზომვებზე.

• თუმცა, ვინაიდან ეს მხოლოდ დემონსტრაციაა, ჩვენ პირდაპირ გამოვიყენებთ მონაცემთა ცხრილში ნაპოვნი ფუნქციას. ამისათვის ჩვენ ვიმუშავებთ ისე, რომ გვაძლევს ზეწოლას, როგორც ADC მნიშვნელობის ფუნქცია.

* დაიმახსოვრეთ, რომ ADC– ზე გამოყენებული ძაბვის ნაწილს საცნობარო ძაბვით უნდა ჰქონდეს იგივე მნიშვნელობა, რაც ADC იკითხება მთლიანი ADC– ით. (შესწორების უგულებელყოფა)

ნაბიჯი 9: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება

• სენსორის დასაკავშირებლად მოძებნეთ ხვრელი მის ერთ ტერმინალში, რომელიც მიუთითებს პინ 1 -ზე.

• ითვლიან იქიდან:

პინი 1 უზრუნველყოფს სიგნალის გამომუშავებას (0V– დან 4.7V– მდე)

პინ 2 არის მითითება. (GND)

მიამაგრეთ ძალა 3. (Vs)

• ვინაიდან სიგნალის გამომუშავება არის 4.7V, ჩვენ გამოვიყენებთ ძაბვის გამყოფს ისე, რომ მაქსიმალური მნიშვნელობა იყოს 3V3- ის ექვივალენტი. ამისათვის ჩვენ გავაკეთეთ კორექტირება პოტენომეტრით.

ნაბიჯი 10: წყაროს კოდი

წყაროს კოდი
წყაროს კოდი
წყაროს კოდი
წყაროს კოდი

წყაროს კოდი: #მოიცავს და #განსაზღვრავს

// ბიბლიოთეკა გამოყენებისათვის oLED #მოიცავს // აუცილებელია // Arduino apenas para o Arduino 1.6.5 და posterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // Os pinos do OLED estão conectados ao ESP32 მიუთითებს GPIO– ს: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #განსაზღვრეთ SDA 4 #განსაზღვრეთ SCL 15 #განსაზღვრეთ RST 16 // RST deve ser ajustado por software

წყარო: გლობალური ცვლადები და მუდმივები

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

წყაროს კოდი: Setup ()

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

წყაროს კოდი: მარყუჟი ()

void loop () {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 for (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// Limpa o buffer do display display.clear (); // ესკვერდას ჩვენებისათვის. setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte 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, სიმებიანი (pressao * fator_atm) + "ატმ"); display.drawString (0, 32, სიმებიანი (pressao * fator_kgf_cm2) + "kgf/cm2"); // არ გაუშვათ ბუფერი o valor do ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos, exibe a teala inicial {// limpa o buffer do display display.clear (); // ცენტრალური ჩვენების ჩვენება. SetTextAlignment (TEXT_ALIGN_CENTER); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // არ არის დაცული ბუფერული display.drawString (64, 0, "Sensor Pressão"); // არ დაიცვას ბუფერული ჩვენება. drawString (64, 18, "Diferencial"); // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_10); // არ არის დაცული ბუფერული ჩვენება. drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // გადატანა ბუფერში ან ჩვენების დაგვიანებით (50); }

წყაროს კოდი: ფუნქცია, რომელიც ითვლის წნევას kPa- ში

float გაანგარიშებაპრესაო (float medida) {// გამოთვლა a pressão com 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) დაბრუნება ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }

- სურათები

წყაროს კოდი: ფუნქცია, რომელიც ასწორებს AD მნიშვნელობას

float corrigeMedida (float 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; }

ნაბიჯი 11: ფაილები

ჩამოტვირთეთ ფაილები:

PDF

ინო

გირჩევთ: