ESP32 S3 - Capteur de force

Découvrez comment interfacer un capteur de force (FSR) avec votre ESP32 S3 pour détecter une pression physique et un serrage dans vos projets Arduino. Ce guide adapté aux débutants vous accompagne à travers le câblage, la programmation et la lecture des valeurs analogiques d'une résistance sensible à la force à l'aide de la carte ESP32 S3.

Ce que vous allez construire :

  1. Un circuit qui connecte une résistance sensible à la force à l'entrée analogique de l'ESP32 S3
  2. Un sketch qui lit les valeurs ADC brutes du capteur de force en temps réel
  3. Un affichage Serial Monitor montrant des descriptions du niveau de pression avec les valeurs numériques
  4. Une base que vous pouvez étendre en alarmes, mesureurs de poigne ou commandes activées par pression
ESP32 S3 - Force Sensor

À propos du capteur de force

Un capteur de force (aussi appelé résistance sensible à la force ou FSR) est un composant passif dont la résistance diminue lorsque la pression augmente, ce qui le rend idéal pour détecter le toucher, le serrage et la poussée dans les projets embarqués. Associé à l'ADC 12 bits de l'ESP32 S3, il fournit des lectures de 0 à 4095 qui correspondent directement à l'intensité de la pression. Comme il ne nécessite aucune alimentation externe et se câble comme une simple résistance, c'est l'un des capteurs analogiques les plus faciles à ajouter à n'importe quel projet.

Spécifications clés

  • Comportement de la résistance : la résistance diminue lorsque la pression augmente
  • Fonction : détecte le serrage physique, le toucher et la pression
  • Type de sortie : signal analogique (0-4095 sur l'ESP32 S3)
  • Idéal pour : détection du toucher, boutons sensibles à la pression, capteurs de poigne
  • Pas idéal pour : mesure précise du poids en livres ou en kilogrammes
  • Avantage : simple à utiliser, aucune alimentation externe nécessaire, fonctionne avec les broches analogiques
  • Facile pour les débutants : câblage simple avec seulement deux broches comme une résistance

Brochage du capteur de force

Le capteur de force a deux broches interchangeables qui se comportent comme une résistance variable - la polarité n'a pas d'importance pour les capteurs FSR.

  1. Broche 1 : connectez-la à l'entrée analogique ou au côté haut d'un circuit diviseur de tension
  2. Broche 2 : connectez-la à GND ou à la résistance dans le montage du diviseur de tension
Force sensor pinout

Schéma de câblage entre le capteur de force et l'ESP32 S3

Connectez votre capteur de force à l'ESP32 S3 à l'aide d'un circuit diviseur de tension afin que la carte puisse lire une tension analogique proportionnelle plutôt qu'une résistance brute. La résistance de 10 kΩ se trouve entre la deuxième broche du capteur et GND, créant une tension médiane stable qui augmente avec la pression appliquée.

Consignes de sécurité

Gardez les fils de signal courts et éloignés des chemins à fort courant pour éviter le bruit sur l'ADC. Les broches analogiques de l'ESP32 S3 tolèrent 3,3 V - ne connectez jamais le capteur directement à 5 V sans convertisseur de niveau.

ESP32 S3 Force Sensor Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche 1 du capteur de force GPIO4 (entrée analogique)
Broche 2 du capteur de force GND (via résistance de 10kΩ)
Résistance 10kΩ entre la broche 2 et GND
Alimentation du diviseur 3.3V vers la broche 1 du capteur de force

Comment programmer le capteur de force

L'ESP32 S3 lit les valeurs du capteur de force via son ADC 12 bits intégré, convertissant la tension à la broche analogique en un nombre entre 0 et 4095. Un diviseur de tension formé par le FSR et la résistance de 10 kΩ garantit que la tension de la broche augmente en douceur, de près de 0 V en l'absence de pression jusqu'à près de 3,3 V sous une pression maximale. Le sketch utilise analogRead() pour capturer ces valeurs et les associe à des descriptions de pression lisibles par l'humain, affichées dans le Serial Monitor toutes les 500 millisecondes.

Code ESP32 S3

Le code suivant lit les valeurs analogiques du capteur de force et affiche les niveaux de pression dans le Serial Monitor.

Le sketch échantillonne le capteur de force sur GPIO4, compare la valeur ADC brute à un ensemble de seuils, et affiche à la fois la lecture numérique et une étiquette de pression correspondante afin que vous compreniez immédiatement ce que signifie chaque valeur. Aucune bibliothèque n'est nécessaire - seules les fonctions intégrées analogRead() et Serial du cœur Arduino sont utilisées.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Installer l'Arduino IDE : si c'est la première fois que vous utilisez l'ESP32 S3, consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE.
  3. Copier le code : copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  4. Connecter votre carte : branchez l'ESP32 S3 à votre ordinateur via un câble USB Type-C.
  5. Téléverser le code : compilez et téléversez le code sur la carte ESP32 S3 en cliquant sur le bouton Upload dans l'Arduino IDE.
  6. Ouvrir le Serial Monitor : réglez le débit sur 115200 bauds pour voir les lectures.
  7. Tester le capteur : appuyez sur le capteur de force avec différents niveaux de pression.
  8. Observer les résultats : consultez le Serial Monitor pour voir les valeurs analogiques en temps réel et les descriptions de pression.
  9. Astuce : expérimentez avec différents niveaux de pression pour trouver les valeurs de seuil qui fonctionnent le mieux pour votre application spécifique - chaque FSR a des caractéristiques de sensibilité légèrement différentes.

Sortie du Serial 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

※ Note:

Ce tutoriel utilise la fonction analogRead() pour lire les valeurs d'un ADC (convertisseur analogique-numérique) connecté à un capteur ou un composant. L'ADC de l'ESP32 S3 convient aux projets qui ne nécessitent pas une grande précision. Cependant, pour les projets nécessitant des mesures précises, gardez à l'esprit ce qui suit :

  • L'ADC de l'ESP32 S3 n'est pas parfaitement précis et peut nécessiter un étalonnage pour obtenir des résultats corrects. Chaque carte ESP32 S3 peut varier légèrement, donc un étalonnage est nécessaire pour chaque carte individuelle.
  • L'étalonnage peut être difficile, surtout pour les débutants, et peut ne pas toujours donner exactement les résultats souhaités.

Pour les projets nécessitant une haute précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 S3, ou d'utiliser une autre carte Arduino, comme l'Arduino Uno R4 WiFi, qui possède un ADC plus fiable. Si vous souhaitez tout de même étalonner l'ADC de l'ESP32 S3, consultez le ESP32 ADC Calibration Driver.

Idées d'applications

L'ESP32 S3 et un capteur de force ouvrent un large éventail de projets de détection de pression dans la robotique, les jeux, la surveillance de la santé et la domotique.

  1. Sonnette intelligente : détectez quand quelqu'un appuie contre une porte ou un panneau
  2. Manettes de jeu : créez des boutons sensibles à la pression pour des manettes de jeu personnalisées
  3. Capteurs de préhension pour robot : mesurez avec quelle force une pince robotique tient des objets
  4. Instruments de musique : construisez des pads sensibles au toucher pour des batteries électroniques ou des claviers
  5. Détection de présence : détectez quand quelqu'un s'assoit sur une chaise ou s'allonge sur un lit
  6. Mesureur de force de poignée de main : mesurez la force de préhension pour des applications de fitness ou médicales
  7. Commandes de lampe tactile : créez des lumières à gradation qui réagissent à la pression du toucher

Section vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

Défiez-vous

Étendez votre projet de capteur de force ESP32 S3 avec ces défis progressifs pour approfondir votre compréhension de la détection analogique et du contrôle embarqué.

  1. Débutant : ajoutez une LED qui s'allume lorsque la pression dépasse une valeur seuil
  2. Débutant : affichez les messages « Pressed » et « Released » au lieu des valeurs analogiques brutes
  3. Intermédiaire : utilisez plusieurs capteurs de force pour détecter la pression à différents endroits simultanément
  4. Intermédiaire : créez un système d'alarme activé par pression qui se déclenche à des niveaux de force spécifiques
  5. Avancé : construisez un système d'enregistrement de données qui enregistre les motifs de pression dans le temps avec des horodatages
  6. Avancé : combinez le capteur de force avec un servomoteur pour contrôler un mouvement en fonction de l'intensité de la pression

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !