ESP8266 Cảm biến lực

Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 với cảm biến lực. Cụ thể, chúng ta sẽ tìm hiểu:

Như một ứng dụng điển hình, bạn có thể đặt đồ lên cảm biến lực, và sau đó nếu ESP8266 phát hiện sự thay đổi lực, điều đó có nghĩa là ai đó đã lấy đồ của bạn.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
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
1×10 kΩ Resistor
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

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

Về cảm biến lực

bố trí chân cảm biến lực

Cảm biến lực được gọi là điện trở cảm ứng lực, điện trở nhạy với lực, hoặc đơn giản là FSR. Về cơ bản, nó là một điện trở có giá trị điện trở thay đổi theo lượng áp lực được tác dụng. Cảm biến lực có các đặc tính sau:

  • Nó rẻ và dễ sử dụng.
  • Nó hiệu quả trong việc phát hiện áp lực vật lý và sự bóp ép.
  • Nó không phù hợp để xác định trọng lượng mà nó đang chịu.

Cảm biến lực được sử dụng trong nhiều loại điện tử di động, ví dụ như trống điện tử, điện thoại di động và thiết bị chơi game cầm tay.

Sơ đồ các chân của cảm biến lực

Một cảm biến lực có hai chân, và vì nó là một loại điện trở, nên không cần phân biệt giữa chúng. Cả hai chân đều đối xứng.

Cách hoạt động

Cảm biến lực về cơ bản là một điện trở có thể thay đổi điện trở tùy thuộc vào lượng áp lực được tác dụng. Áp lực càng lớn thì điện trở giữa hai chân càng giảm.

Sơ đồ đấu dây

sơ đồ kết nối ESP8266 NodeMCU force

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

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

Chúng ta có thể kết nối cảm biến lực với một chân đầu vào analog của ESP8266, và sau đó sử dụng hàm analogRead() để đọc giá trị analog từ chân đó. Điều này cho phép chúng ta xác định mức độ ấn của cảm biến lực.

Mã ESP8266

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-force-sensor */ #define FORCE_SENSOR_PIN A0 // The ESP8266 pin ADC0: the FSR and 10K pulldown are connected to A0 void setup() { Serial.begin(9600); } 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); }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các thành phần như được hiển thị trong sơ đồ.
  • Kết nối board ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 đúng, ví dụ: NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Sao chép mã và mở nó bằng Arduino IDE.
  • Nhấn nút Tải lên trong IDE để tải mã lên ESP8266.
  • Nhấn cảm biến lực.
  • Kiểm tra đầu ra trên Serial Monitor.
COM6
Send
Force sensor reading = 0 -> no pressure Force sensor reading = 0 -> no pressure Force sensor reading = 132 -> light touch Force sensor reading = 147 -> light touch Force sensor reading = 394 -> light squeeze Force sensor reading = 421 -> light squeeze Force sensor reading = 607 -> medium squeeze Force sensor reading = 791 -> medium squeeze Force sensor reading = 921 -> big squeeze Force sensor reading = 987 -> big squeeze Force sensor reading = 0 -> no pressure Force sensor reading = 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() để lấy dữ liệu từ một ADC (Bộ chuyển đổi tín hiệu tương tự sang số) được kết nối với một cảm biến hoặc một bộ phận khác. ADC của ESP8266 hoạt động tốt cho các dự án mà bạn không cần độ chính xác cao. Tuy nhiên, hãy nhớ rằng ADC của ESP8266 không quá chính xác cho các phép đo chi tiết. Nếu dự án của bạn cần độ chính xác rất cao, bạn có thể muốn sử dụng một ADC riêng như ADS1115 với ESP8266, hoặc sử dụng Arduino như Arduino Uno R4 WiFi, vốn có một ADC đáng tin cậy hơn.

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.