Mục lục:

Quy mô kỹ thuật số với ESP32: 12 bước
Quy mô kỹ thuật số với ESP32: 12 bước

Video: Quy mô kỹ thuật số với ESP32: 12 bước

Video: Quy mô kỹ thuật số với ESP32: 12 bước
Video: Điều khiển 8 thiết bị dùng blynk iot và esp32 - hướng dẫn sử dụng blynk iot - blynk 2.0 2024, Tháng mười một
Anonim
Image
Image
Tài nguyên được sử dụng
Tài nguyên được sử dụng

Bạn đã bao giờ nghĩ đến việc gắn một cân kỹ thuật số bằng cách sử dụng ESP32 và cảm biến (được gọi là cảm biến lực)? Hôm nay, tôi sẽ chỉ cho bạn cách thực hiện điều này thông qua một quy trình cũng cho phép thực hiện các thử nghiệm khác trong phòng thí nghiệm, chẳng hạn như xác định lực mà động cơ thực hiện trên một điểm, trong số các ví dụ khác.

Sau đó, tôi sẽ trình bày một số khái niệm liên quan đến việc sử dụng cảm biến lực, thu thập dữ liệu tế bào để xây dựng thang đo mẫu và chỉ ra các ứng dụng có thể có khác của cảm biến lực.

Bước 1: Tài nguyên được sử dụng

• Heltec Lora 32 WiFi ESP

• Cảm biến lực (0 đến 50 newton, sử dụng thang điểm)

• 1 chiết áp 100k (tốt hơn nếu bạn sử dụng trimpot multivolt để điều chỉnh tốt)

• 1 Amp Op LM358

• 2 điện trở 1M5

• 2 điện trở 10k

• 1 điện trở 4k7

• Dây điện

• Một Protoboard

• Cáp USB cho ESP

• Cân, vật chứa có chia vạch thể tích hoặc bất kỳ phương pháp hiệu chuẩn nào khác.

Bước 2: Trình diễn

Trình diễn
Trình diễn

Bước 3: Tải tế bào

Tế bào tải
Tế bào tải

• Chúng là bộ chuyển đổi lực.

• Họ có thể sử dụng nhiều phương pháp khác nhau để chuyển lực tác dụng thành một độ lớn tỷ lệ để có thể dùng làm thước đo. Trong đó phổ biến nhất là những loại sử dụng máy đo độ giãn dạng tấm, hiệu ứng áp điện, thủy lực, dây rung, v.v.

• Chúng cũng có thể được phân loại theo dạng đo lường (độ căng hoặc độ nén)

Bước 4: Load Cells và Strain Gauges

Cảm biến lực và đồng hồ đo độ căng
Cảm biến lực và đồng hồ đo độ căng
Cảm biến lực và đồng hồ đo độ căng
Cảm biến lực và đồng hồ đo độ căng

• Máy đo độ giãn dạng tấm là những tấm phim (thường là nhựa) với một dây in có điện trở có thể thay đổi theo sự thay đổi kích thước của chúng.

• Cấu tạo của nó chủ yếu nhằm mục đích biến một biến dạng cơ học thành một biến thể của độ lớn điện (điện trở). Điều này tốt nhất xảy ra theo một hướng duy nhất, để có thể thực hiện đánh giá thành phần. Đối với điều này, sự kết hợp của một số máy đo độ mở rộng là phổ biến

• Khi được gắn đúng cách vào một cơ thể, độ biến dạng của nó tương đương với độ biến dạng của cơ thể. Do đó, lực cản của nó thay đổi theo độ biến dạng của cơ thể, do đó liên quan đến lực làm biến dạng.

• Chúng còn được gọi là máy đo biến dạng.

• Khi bị kéo căng bởi một lực kéo, các sợi sẽ kéo dài ra và thu hẹp lại, làm tăng lực cản.

• Khi bị nén bởi một lực nén, các dây dẫn ngắn lại và rộng ra, làm giảm điện trở.

Bước 5: Cầu Wheatstone

Cầu Wheatstone
Cầu Wheatstone

• Để có phép đo chính xác hơn và cho phép phát hiện hiệu quả hơn sự thay đổi điện trở trong cảm biến lực, máy đo biến dạng được lắp ráp vào một cầu Wheatstone.

• Trong cấu hình này, chúng ta có thể xác định sự thay đổi của điện trở thông qua sự mất cân bằng cầu.

• Nếu R1 = Rx và R2 = R3, các đầu phân áp sẽ bằng nhau, và các điện áp Vc và Vb cũng sẽ bằng nhau, với cầu ở trạng thái cân bằng. Tức là, Vbc = 0V;

• Nếu Rx khác R1, cầu sẽ không cân bằng và điện áp Vbc sẽ khác không.

• Có thể cho thấy sự thay đổi này sẽ xảy ra như thế nào, nhưng ở đây, chúng tôi sẽ thực hiện hiệu chuẩn trực tiếp, liên hệ giá trị đọc được trong ADC với khối lượng được áp dụng cho cảm biến lực.

Bước 6: Khuếch đại

Khuếch đại
Khuếch đại

• Ngay cả khi sử dụng cầu Wheatstone để đọc hiệu quả hơn, các biến dạng vi mô trong kim loại của cảm biến lực sẽ tạo ra các biến thể điện áp nhỏ giữa Vbc.

• Để giải quyết tình huống này, chúng ta sẽ sử dụng hai giai đoạn khuếch đại. Một để xác định sự khác biệt và một để khớp với giá trị thu được với ADC của ESP.

Bước 7: Khuếch đại (lược đồ)

Khuếch đại (lược đồ)
Khuếch đại (lược đồ)

• Mức tăng của bước trừ được cho bởi R6 / R5 và giống như R7 / R8.

• Độ lợi của bước cuối cùng không đảo được đưa ra bởi Pot / R10

Bước 8: Thu thập dữ liệu để hiệu chuẩn

Thu thập dữ liệu để hiệu chuẩn
Thu thập dữ liệu để hiệu chuẩn
Thu thập dữ liệu để hiệu chuẩn
Thu thập dữ liệu để hiệu chuẩn

• Sau khi lắp ráp, chúng tôi đặt độ lợi cuối cùng để giá trị của khối lượng đo được lớn nhất gần với giá trị lớn nhất của ADC. Trong trường hợp thIS, đối với 2kg được áp dụng trong tế bào, điện áp đầu ra là khoảng 3V3.

• Tiếp theo, chúng tôi thay đổi khối lượng áp dụng (được biết thông qua số dư và cho từng giá trị), và chúng tôi kết hợp LEITUR của ADC, thu được bảng tiếp theo.

Bước 9: Chức năng thu được Mối quan hệ giữa khối lượng đo được và giá trị ADC thu được

Chức năng thu được Mối quan hệ giữa khối lượng đo được và giá trị ADC thu được
Chức năng thu được Mối quan hệ giữa khối lượng đo được và giá trị ADC thu được

Chúng tôi sử dụng phần mềm PolySolve để thu được một đa thức biểu thị mối quan hệ giữa khối lượng và giá trị của ADC.

Bước 10: Mã nguồn

Mã nguồn - #Includes

Bây giờ chúng ta có cách lấy các phép đo và biết mối quan hệ giữa ADC và khối lượng áp dụng, chúng ta có thể chuyển sang viết phần mềm.

// Bibliotecas para useização do display oLED # include // N Cần thiết apenas para o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Mã nguồn - #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 por phần mềm

Nguồn - Biến và hằng số toàn cầu

Màn hình 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

Mã nguồn - Thiết lập ()

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

Mã nguồn - Vòng lặp ()

void loop () {float medidas = 0.0; // variável para thao tác as medidas 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 medida média do ADC e o valor em gramas // para a Serial. Serial.print (millis () / 1000.0, 0); // ngay em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((massa), 1); // massa em gramas // Không có bộ đệm Escreve do display display.clear (); // Limpa o buffer do display // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve không có bộ đệm nào hiển thị 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 vùng đệm do display display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para a esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // transfere o buffer para o display delay (50); }

Mã nguồn - Hàm CalculaMassa ()

// 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.748108838320 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; }

Bước 11: Khởi động và đo lường

Khởi động và Đo lường
Khởi động và Đo lường

Bước 12: Tập tin

Tải xuống các tệp

NS

PDF

Đề xuất: