|

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

  • |

    CNC Modernisée

    Dans le cadre de notre formation, nous avons entrepris la modernisation complète d’une CNC (« Computer Numerical Control machine », ou machine de découpe à contrôle numérique) appartenant à l’école. Initialement contrôlée par un système sous Windows XP, la machine n’était plus fonctionnelle et nécessitait un ordinateur dédié pour opérer, ce qui la rendait impraticable dans l’environnement…

  • 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…

  • |

    Voiture guidée par main

    Ce projet à pour but de développer une voiture télécommandée contrôlée par des gestes du poignet en utilisant une connexion Bluetooth Embarquez dans une aventure technologique unique où je vous dévoile chaque étape de la création d’un contrôleur gestuel pour voiture RC, conçu pour une expérience de pilotage intuitive et immersive. Imaginez piloter une voiture…

  • Distributeur Connecté pour Chat

    Préparez-vous à une innovation majeure dans la gestion alimentaire de vos compagnons félins ! Le distributeur automatique pour chats est une solution ingénieuse qui prend en charge la nourriture de votre animal de compagnie de manière autonome et efficace. Plus besoin de vous soucier des repas de votre chat, laissez cet appareil révolutionnaire s’occuper de…