ESP32 S3 - Kraftsensor

Lernen Sie, wie Sie einen Kraftsensor (FSR) mit Ihrem ESP32 S3 verbinden, um in Ihren Arduino-Projekten physischen Druck und Zusammendrücken zu erkennen. Diese einsteigerfreundliche Anleitung führt Sie durch Verdrahtung, Programmierung und das Auslesen analoger Werte eines kraftempfindlichen Widerstands mit dem ESP32 S3-Board.

Was Sie bauen werden:

  1. Eine Schaltung, die einen kraftempfindlichen Widerstand mit dem Analogeingang des ESP32 S3 verbindet
  2. Einen Sketch, der die ADC-Rohwerte des Kraftsensors in Echtzeit liest
  3. Eine Anzeige im Seriellen Monitor, die Beschreibungen der Druckstärke zusammen mit den numerischen Messwerten zeigt
  4. Eine Grundlage, die Sie zu Alarmen, Griffkraftmessern oder druckgesteuerten Bedienelementen erweitern können
ESP32 S3 - Kraftsensor

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Kraftsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über Force Sensor

Ein Kraftsensor (auch kraftempfindlicher Widerstand oder FSR genannt) ist ein passives Bauteil, dessen Widerstand mit zunehmendem Druck sinkt. Dadurch eignet er sich ideal zur Erkennung von Berührungen, Zusammendrücken und Drücken in Embedded-Projekten. In Kombination mit dem 12-Bit-ADC des ESP32 S3 liefert er Messwerte von 0 bis 4095, die direkt der Druckintensität entsprechen. Da er keine externe Stromversorgung benötigt und wie ein einfacher Widerstand verdrahtet wird, ist er einer der am einfachsten in ein Projekt einzubindenden Analogsensoren.

Wichtige Spezifikationen

  • Widerstandsverhalten: Der Widerstand sinkt, wenn der Druck steigt
  • Funktion: Erkennt physisches Zusammendrücken, Berührung und Druck
  • Ausgangsart: Analogsignal (0–4095 am ESP32 S3)
  • Am besten geeignet für: Berührungserkennung, druckempfindliche Tasten, Griffsensoren
  • Weniger geeignet für: Präzise Gewichtsmessung in Pfund oder Kilogramm
  • Vorteil: Einfach zu verwenden, keine externe Stromversorgung nötig, funktioniert mit Analogpins
  • Einsteigerfreundlich: Einfache Verdrahtung mit nur zwei Pins wie bei einem Widerstand

Pinbelegung des Kraftsensors

Der Kraftsensor hat zwei austauschbare Pins, die sich wie ein variabler Widerstand verhalten — bei FSR-Sensoren spielt die Polarität keine Rolle.

  1. Pin 1: Mit dem Analogeingang oder der oberen Seite einer Spannungsteilerschaltung verbinden
  2. Pin 2: Mit GND oder dem Widerstand im Spannungsteiler-Aufbau verbinden
Pinbelegung des Kraftsensors

Wiring Diagram between Force Sensor and ESP32 S3

Schließen Sie Ihren Kraftsensor über eine Spannungsteilerschaltung an den ESP32 S3 an, damit das Board eine proportionale analoge Spannung statt eines reinen Widerstands lesen kann. Der 10 kΩ-Widerstand liegt zwischen dem zweiten Pin des Sensors und GND und erzeugt eine stabile Mittelpunktspannung, die mit dem ausgeübten Druck steigt.

Sicherheitshinweise

Halten Sie die Signalleitungen kurz und fern von Pfaden mit hohem Strom, um ADC-Rauschen zu vermeiden. Die Analogpins des ESP32 S3 sind nur 3,3 V-tolerant — schließen Sie den Sensor niemals ohne Pegelwandler direkt an 5 V an.

ESP32 S3 Kraftsensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Kraftsensor Pin 1 GPIO4 (Analogeingang)
Kraftsensor Pin 2 GND (über 10kΩ-Widerstand)
10kΩ-Widerstand Zwischen Pin 2 und GND
Versorgung des Teilers 3.3V an Kraftsensor Pin 1

Wie man den Kraftsensor programmiert

Der ESP32 S3 liest die Werte des Kraftsensors über seinen integrierten 12-Bit-ADC, der die Spannung am Analogpin in eine Zahl zwischen 0 und 4095 umwandelt. Ein aus dem FSR und dem 10 kΩ-Widerstand gebildeter Spannungsteiler sorgt dafür, dass die Pinspannung gleichmäßig von nahezu 0 V ohne Druck bis fast 3,3 V bei maximalem Zusammendrücken ansteigt. Der Sketch erfasst diese Werte mit analogRead() und ordnet sie gut lesbaren Druckbeschreibungen zu, die alle 500 Millisekunden im Seriellen Monitor ausgegeben werden.

ESP32 S3 Code

Der folgende Code liest analoge Werte vom Kraftsensor und zeigt die Druckstufen im Seriellen Monitor an.

Der Sketch tastet den Kraftsensor an GPIO4 ab, vergleicht den ADC-Rohwert mit einer Reihe von Schwellenwerten und gibt sowohl den numerischen Messwert als auch eine passende Druckbezeichnung aus, damit Sie sofort verstehen, was jeder Wert bedeutet. Es werden keine Bibliotheken benötigt — nur die integrierten Funktionen analogRead() und Serial aus dem Arduino-Core.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-force-sensor */ #define FORCE_SENSOR_PIN 4 // The ESP32 S3 GPIO4 pin connected to the force resistor void setup() { Serial.begin(115200); // 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); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Arduino IDE installieren: Wenn Sie den ESP32 S3 zum ersten Mal verwenden, lesen Sie wie Sie die Umgebung für den ESP32 S3 in der Arduino IDE einrichten.
  3. Code kopieren: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  4. Board anschließen: Verbinden Sie den ESP32 S3 über ein USB-Typ-C-Kabel mit Ihrem Computer.
  5. Code hochladen: Kompilieren Sie den Code und laden Sie ihn auf das ESP32 S3-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
  6. Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein, um die Messwerte anzuzeigen.
  7. Sensor testen: Drücken Sie mit unterschiedlicher Kraft auf den Kraftsensor.
  8. Ergebnisse beobachten: Prüfen Sie im Seriellen Monitor die analogen Echtzeitwerte und Druckbeschreibungen.
  9. Profi-Tipp: Experimentieren Sie mit verschiedenen Druckstufen, um die Schwellenwerte zu finden, die für Ihre Anwendung am besten funktionieren — jeder FSR hat leicht unterschiedliche Empfindlichkeitseigenschaften.

Ausgabe im Seriellen Monitor

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure The force sensor value = 142 -> light touch The force sensor value = 156 -> light touch The force sensor value = 389 -> light squeeze The force sensor value = 417 -> light squeeze The force sensor value = 623 -> medium squeeze The force sensor value = 798 -> medium squeeze The force sensor value = 934 -> big squeeze The force sensor value = 1002 -> big squeeze The force sensor value = 987 -> big squeeze The force sensor value = 5 -> no pressure The force sensor value = 0 -> no pressure
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der mit einem Sensor oder einer Komponente verbunden ist. Der ADC des ESP32 S3 eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Für Projekte, die präzise Messungen benötigen, sollten Sie jedoch Folgendes beachten:

  • Der ADC des ESP32 S3 ist nicht vollkommen genau und muss für korrekte Ergebnisse möglicherweise kalibriert werden. Jedes ESP32 S3-Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board erforderlich.
  • Die Kalibrierung kann besonders für Einsteiger schwierig sein und liefert nicht immer genau die gewünschten Ergebnisse.

Für Projekte mit hohen Präzisionsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 S3 oder einen anderen Arduino wie den Arduino Uno R4 WiFi verwenden, der einen zuverlässigeren ADC besitzt. Wenn Sie den ADC des ESP32 S3 dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

Anwendungsideen

Der ESP32 S3 und ein Kraftsensor eröffnen eine Vielzahl von Druckmessprojekten in den Bereichen Robotik, Gaming, Gesundheitsüberwachung und Smart-Home-Automatisierung.

  1. Intelligente Türklingel: Erkennen Sie, wenn jemand gegen eine Tür oder ein Paneel drückt
  2. Gamecontroller: Erstellen Sie druckempfindliche Tasten für eigene Gamecontroller
  3. Robotergreifsensoren: Messen Sie, wie fest ein Robotergreifer Objekte hält
  4. Musikinstrumente: Bauen Sie berührungsempfindliche Pads für elektronische Schlagzeuge oder Keyboards
  5. Anwesenheitserkennung: Erkennen Sie, wenn sich jemand auf einen Stuhl setzt oder auf ein Bett legt
  6. Händedruck-Kraftmesser: Messen Sie die Griffkraft für Fitness- oder medizinische Anwendungen
  7. Berührungslampensteuerung: Erstellen Sie dimmbare Leuchten, die auf Berührungsdruck reagieren

Video Section

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.

Fordern Sie sich selbst heraus

Erweitern Sie Ihr ESP32 S3-Kraftsensorprojekt mit diesen aufeinander aufbauenden Herausforderungen, um Ihr Verständnis von analoger Sensorik und Embedded-Steuerung zu vertiefen.

  1. Anfänger: Fügen Sie eine LED hinzu, die leuchtet, wenn der Druck einen Schwellenwert überschreitet
  2. Anfänger: Zeigen Sie statt der analogen Rohwerte die Meldungen "Gedrückt" und "Losgelassen" an
  3. Fortgeschritten: Verwenden Sie mehrere Kraftsensoren, um gleichzeitig Druck an verschiedenen Stellen zu erkennen
  4. Fortgeschritten: Erstellen Sie ein druckaktiviertes Alarmsystem, das bei bestimmten Kraftstufen auslöst
  5. Experte: Bauen Sie ein Datenprotokollierungssystem, das Druckmuster im Zeitverlauf mit Zeitstempeln aufzeichnet
  6. Experte: Kombinieren Sie den Kraftsensor mit einem Servomotor, um Bewegungen abhängig von der Druckintensität zu steuern

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!