|

Compteur de Pompes

Ce projet est pour créer un compteur de pompes intelligent à l’aide d’un microcontrôleur ESP32. Il permet d’automatiser le comptage des répétitions pendant les entraînements et il permet à l’utilisateur un retour en temps réel, visuel, sonore et numérique.

Présentation générale et contexte

L’idée de départ vient de rendre le comptage des « pushups » plus simple en utilisant un capteur de distance ultrasonique qui peut détecter les mouvements du corps pendant les pompes. Il contient un écran LCD qui affiche les informations en temps réel et un petit module audio (DFPlayerMini) qui joue des sons pour motiver l’utilisateur ou indiquer la fin d’un exercice. De plus, il est possible de voir la progression sur un site web local qui affiche le nombre de pompes effectuées dans la journée et un graphique qui représente la progression.

Photos PCB

Voici le PCB qui est dans le projet :

Schéma Bloc

Voici le schéma bloc du projet :

Description des principes utilisés

Principe #1 : Communication UART avec l’écran LCD et le DFPlayerMini

L’écran LCD et le DFPlayerMini sont connectés à l’ESP32 avec une interface UART. Cette liaison série permet à l’ESP32 d’envoyer des données et recevoir les données. La communication UART fonctionne en utilisant deux broches:

  • TX (Transmission) : broche par laquelle l’ESP32 envoie des données vers l’écran.
  • RX (Réception) : broche par laquelle l’ESP32 reçoit des données de l’écran, si nécessaire.

Cette communication est asynchrone, ce qui signifie qu’il n’y a pas de signal d’horloge. Les deux pièces doivent avoir le même débit en bauds (baud rate).

Pour le projet:

  • Écran LCD : la broche TX de l’ESP32 est utilisée seulement pour envoyer des données à l’écran.
  • DFPlayer Mini : les broches TX et RX de l’ESP32 sont utilisés pour permettre une communication bidirectionnelle entre l’ESP32 et le module audio.

Le débit en bauds configuré pour l’écran LCD et le DFPlayer Mini est de 9600 bauds, ce qui est le standard.

Principe #2 : Détection de mouvement avec capteur ultrasonique HC-SR04

Le compteur de pompes utilise un capteur de distance HC-SR04, qui fonctionne par ultrasons. Ce capteur permet de mesurer la distance entre le haut du corps de l’utilisateur et la planche pendant l’exercice. Il émet une petite impulsion sonore qui est inaudible à l’aide de son émetteur (TRIG), qui se propage dans l’air. Lorsque cette impulsion rencontre un obstacle (le corps de l’utilisateur), elle est réfléchie et captée par le récepteur (ECHO). Le temps écoulé entre l’émission et la réception est mesuré par l’ESP32. Avec le temps écoulé, on peut utiliser cette formule : distance (cm) = (temps écoulé x vitesse de son)/2. Pour le projet, une descente est détectée lorsque l’utilisateur se rapproche à moins de 7 cm, et une montée est détectée lorsqu’il remonte à plus de 21 cm. Une pompe complète est donc comptée seulement si ces deux conditions sont vraies dans le bon ordre.

Principe #3 : Sauvegarde des données avec la mémoire non volatile (NVS)

Pour conserver les résultats après un redémarrage, le projet utilise la mémoire non volatile NVS (Non-Volatile Storage) de l’ESP32. Cette mémoire permet d’enregistrer les données sous forme de clé et valeur. Alors, pour le projet, j’utilise la librairie « Preferences » pour enregistrer le nombre de pompes avec la date et l’heure. Ces données seront utilisées comme journaux pour les deux modes. Quand l’utilisateur va redémarrer le projet, les journaux seront gardés en mémoire.

Principe #4: Site web local sur l’ESP32

Avec le ESP32, je suis en mesure de me connecter à l’internet pour me créer un serveur local. Pour le projet, je l’utilise pour afficher les journaux des exercices enregistrés pour le mode entrainement et le record personnel. Avec l’aide de la librairie Chart.js, je peux visualiser la progression des nombres de pompes avec un graphique. De plus, avec la librairie mDNS, il est possible de donner un nom personnalisé au site web (par exemple : http://pushup.local) au lieu d’entrer une adresse IP.

Auteur/autrice

Publications similaires

  • |

    Contrôle d’un robot via un lien VHF/UHF

    Contrôlez un véhicule à distance grâce à une télécommande RF à 433 MHz. Ce projet met en œuvre une communication sans fil fiable basée sur une modulation ASK, reliant un encodeur HT12E à un décodeur HT12D pour transmettre les commandes en temps réel. Matériel Utilisé Schéma Voici le schéma de communication entre l’encodeur de la…

  • Robot Balance

    Le Robot Balance 2023 est une évolution du robot 2017. Les objectifs de la nouvelle version sont : Électronique La carte électronique est développée dans Fusion 360 et elle est basée sur : Firmware Le firmware est développé à l’aide de l’outil PlatformIO. Nous utilisons le framework Arduino. Le contrôle se fait à l’aide d’un…

  • Pédale de Guitare Multifonction

    Ce projet consiste à créer une pédale de guitare offrant plusieurs effets. Son objectif est d’économiser de l’argent et de l’espace en réduisant la quantité de matériel nécessaire pour accéder à un grand nombre d’effets. Présentation générale En commençant à jouer de la guitare électrique, on découvre rapidement l’univers infini des équipements et des accessoires qui peuvent…

  • |

    Trieur de Skittles

    Ce projet consiste à créer un système capable de différencier chacune des cinq nuances de teinte des bonbons Skittles originale, afin de les regrouper par couleur. L’objectif de ce projet est de trouver une sorte de satisfaction visuelle lorsque la machine opère, ainsi que de se familiariser avec le concept d’automatisation. Présentation générale Lorsque l’on…

  • Robot MC1 & Manette Bluetooth

    Par Cédric Frenette et Mihai Stinga À travers cette page, vous allez découvrir un projet extrêmement captivant comportant son lot de programmation, de mécanique et encore d’électronique. Découvrez le Robot MC1 à travers tout son processus de conception, que cela soit de la conception 3D, à la conception de nos schémas électriques ou encore tous…