Table des matières:
Vidéo: Wif : 5 étapes
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Je m'appelle Stephanie Minne, j'étudie les nouveaux médias et technologies de la communication (NMCT) à Howest (Courtrai, Belgique). À l'école, nous avons eu pour mission de créer un appareil avec une page Web. Vous pouvez consulter mon portfolio.
J'ai choisi de faire un siège de train avec un capteur dedans. Le capteur détectera s'il y a une personne assise sur le siège.
Étape 1: Matériel requis
Pour ce projet, plusieurs matériaux sont nécessaires.
Capteur de pression (fsr 400) = 9,20 €/pièce
Raspberry Pi 3 = 37,95 €
Leds RVB = 0,5 € /unité
Résistance (470 ohm) = 0,10 € /unité
Écran LCD = 2,44 € /unité
Mcp 3008 = 29,00 € /unité
Sn74hc595n = 1,20 € /unité
Potentiomètre = 1, 15 €
Étape 2: le circuit
Le matériel est assez simple.
Comme on peut le voir sur le schéma, j'ai utilisé un 74hc47 pour mes leds. La raison en est que mon Raspberry Pi n'a pas beaucoup de broches. L'inconvénient de ceci, c'est que vous ne pouvez faire que la led rouge ou verte. Vous n'avez pas de signal pwm pour faire des couleurs différentes.
Le Raspberry Pi n'a pas de broches d'entrée analogique. J'ai donc besoin d'un mcp 3008. Cela convertit un signal analogique en un signal numérique. Le transmetteur de pression est placé sur les canaux du mcp 3008.
Étape 3: Créer une base de données
Dans ce projet, un mysql a été utilisé comme serveur de base de données.
La table d'occupation contient des informations sur les capteurs. Il capture l'endroit où une personne s'assoit sur un siège de train. A partir du moment où une personne s'assoit sur le siège, les premières données seront écrites dans le tableau. Toutes les données seront écrites dans la table à l'exception de datetimeEnd.
Le tableau itinéraire contient des données sur les différents itinéraires empruntés par un train.
La table a deux valeurs: une pour la date/heure normale et une autre pour la date/heure réelle.
La date-heure normale est l'heure à laquelle le train est théoriquement à l'arrêt. La date-heure réelle est l'heure à laquelle le train est à un arrêt réel. Ce temps est avec le retard inclus.
Chaque train a une référence claire et unique, composée de lettres (p.e. IC signifie Intercity train) et de chiffres (p.e. 4565 est le train de Bruxelles à Anvers).
Et chaque type a son propre logement. Par exemple des tables, des poubelles.
Étape 4: codez-le
Le code de base des capteurs est écrit en Python. Il y a
2 types de codes. Le premier concerne les capteurs. Le second est pour la page Web. Les données de la page Web sont écrites en Python, Flask, JavaScript, HTML et CSS.
Le capteur
Chaque composant a sa propre classe. Toutes les différentes classes sont utilisées dans le test.py.
La toile
Le code Web est écrit en Python et Flask. Pour l'en-tête, un modèle est utilisé. L'autre partie de la page a sa propre page html.
La structure du fichier
- Le fichier de test se trouve dans le répertoire sensor.
- Les classes sont situées dans le répertoire models.
- Le répertoire sql contient le dump de la base de données train.
- Le répertoire web contient le fichier index.py. Ceci est la page Flacon. Ce fichier doit être exécuté pour exécuter la page Web.
- Le répertoire templates contient les pages html.
- Le répertoire statique contient les images, les polices et les fichiers css.
Étape 5: Rendez-le beau
Il existe différentes façons de faire un beau train. j'ai choisi
pour faire une impression 3D d'un train.
Les sièges.
Un petit trou doit être prévu dans le siège car le capteur doit être placé sur le siège. Les leds sont fixées sur le dessus du siège.
Le wagon.
Il y a quelques caractéristiques importantes dans le wagon. Au début, il doit y avoir de petits trous dans le sol où viennent les sièges.
- Le capteur et les cales des leds doivent passer par ces trous.
- Dans le panneau latéral, il y a un trou pour fixer l'écran LCD avec les informations sur l'adresse IP et le nombre de places libres.
- Le Raspberry Pi doit être situé à l'arrière hors de vue.
!Attention: l'impression 3d est imprimée un peu plus petite donc il faut prévoir 3 ou 4 mm supplémentaires pour les trous !