ESP32 Force Sensor (Cảm Biến Lực)

Cảm biến lực còn được gọi là điện trở nhạy cảm với lực, điện trở cảm biến lực, hay FSR. Hướng dẫn này sẽ hướng dẫn bạn cách sử dụng ESP32 với cảm biến lực. Chi tiết, chúng ta sẽ học:

Phần Cứng Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×Force Sensor (Cảm Biến Lực)
1×10 kΩ resistor (Điện trở 10kΩ)
1×breadboard (Bo mạch thí nghiệm)
1×dây jumper (Dây nối)
1×(Tùy chọn) DC Power Jack
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Lực

Cảm biến lực là một điện trở có độ trở tỷ lệ nghịch với lực tác dụng lên nó. Càng có nhiều lực tác dụng lên cảm biến, điện trở của cảm biến càng nhỏ. Cảm biến lực rất phù hợp cho các ứng dụng phát hiện áp lực vật lý, sức ép. Tuy nhiên, nó không tốt cho những ứng dụng cần tìm trọng lượng chính xác bao nhiêu pound.

Pinout Cảm Biến Lực

Cảm biến lực có hai chân. Giống như một điện trở, chúng ta KHÔNG cần phân biệt các chân này.

cảm biến lực sơ đồ chân

Sơ Đồ Kết Nối Giữa Cảm Biến Lực và ESP32

  • Cách kết nối ESP32 và cảm biến lực sử dụng breadboard
ESP32 force sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

how to connect ESP32 and cảm biến lực

Cách Lập Trình Cảm Biến Lực

Điện trở tỷ lệ với điện áp. Chúng ta có thể sử dụng chân analog input của ESP32 để đo điện áp.

Bằng cách kết nối một chân của cảm biến lực với chân analog input, chúng ta có thể đọc giá trị analog từ chân đó ⇒ điện áp ⇒ điện trở ⇒ lực (tất cả đều là giá trị tương đối)

Mã Nguồn ESP32

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-force-sensor */ #define FORCE_SENSOR_PIN 36 // ESP32 pin GPIO36 (ADC0): the FSR and 10K pulldown are connected to A0 void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int analogReading = analogRead(FORCE_SENSOR_PIN); Serial.print("The force sensor value = "); Serial.print(analogReading); // print the raw analog reading if (analogReading < 10) // from 0 to 9 Serial.println(" -> no pressure"); else if (analogReading < 200) // from 10 to 199 Serial.println(" -> light touch"); else if (analogReading < 500) // from 200 to 499 Serial.println(" -> light squeeze"); else if (analogReading < 800) // from 500 to 799 Serial.println(" -> medium squeeze"); else // from 800 to 1023 Serial.println(" -> big squeeze"); delay(1000); }

Các Bước Nhanh

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Sao chép đoạn code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách nhấn nút Upload trên Arduino IDE
  • Nhấn vào cảm biến lực
  • Xem kết quả trên Serial Monitor. Nó sẽ trông như sau:
COM6
Send
The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure The force sensor value = 132 -> light touch The force sensor value = 147 -> light touch The force sensor value = 394 -> light squeeze The force sensor value = 421 -> light squeeze The force sensor value = 607 -> medium squeeze The force sensor value = 791 -> medium squeeze The force sensor value = 921 -> big squeeze The force sensor value = 987 -> big squeeze The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Lưu ý:

Hướng dẫn này sử dụng hàm analogRead() để đọc giá trị từ ADC (Analog-to-Digital Converter) kết nối với cảm biến lực. ESP32 ADC phù hợp cho các dự án KHÔNG cần độ chính xác cao. Tuy nhiên, đối với những dự án cần đo lường chính xác, hãy lưu ý:

  • ESP32 ADC không hoàn toàn chính xác và có thể cần hiệu chuẩn để có kết quả đúng. Mỗi board ESP32 có thể khác nhau một chút, vì vậy bạn cần hiệu chuẩn ADC cho từng board riêng lẻ.
  • Việc hiệu chuẩn có thể khó khăn, đặc biệt với người mới bắt đầu, và có thể không luôn cho kết quả chính xác như mong muốn.

Đối với các dự án cần độ chính xác cao, hãy cân nhắc sử dụng ADC ngoài (ví dụ ADS1115) với ESP32 hoặc sử dụng Arduino, có ADC đáng tin cậy hơn. Nếu bạn vẫn muốn hiệu chuẩn ESP32 ADC, tham khảo ESP32 ADC Calibration Driver

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tài Liệu Tham Khảo Ngôn Ngữ

Bình Luận