İçindekiler:

ESP32 ile Dijital Tartı: 12 Adım
ESP32 ile Dijital Tartı: 12 Adım

Video: ESP32 ile Dijital Tartı: 12 Adım

Video: ESP32 ile Dijital Tartı: 12 Adım
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Temmuz
Anonim
Image
Image
Kullanılan Kaynaklar
Kullanılan Kaynaklar

ESP32 ve sensör (yük hücresi olarak bilinir) kullanarak dijital bir terazi monte etmeyi hiç düşündünüz mü? Bugün, diğer örneklerin yanı sıra, bir motorun bir noktaya uyguladığı kuvveti belirlemek gibi diğer laboratuvar testlerine de izin veren bir süreçle bunu nasıl yapacağınızı göstereceğim.

Daha sonra yük hücrelerinin kullanımıyla ilgili bazı kavramları göstereceğim, örnek bir ölçek oluşturmak için hücre verilerini yakalayacağım ve yük hücrelerinin diğer olası uygulamalarını göstereceğim.

Adım 1: Kullanılan Kaynaklar

• Heltec Lora 32 WiFi ESP

• Yük hücresi (0 ila 50 Newton, bir ölçek kullanarak)

• 100k'lık 1 potansiyometre (ince ayar için multivolt trimpot kullanırsanız daha iyi olur)

• 1 Amp Op LM358

• 2 1M5 direnç

• 2 adet 10k direnç

• 1 4k7 direnç

• Teller

• Bir Protokol

• ESP için bir USB kablosu

• Bir terazi, dereceli hacimli kap veya başka herhangi bir kalibrasyon yöntemi.

2. Adım: Gösteri

Gösteri
Gösteri

Adım 3: Hücreleri Yükleyin

Yük Hücreleri
Yük Hücreleri

• Kuvvet transdüserleridir.

• Uygulanan kuvveti ölçü olarak kullanılabilecek orantılı bir büyüklüğe çevirmek için çeşitli yöntemler kullanabilirler. En yaygın olanları arasında levha ekstansometreleri, piezoelektrik etkisi, hidrolik, titreşimli teller vb.

• Ölçüm formuna göre de sınıflandırılabilirler (gerginlik veya sıkıştırma)

Adım 4: Yük Hücreleri ve Gerinim Göstergeleri

Yük Hücreleri ve Gerinim Göstergeleri
Yük Hücreleri ve Gerinim Göstergeleri
Yük Hücreleri ve Gerinim Göstergeleri
Yük Hücreleri ve Gerinim Göstergeleri

• Levha ekstansometreleri, boyutlarının değişmesiyle değişebilen direnci olan, baskılı teli olan filmlerdir (genellikle plastik).

• Yapısı temel olarak mekanik bir deformasyonu elektriksel büyüklük (direnç) varyasyonuna dönüştürmeyi amaçlar. Bu tercihen, bileşen değerlendirmesinin gerçekleştirilebilmesi için tek bir yönde gerçekleşir. Bunun için birkaç ekstansometrenin kombinasyonu yaygındır.

• Bir gövdeye düzgün bir şekilde takıldığında, deformasyonu gövdeninkine eşittir. Bu nedenle direnci, vücudun deformasyonuna göre değişir ve bu da deformasyon kuvveti ile ilgilidir.

• Gerinim ölçerler olarak da bilinirler.

• Bir çekme kuvvetiyle gerildiğinde, teller uzar ve daralır, bu da direnci arttırır.

• Bir sıkıştırma kuvveti ile sıkıştırıldığında, teller kısalır ve genişler, bu da direnci azaltır.

Adım 5: Wheatstone Köprüsü

Wheatstone köprüsü
Wheatstone köprüsü

• Daha doğru bir ölçüm için ve bir yük hücresindeki direnç değişiminin daha verimli bir şekilde saptanmasına izin vermek için gerinim ölçer bir Wheatstone köprüsüne monte edilir.

• Bu konfigürasyonda, köprü dengesizliği yoluyla direncin değişimini belirleyebiliriz.

• R1 = Rx ve R2 = R3 ise, gerilim bölücüler eşit olacaktır ve köprü dengedeyken Vc ve Vb gerilimleri de eşit olacaktır. Yani, Vbc = 0V;

• Rx, R1'den farklıysa, köprü dengesiz olacaktır ve Vbc gerilimi sıfır olmayacaktır.

• Bu değişimin nasıl olması gerektiğini göstermek mümkündür, ancak burada ADC'de okunan değeri yük hücresine uygulanan bir kütle ile ilişkilendirerek doğrudan bir kalibrasyon yapacağız.

Adım 6: Amplifikasyon

Amplifikasyon
Amplifikasyon

• Okumayı daha verimli hale getirmek için Wheatstone köprüsü kullanılsa bile, yük hücresinin metalindeki mikro deformasyonlar Vbc arasında küçük voltaj değişimleri üretir.

• Bu durumu çözmek için iki aşamalı amplifikasyon kullanacağız. Biri farkı belirlemek ve diğeri ESP'nin ADC'sine elde edilen değeri eşleştirmek için.

Adım 7: Amplifikasyon (şema)

Amplifikasyon (şema)
Amplifikasyon (şema)

• Çıkarma adımının kazancı R6 / R5 ile verilir ve R7 / R8 ile aynıdır.

• Tersine çevrilmeyen son adımın kazancı Pot / R10 ile verilir.

Adım 8: Kalibrasyon için Verilerin Toplanması

Kalibrasyon için Veri Toplama
Kalibrasyon için Veri Toplama
Kalibrasyon için Veri Toplama
Kalibrasyon için Veri Toplama

• Bir kez birleştirildiğinde, ölçülen en büyük kütlenin değeri ADC'nin maksimum değerine yakın olacak şekilde nihai kazancı ayarlarız. Bu durumda hücreye uygulanan 2 kg için çıkış voltajı 3V3 civarındaydı.

• Ardından, uygulanan kütleyi değiştiririz (bir terazi aracılığıyla ve her değer için bilinir) ve sonraki tabloyu elde ederek ADC'nin bir LEITUR'unu ilişkilendiririz.

Adım 9: Ölçülen Kütle ile Elde Edilen ADC Değeri Arasındaki Fonksiyon İlişkisinin Elde Edilmesi

Ölçülen Kütle ile Elde Edilen ADC Değeri Arasındaki Fonksiyon İlişkisinin Elde Edilmesi
Ölçülen Kütle ile Elde Edilen ADC Değeri Arasındaki Fonksiyon İlişkisinin Elde Edilmesi

ADC'nin kütlesi ve değeri arasındaki ilişkiyi temsil eden bir polinom elde etmek için PolySolve yazılımını kullanıyoruz.

Adım 10: Kaynak Kodu

Kaynak Kodu - #İçerir

Artık ölçümleri nasıl alacağımıza ve ADC ile uygulanan kütle arasındaki ilişkiyi bildiğimize göre, yazılımı gerçekten yazmaya geçebiliriz.

//Arduino 1.6.5 ve anterior için gerekli oLED ekranlarını#include // için gerekli kaynaklar #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Kaynak kodu - #Defines

//OLED pino'ları, OLED bağlantı noktaları ve ESP32 hız aralıkları GPIO's://OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //RST deve ser ajustado por yazılımı

Kaynak - Global Değişkenler ve Sabitler

SSD1306 ekran (0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos "görüntülemek" için nesne yapmak const int amostras = 10000; //número de amostras coletadas para a média const int pin = 13; // pino de leitura

Kaynak Kodu - Kurulum ()

void setup(){ pinMode(pin, INPUT); //pino de leitura analógica Serial.begin(115200); // bir seriyi iniciando // İnicia o ekran display.init(); display.flipScreenVertically(); // Vira a tela dikeymente }

Kaynak Kodu - Döngü ()

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 için (int i = 0; i (5000)) // bir mais que 5 segundos { //Envia um CSV contendo o instante, a media media do ADC e o valor em gramas //para a Serial. Serial.print (milis() / 1000.0, 0); //anında em segundos Serial.print(", "); Serial.print(medidas, 3);//valor médio obtido no ADC Serial.print(", "); Serial.println((kitle), 1); //massa em gramas //Görüntülenecek arabellek çıkarma display.clear(); //Göstergeyi sınırla //göstergeyi değiştir //ekranı değiştir.setTextAlignment(TEXT_ALIGN_LEFT); // Arial 16 display.setFont(ArialMT_Plain_16); //Hiçbir arabellek bir kitle görüntülemez display.drawString(0, 0, "Massa: " + String(int(massa)) + "g"); // ADC işlevinin hiçbir arabellek içermemesi display.drawString(0, 30, "ADC: " + String(int(medidas))); } else // 5 segundos { display.clear(); // arabellek görüntülenmiyor display.setTextAlignment(TEXT_ALIGN_LEFT); //Esquerda display.setFont(ArialMT_Plain_24); // Arial 24'ün yazı tipini ayarlayın display.drawString(0, 0, "Balança"); //arabellek yok display.setFont(ArialMT_Plain_16);//Arial 16 display.drawString(0, 26, "ESP-WiFi-Lora"); //arabellek yok } display.display();//transfere o arabellek para o görüntüleme gecikmesi(50); }

Kaynak Kodu - İşlev hesabıMassa ()

//çoğunlukla para birimi gerilemesi//usando oPolySolve kayan nokta hesaplamasıMassa (yüzer medida) { dönüş -6.798357840659e+01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.748101088 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; }

Adım 11: Başlatma ve Ölçme

Başlatma ve Ölçme
Başlatma ve Ölçme

Adım 12: Dosyalar

Dosyaları indirin

BEN HAYIR

PDF

Önerilen: