ESP32 - Druksensor

De druksensor wordt ook wel force sensitive resistor, force sensing resistor, of FSR genoemd. In deze handleiding leert u hoe u een ESP32 met een druksensor gebruikt. We behandelen in detail:

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Druksensor (Force Sensor)
1×10 kΩ weerstand
1×Breadboard (experimenteerprint)
1×Jumper wires (koppel draden)
1×(optioneel) DC Power Jack
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Druksensor

Een druksensor is een weerstand waarvan de weerstand omgekeerd evenredig is met de kracht die erop wordt uitgeoefend. Hoe meer kracht op de sensor wordt uitgeoefend, hoe kleiner de weerstand van de sensor wordt. De druksensor is geschikt voor toepassingen die fysieke knijpen of druk detecteren. Echter, hij is minder geschikt om bijvoorbeeld het gewicht in kilo’s of ponden nauwkeurig te meten.

Druksensor Pinout

Een druksensor heeft twee pinnen. Net als bij een gewone weerstand hoeft u deze pinnen niet van elkaar te onderscheiden.

Force sensor pinout

Aansluitschema tussen Druksensor en ESP32

ESP32 Force Wiring Diagram

This image is created using Fritzing. Click to enlarge image

How to connect ESP32 and force sensor

Hoe Programmeert u de Druksensor

De weerstand is evenredig aan de spanning (voltage). We kunnen de analoge ingang van de ESP32 gebruiken om de spanning te meten.

Door een pin van de druksensor te verbinden met een analoge ingang (analog input pin) kunnen we de analoge waarde uitlezen ⇒ spanning ⇒ weerstand ⇒ kracht (allemaal in relatieve waarden).

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32-bord door te klikken op de Upload knop in Arduino IDE.
  • Druk op de druksensor.
  • Kijk het resultaat in de Seriële Monitor. Het ziet er ongeveer zo uit:
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  

※ Notiz:

Deze handleiding gebruikt de functie analogRead() om waarden te lezen van een ADC (Analog-to-Digital Converter) die verbonden is met de druksensor. De ESP32 ADC is geschikt voor projecten die geen hoge nauwkeurigheid nodig hebben. Voor projecten die precieze metingen vereisen, moet u rekening houden met het volgende:

  • De ESP32 ADC is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elk ESP32-bord kan licht verschillen, dus u moet de ADC kalibreren voor elk apart bord.
  • Kalibratie kan lastig zijn, vooral voor beginners, en geeft mogelijk niet altijd de gewenste exacte resultaten.

Voor zeer nauwkeurige projecten kunt u overwegen een externe ADC (bijvoorbeeld ADS1115) te gebruiken samen met de ESP32, of een Arduino waarbij de ADC betrouwbaarder is. Als u toch de ESP32 ADC wilt kalibreren, verwijzen wij u naar de ESP32 ADC Kalibratie Driver.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!