Table des matières:

Tableau de bord de moto Raspberry Pi : 9 étapes (avec photos)
Tableau de bord de moto Raspberry Pi : 9 étapes (avec photos)

Vidéo: Tableau de bord de moto Raspberry Pi : 9 étapes (avec photos)

Vidéo: Tableau de bord de moto Raspberry Pi : 9 étapes (avec photos)
Vidéo: Le Plus Grand Point Noir Du Monde ?😱 2024, Novembre
Anonim
Tableau de bord de moto Raspberry Pi
Tableau de bord de moto Raspberry Pi

En tant qu'étudiant en technologie multimédia et communication à Howest Kortrijk, j'ai dû créer mon propre projet IoT. Cela combinerait tous les modules suivis au cours de la première année en un seul grand projet. Parce que je conduis beaucoup ma moto pendant mon temps libre, j'ai décidé d'utiliser mes compétences acquises chez MCT pour construire quelque chose pour ma moto: un tableau de bord intelligent.

MotoDash est un tableau de bord alimenté par Raspberry Pi conçu pour les motocyclistes fanatiques qui donne au pilote la possibilité de suivre leurs performances.

Quelles sont les caractéristiques de ce tableau de bord ?

  • Affichage de l'angle d'inclinaison actuel
  • Affichage de l'accélération actuelle
  • Possibilité de surveiller la température de l'huile
  • Passer automatiquement au thème sombre lorsque vous roulez dans l'obscurité
  • Enregistrez les données de vos trajets et consultez vos propres statistiques

Fournitures

Unité de calcul principale:

Raspberry Pi C'est le contrôleur principal du système

Électronique:

  • Chargeur USB pour moto 12V-5VAlimentation principale pour le RPi
  • Relais à fusible à 4 broches 12VSwitch pour allumer/éteindre le circuit d'alimentation du RPi
  • Planche à pain avec cavaliers (en option)Pour les tests et le prototypage

  • Un ensemble de résistances

    Différentes couleurs de fil de 0,2 mm

  • Breakout Pi plusIl s'agit d'une carte de prototypage où vous pouvez souder tous vos composants. Il est conçu pour s'adapter directement sur le Raspberry Pi, de sorte que les dimensions du projet restent au minimum.

Capteurs et modules:

  • Capteur de température étanche DS18B20 1-WireCapteur de température d'huile
  • Accéléromètre gyroscopique 3 axes MPU6050Capteur d'inclinaison/d'accélération
  • Résistance dépendante de la lumière (LDR)
  • MCP3008 - CAN 10 bits à 8 canaux avec interface SPI

    Écran TFT SPI (ou tout autre écran lcd qui correspond à vos besoins)

    LED RVB

Enveloppe:

  • Boite en plastique
  • Etui framboise pi

Outils:

  • Fer à souder et soudure
  • Vis et entretoises de 2,5 mm
  • Connecteurs de câbles étanches
  • Super colle

Étape 1: Prototypage

Prototypage
Prototypage
Prototypage
Prototypage

Avant de tout rendre permanent, nous allons mettre en place le projet sur une maquette. Cette étape peut être ignorée si vous êtes absolument certain de ne pas commettre d'erreur. Le schéma électrique/planche à pain peut être trouvé dans le PDF ci-dessous. Montez le circuit exactement comme décrit. Assurez-vous d'utiliser uniquement la broche 3.3V et non la broche 5V sur le RPi. Avant de mettre le Raspberry Pi sous tension, vérifiez également votre circuit. Assurez-vous qu'il n'y a pas de short!

Étape 2: Préparation du Raspberry Pi

Préparation du Raspberry Pi
Préparation du Raspberry Pi

Tout d'abord, nous allons configurer le Raspberry Pi. Le Raspberry Pi est un mini-ordinateur capable d'exécuter son propre système d'exploitation. Pour ce projet, il est responsable du traitement des données des capteurs, de l'hébergement du site web, de l'exécution du backend et de la base de données, …

1. Installer une image Raspbian personnalisée

L'image fournie contient déjà les packages logiciels nécessaires pour démarrer ce projet:

  • Apache pour le frontend du site
  • MariaDB pour la base de données
  • PhpMyAdmin pour manipuler la base de données
  • Autorisations personnalisées pour éviter les problèmes

L'image personnalisée peut être téléchargée à partir d'ici.

Un tutoriel pour installer des images peut être trouvé ici:

Une fois l'image installée, connectez le Raspberry Pi à votre PC avec un câble Ethernet. Vous pouvez maintenant utiliser un client SSH pour vous y connecter sur l'adresse IP 169.254.10.1

Il est recommandé de définir immédiatement un nouveau mot de passe à l'aide de la commande passwd

2. Configuration du point d'accès sans fil

Lorsque le projet est terminé, nous voulons pouvoir nous connecter au RPi via wifi, alors transformons-le en un point d'accès sans fil. Un tutoriel pour cela peut être trouvé ici.

Vous n'avez qu'à suivre ce didacticiel jusqu'à l'étape 7. L'étape 8 n'est pas requise car nous n'avons pas besoin de ponter une connexion Internet, mais de créer un réseau autonome.

3. Activation des interfaces

Rendez-vous dans raspi-config

sudo raspi-config

Allez dans les options d'interfaçage et activez 1-wire, SPI et I2C et redémarrez le Pi

3. Configuration des pilotes pour l'affichage

Initialisation de l'affichage

Editez le fichier /etc/modules

sudo nano /etc/modules

Ajoutez les 2 lignes suivantes

spi-bcm2835fbtft_device

Éditez maintenant /etc/modprobe.d/fbtft.conf

sudo nano /etc/modprobe.d/fbtft.conf

Ajoutez la ligne suivante

options fbtft_device name=tm022hdh26 gpios=reset:25, dc:24, led:18 rotate=90 speed=80000000 fps=60

Redémarrez le Pi. Si vous voyez le rétroéclairage de l'écran s'allumer, tout s'est bien passé. Cela initialisera l'affichage à chaque démarrage du Pi, mais il n'affichera plus qu'un écran noir maintenant. Pour afficher le contenu du Pi à l'écran, nous devons copier le contenu de l'écran principal sur le petit écran LCD. Nous utiliserons un service appelé 'fbcp' pour cela.

Installation du service fbcp

sudo apt-get install cmake

git clone

cd rpi-fbcp

construction mkdir

construction de cd/

cmake..

Fabriquer

sudo install fbcp /usr/local/bin/fbcp

Nous avons maintenant installé le service. Cependant, comme nous utilisons le Pi sans tête, il n'y a pas d'écran disponible pour copier le contenu. Pour forcer le Pi à afficher le contenu de l'écran, modifiez /boot/config.txt

sudo nano /boot/config.txt

Recherchez et décommentez ou ajoutez les lignes suivantes à ce fichier:

hdmi_force_hotplug=1

hdmi_cvt=640 480 60 0 0 0 0

display_rotate=0

hdmi_group=2

hdmi_mode=87

Redémarrez le RPi et testez le service fbcp en tapant fbcp dans la console. Vous devriez maintenant voir le contenu de l'écran sur l'écran LCD.

Exécution de fbcp au démarrage

Editez /etc/rc.local et ajoutez la ligne suivante entre l'adresse IP et la ligne de sortie

fbcp&

Maintenant, l'écran devrait s'allumer à chaque démarrage du RPi

Étape 3: Base de données

Base de données
Base de données

Pour enregistrer et stocker les données des capteurs, j'ai conçu ma propre base de données qui contient 4 tables. Le diagramme EER est montré dans l'image ci-dessus.

1. Appareils

Ce tableau contient tous les capteurs. Il décrit le nom, la description et l'unité de mesure du capteur. Cette table a une relation un-à-plusieurs avec les actions de la table, car dans mon cas, le capteur d'accélération peut effectuer différentes tâches.

2. Action

Cette table stocke les actions pour différents capteurs. Une action est toujours liée à un capteur particulier. Par exemple: l'action 'TEMP' est liée à l'appareil qui mesure la température. Ce serait le capteur de température à 1 fil.

3. Histoire

Ce tableau contient tous les journaux des capteurs. Chaque journal a un identifiant d'action, une valeur, un horodatage et un rideid

4. Balades

Cette table stocke différents manèges. Chaque fois que l'utilisateur commence un nouveau trajet, une nouvelle entrée dans ce tableau est effectuée

Pour obtenir cette base de données sur votre Raspberry Pi, rendez-vous sur mon GitHub et clonez/téléchargez le référentiel. Sous la base de données, vous trouverez 2 fichiers.sql. Exécutez-les dans PhpMyAdmin ou MySQL Workbench. Maintenant, la base de données devrait être sur votre RPi.

Étape 4: Back-end

Si vous ne l'avez pas déjà fait, rendez-vous sur mon GitHub et clonez/téléchargez le référentiel. Sous le dossier Backend, vous trouverez le backend complet du projet.

Le dossier contient des classes pour lire les capteurs sous /helpers, des fichiers pour communiquer avec la base de données sous /repositories, et l'application principale se trouve à la racine sous le nom app.py.

Installation des packages Python

Avant d'essayer d'exécuter quoi que ce soit, nous devons d'abord installer certains packages pour python. Rendez-vous dans le terminal de votre RPi et tapez les commandes suivantes:

pip3 installer mysql-connector-python

pip3 installer flask-socketio

pip3 installer des flacons-cors

pip3 installer gevent

pip3 installer gevent-websocket

NOTE IMPORTANTE: si vous avez changé votre mot de passe Mariadb/Mysql, changez le mot de passe dans config.py !

Testez le backend

Exécutez app.py à l'aide de l'interpréteur python3 (/usr/bin/python3). Assurez-vous qu'il n'y a pas d'erreurs.

Exécuter le backend au démarrage

Modifiez motoDash_backend.service et remplacez YOURFILEPATH par le chemin où le référentiel est enregistré.

Copiez maintenant ce fichier dans /etc/systemd/system/

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

Maintenant, le backend démarrera automatiquement à chaque démarrage du RPi.

Étape 5: Front-end

L'extrémité avant
L'extrémité avant
L'extrémité avant
L'extrémité avant

Rendez-vous dans le dépôt GitHub. Copiez le contenu du répertoire Frontend dans /var/www/html.

C'est tout ce que vous devez faire pour que le frontend fonctionne. Ce dossier contient toutes les pages Web, le style et les scripts pour l'interface Web. Il communique également avec le backend. Pour tester si tout fonctionne comme il se doit, assurez-vous que vous êtes connecté à votre RPi et tapez l'adresse IP du RPi dans un navigateur. Vous devriez voir la page d'accueil de l'interface Web.

Remarque: le site Web est responsive, vous pouvez donc l'utiliser sur mobile ainsi que sur ordinateur de bureau

Étape 6: Affichage du tableau de bord sur l'écran

Affichage du tableau de bord sur l'écran
Affichage du tableau de bord sur l'écran

L'interface a sa propre page Web cachée uniquement utilisée pour le petit affichage. Nous allons faire démarrer le Pi automatiquement sur ce site Web en mode plein écran.

Assurez-vous que le RPi est défini sur la connexion automatique au bureau dans raspi-config sous les options de démarrage

sudo raspi-config

Maintenant, allez dans le dossier de configuration caché et créez un nouveau fichier là-dedans

cd.config

sudo mkdir -p lxsession/LXDE-pi

sudo nano lxsession/LXDE-pi/autostart

Ajoutez les lignes suivantes dans ce fichier et enregistrez

@xscreensaver -no-splash

@xset est désactivé

@xset -dpms

@xset s noblank

@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito

Maintenant, le Pi devrait démarrer sur cette page Web à chaque fois

Étape 7: Souder l'électronique

Souder l'électronique
Souder l'électronique
Souder l'électronique
Souder l'électronique
Souder l'électronique
Souder l'électronique
Souder l'électronique
Souder l'électronique

Prenez le panneau de dérivation et disposez-y vos composants de manière structurée. Je ne discuterai pas de la disposition de la façon dont j'ai soudé les composants dessus, car j'ai fait un assez mauvais travail dessus. J'ai utilisé des en-têtes de broche séparés sur la carte de sorte que je n'avais besoin que de connecter les capteurs et les modules à la bonne broche. Assurez-vous de savoir quelle épingle correspond à quoi !

Quelques conseils lors de la soudure:

  • Utilisez des fils isolés lorsque vous traversez de plus grandes distances. La dernière chose que vous voulez, c'est un court-circuit dans votre circuit
  • Après avoir soudé un composant ou un fil, vérifiez sa continuité avec un multimètre. Vérifiez également régulièrement les courts-circuits.
  • N'utilisez pas trop ou trop peu de soudure !
  • Si vous ne savez pas souder, entraînez-vous d'abord sur une autre planche de prototypage. Un tutoriel sur la soudure peut être trouvé ici.

Maintenant, soudez des fils assez longs aux capteurs et mettez un peu d'enveloppe rétractable autour d'eux pour vous assurer que tout n'est pas court-circuité et propre.

Lorsque vous avez terminé, vérifiez s'il y a des courts-circuits ou de mauvaises connexions, et vérifiez chaque connexion avec le schéma électrique si c'est la bonne connexion. Une fois que vous êtes certain que tout est fait correctement, allez-y et placez la carte de dérivation sur le RPi, vissez-la avec des vis et des entretoises de 2,5 mm. Branchez les capteurs aux bonnes broches et testez-les tous en utilisant le site Web.

Étape 8: Alimentation

Pour alimenter le Raspberry Pi, nous allons utiliser un adaptateur USB 12V-5V. Cet adaptateur sera connecté à la batterie de la moto. Pour nous assurer que le RPi s'allume lorsque le contacteur d'allumage est allumé, nous allons utiliser un relais. Le relais fermera le circuit d'alimentation RPi lorsqu'il détectera une tension provenant du feu arrière (le feu arrière s'allume toujours lorsque vous mettez le contact).

Pour un tutoriel plus détaillé à ce sujet, consultez cette page: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -contrôleurs.16921/

Étape 9: Logement

Logement
Logement
Logement
Logement
Logement
Logement

Boîtier d'affichage

Pour l'écran, prenez une boîte en plastique dur d'environ la taille de l'écran. Découpez un trou carré aussi grand que l'écran et des trous correspondants pour visser l'écran. À l'avant, vous devez percer 2 trous supplémentaires pour la LED RVB et le LDR.

J'ai monté cette boîte sur un support de smartphone à l'aide d'un boulon.

Capteur de température

Pour loger le capteur de température, j'ai imprimé en 3D une jauge d'huile qui s'adapte à ma moto.

Tarte aux framboises

Montez le Raspberry Pi lui-même dans un endroit sûr à l'intérieur de la moto, je l'ai placé sous l'un des garde-boue à l'aide de bandes velcro. Et l'a protégé des éléments à l'aide d'un boîtier et de plastique.

Accéléromètre

Montez l'accéléromètre à un endroit sûr, de préférence sur le cadre de la moto lui-même.

Noter:

Vous n'avez pas besoin d'avoir exactement le même boîtier que moi, vous êtes libre de le finir comme bon vous semble. Assurez-vous simplement que les composants électroniques sont protégés de la pluie et de la poussière.

Conseillé: