Table des matières:

Tableau de bord et moniteur de batterie pour vélo électrique (EBike) : 12 étapes (avec photos)
Tableau de bord et moniteur de batterie pour vélo électrique (EBike) : 12 étapes (avec photos)

Vidéo: Tableau de bord et moniteur de batterie pour vélo électrique (EBike) : 12 étapes (avec photos)

Vidéo: Tableau de bord et moniteur de batterie pour vélo électrique (EBike) : 12 étapes (avec photos)
Vidéo: Ce Policier Piège Les Voleurs ! 2024, Novembre
Anonim
Tableau de bord et moniteur de batterie pour vélo électrique (EBike)
Tableau de bord et moniteur de batterie pour vélo électrique (EBike)

Ce projet est un circuit Arduino qui surveille la tension et le courant de la batterie avec un module ACS 712. Les mesures sont communiquées via Bluetooth avec un module HC-05 à un appareil Android. Fondamentalement, vous recâblez la connexion négative entre votre contrôleur et la batterie pour passer par le module ACS712.

L'application Android affiche l'état de la batterie ainsi que la vitesse actuelle et la distance parcourue depuis le GPS Android

L'Android peut être monté sur le vélo dans un sac résistant aux intempéries. Le circuit Arduino est monté en permanence dans un boîtier étanche sur le vélo à proximité de la batterie.

Le code Android et Arduino est disponible sur github. (https://github.com/edj2001/BikeDashArduino et

github.com/edj2001/BikeDashAndroid. Vous aurez également besoin des bibliothèques https://github.com/edj2001/AndroidBluetoothLibrar… et

Il existe des versions commerciales de produits similaires disponibles si cela dépasse ce que vous pouvez gérer. Vous pouvez facilement les trouver en googlant "wattmètre Bluetooth 36v". Si vous regardez certaines des images, vous verrez un Arduino Pro Mini, une alimentation DC-DC et un module HC-05 (ou -06) à l'arrière.

Si vous vous demandez combien de batterie il vous reste, jusqu'où vous pouvez aller sur la batterie, ou si vous devez pédaler ou réduire les gaz pour arriver là où vous allez, c'est ce qu'il vous faut.

Un autre avantage potentiel est que vous pouvez décider de retirer l'ordinateur de vélo de votre guidon, libérant ainsi de l'espace, bien que maintenant votre téléphone soit monté sur votre vélo à la place.

Comme toujours, ces informations sont fournies telles quelles sans aucune garantie d'aucune sorte, expresse ou implicite. Vous êtes responsable de tout ce que vous faites avec ces informations. Je ne serai en aucun cas responsable ou redevable de quelque dommage que ce soit. Voir la section des clauses de non-responsabilité dans les conditions d'utilisation.

Étape 1: Mises à jour instructables

PeterB476 m'a montré que j'avais négligé d'inclure une étape pour initialiser l'EPROM Arduino, j'ai donc ajouté cela à l'instructable.

J'ai également ajouté 2 nouvelles versions de l'application à une étape ultérieure. Ils n'ont pas été testés à fond, mais vous pouvez les essayer.

Étape 2: Installez l'application Android

Il ne sert à rien de poursuivre le reste de ce projet si l'application Android ne fonctionne pas sur votre appareil. Les versions de github ont l'apk Android attaché. Le fichier apk est également joint ici. Assurez-vous qu'au moins la partie GPS de l'application fonctionne et vous pouvez essayer de vous connecter à un appareil Bluetooth.

Si vous souhaitez créer l'application vous-même, je vous suggère de commencer par un point "release" car cela fonctionnait probablement à un moment donné, alors que la dernière branche "master" peut avoir des mises à jour qui n'ont pas été testées.

Copiez le fichier apk sur votre appareil. Vous devrez autoriser "Sources inconnues" dans les paramètres de sécurité de votre appareil, car l'apk ne provient pas de Google Play. Ensuite, appuyez simplement sur le fichier apk sur votre appareil pour l'installer.

Évidemment, l'application nécessite des autorisations Bluetooth pour communiquer avec l'Arduino et les autorisations GPS pour déterminer votre vitesse et la distance parcourue.

Appuyez sur le bouton « télécommande » pour essayer de vous connecter à un appareil Bluetooth. Appuyez sur « reset » pour réinitialiser la distance parcourue à 0. Maintenez le champ Ah utilisé de la batterie pour le réinitialiser après avoir chargé votre batterie. La valeur Ah utilisée sera enregistrée si vous éteignez et rallumez la batterie sans la charger.

Étape 3: Récupérer des pièces

Collecter des pièces
Collecter des pièces
Collecter des pièces
Collecter des pièces
Collecter des pièces
Collecter des pièces

Notez que ces pièces sont pour une batterie 36V. Si vous avez une batterie 48V, vous devrez changer la résistance 10K en 11K ou 12 K, et vous aurez besoin d'un convertisseur DC-DC différent.

1 Boîtier étanche. J'ai utilisé une boîte électrique en PVC de 4x4x2 pouces.

1 morceau de votre Stripboard ou Protoboard préféré

1 Arduino Pro Mini, 5V 16MHZ. Vous pouvez également facilement construire un arduino bareboard car vous n'avez pas besoin d'un régulateur de tension ou d'une interface USB. Tout ce dont vous avez besoin est l'ATMEGA328P, un cristal 16MHZ et quelques condensateurs. Vous pouvez également utiliser un Arduino Nano si vous avez de la place dans votre boîtier. Le Nano est plus grand que les deux premiers choix, mais possède l'interface USB intégrée si vous n'avez pas de convertisseur série.

1 module ACS712 pour correspondre à la portée actuelle de votre batterie. J'ai utilisé un module 20A pour ma batterie 8A.

1 module bluetooth HC-05. J'aime la variété ZS-040, le genre 6 broches avec bouton-poussoir. Il sera étiqueté ZS-040 au dos.

1 alimentation 50V à 5V DC-DC si votre vélo a une batterie 36V, qui sera d'environ 42V complètement chargée. Si vous avez une batterie 48V, elle sera complètement chargée à 56 ou 57V, vous aurez donc peut-être besoin d'une alimentation différente. S'il vous plaît laissez-nous savoir ce que vous utilisez si vous trouvez quelque chose pour 60V. Certaines personnes disent que la plupart des verrues murales USB fonctionnent sur 48VDC (et plus), mais je ne l'ai pas essayé.

Résistances 1/4W: 1 x 2K, 1 x 10K, 2 x 1K (augmenter le 10K si votre batterie est supérieure à 36V).

Porte-fusible en ligne et fusible 2A.

Bandes d'en-tête droites et à angle droit

Borniers 5,08 mm, 2 x 2

Fil toronné 16AWG pour interconnecter les modules.

Fil solide 22AWG pour le circuit arduino

Bornier pour les connexions de la batterie et du vélo

Fer à souder

souder

Un moyen de monter votre appareil Android sur votre vélo.

Pour programmer les modules Arduino et HC-05, vous aurez également besoin d'un convertisseur série USB vers ttl de 3,3 V (ou au moins d'un programmeur FAI) et de l'ide Arduino de https://www.arduino.cc/en/Main/Software. Ce projet a été réalisé avec la version 1.6.13, différentes versions peuvent ou non fonctionner sans modification.

Étape 4: Initialiser Arduino EPROM

J'ai négligé d'inclure cette étape dans l'original instructable. La zone de l'EPROM utilisée par l'esquisse doit être initialisée pour que l'esquisse fonctionne correctement. L'esquisse pourrait être écrite pour le faire automatiquement, mais à ce stade, ce n'est pas le cas.

Si vous ne travaillez pas avec le code source de l'arduino, vous pouvez télécharger le fichier hexadécimal joint à cette étape sur votre arduino pour initialiser l'EPROM.

Si vous travaillez avec le code source arduino, il y a deux lignes dans la section setup() qui ressemblent à ceci:

//initialiser l'EEPROM la première fois que le programme s'exécute.

//mise à jourEPROM();

Si vous décommentez la deuxième ligne pour qu'elle ressemble à ceci:

//initialiser l'EEPROM la première fois que le programme s'exécute.

updateEPROM();

Téléchargez ce croquis sur l'arduino et laissez-le fonctionner. L'EPROM sera initialisée. Recommandez ensuite la ligne pour l'étape suivante.

L'EPROM est utilisée pour mémoriser la quantité de batterie utilisée afin que vous puissiez faire du vélo, arrêter et éteindre la batterie, et lorsque vous la rallumerez, elle reprendra là où vous l'avez laissée.

Étape 5: Configurer Arduino

Téléchargez le code Arduino (fichier hexadécimal joint) sur le Pro Mini à l'aide de l'IDE Arduino ou d'avrdude par lui-même. Normalement, vous utiliseriez le convertisseur USB vers série pour cela, mais vous pouvez également utiliser un programmeur FAI.

Encore une fois, si vous voulez le compiler vous-même, commencez par une "release". La dernière branche "master" peut avoir des modifications non testées.

Si vous avez remplacé la résistance 10K par quelque chose de plus élevé, vous devrez également modifier la constante du diviseur de tension de la batterie dans le croquis. Modifiez le 11.0 dans la ligne "double VBmultiplier = 11.0;" pour correspondre à tout ce que vous avez installé.

Étape 6: Configurer le module HC-05

Configurer le module HC-05
Configurer le module HC-05
Configurer le module HC-05
Configurer le module HC-05

Vous devez configurer le débit en bauds sur le module HC-05. Il est également agréable de lui donner un nom que vous pourrez facilement reconnaître plus tard (comme "BIKE").

Vous utilisez également le module convertisseur série usb vers ttl pour cela. Si vous n'avez pas de convertisseur série, vous pouvez écrire un croquis pour un arduino pour le configurer, ou je suppose que si vous avez 2 modules HC-05, vous pouvez les connecter ensemble et utiliser l'un pour programmer l'autre (peut-être).

Il existe un excellent article sur ce module à l'adresse

Vous devez configurer le débit en bauds sur 4800 pour qu'il corresponde au croquis Arduino et changer le nom en "BIKE" ou quelque chose que vous reconnaîtrez.

Une fois le module configuré, vous pouvez le coupler avec votre appareil Android dans vos paramètres Bluetooth.

Étape 7: Assembler le circuit

J'ai joint un scan de mon schéma de câblage dessiné à la main pour référence, si quelqu'un est assez ambitieux pour le redessiner gentiment, faites-le moi savoir:)

Effectuez les connexions suivantes:

(+) Batterie de vélo sur un côté du fusible et du contrôleur de vélo.

L'autre côté du fusible vers la borne du convertisseur CC (+) IN et la résistance 10K pour l'entrée de tension de la batterie sur Arduino.

(-) Batterie de vélo vers (-) IN sur le convertisseur et une borne d'alimentation ACS712.

À ce stade, assurez-vous d'avoir 5V de votre convertisseur DC lorsque vous allumez votre batterie si vous ne l'avez pas déjà fait.

Éteignez la batterie et effectuez les connexions:

(+) OUT du convertisseur Arduino 5V, HC05 VCC, ACS712 VCC.

(-) OUT du convertisseur vers Arduino GND, HC05 GND, ACS712 GND, broche Arduino A2.

HC05 TXD vers Arduino broche 7

HC05 RXD du diviseur de résistance Bluetooth.

Diviseur de résistance Arduino broche 8 vers bluetooth.

ACS712 OUT vers la broche Arduino A3

Diviseur de tension de batterie à la broche Arduino A1

(-) du contrôleur de vélo à la deuxième borne d'alimentation sur l'ACS712.

Le bouton de réinitialisation supplémentaire n'est pas vraiment nécessaire, il peut être pratique lorsque vous souhaitez télécharger sur l'arduino après l'avoir installé sur votre vélo. Vous pourrez peut-être atteindre le bouton de réinitialisation de l'arduino, ou vous pouvez le réinitialiser à partir de l'interface série si votre pro mini le prend en charge.

Vérifiez vos connexions.

Étape 8: Vérification préliminaire

À ce stade, vous pouvez allumer le circuit et vérifier que vous obtenez des lectures dans l'application Android.

Vous devriez pouvoir connecter le bluetooth au vélo et voir la tension de la batterie et, espérons-le, proche du courant de batterie nul. Si vous pouvez faire tourner le vélo et voir le changement de lecture actuel, alors tout fonctionne.

L'application suppose que le courant positif décharge la batterie, donc si la lecture montre un courant négatif lorsque vous faites tourner le vélo, échangez simplement les deux fils de courant sur le module ACS712.

Si vous ne voyez aucune lecture dans l'application, vous pouvez regarder les voyants du module Bluetooth pour vous assurer qu'il est connecté et qu'il transmet des données. Vous pouvez installer une application de terminal Bluetooth sur votre appareil pour voir les données envoyées depuis le circuit. Vous devriez voir environ 10 lignes par seconde des lectures actuelles et une ligne par seconde de la tension de la batterie et de la quantité de batterie utilisée. Si vous ne voyez rien, revérifiez la configuration du module HC05 et les connexions entre l'arduino, le diviseur de résistance et le terminal HC05 TXD.

Enfin, faites fonctionner le vélo suffisamment longtemps pour qu'une valeur non nulle s'affiche sur l'affichage de la batterie utilisée. Ensuite, appuyez longuement sur ce numéro jusqu'à ce que le toast apparaisse que l'utilisation a été réinitialisée. Le nombre doit revenir à zéro. Si ce n'est pas le cas après avoir essayé plusieurs fois, revérifiez les connexions du terminal HC05 RXD à l'Arduino.

Étape 9: Assemblage final

L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final

Installez tout le matériel de montage et montez le circuit arduino sur votre vélo. Montez votre appareil Android dans un sac ou un autre support et vous êtes prêt à partir !

Les photos montrent les coups de batterie sur mon vélo et le sac pour mon appareil Android.

Vous pouvez voir la petite carte pour les connexions du diviseur de tension de la batterie et l'ACS712 monté de sorte que je puisse atteindre les vis du bornier après avoir tout monté. Le module bluetooth HC-05 est de retour dans le coin droit.

Le bornier blanc a toutes les connexions de la batterie et du contrôleur de vélo au circuit.

Si je devais le refaire, je combinerais certainement le diviseur de tension de batterie et l'ACS712 sur le même morceau de carte fille. Je pourrais aussi essayer de monter le module bluetooth sur une carte fille sous l'arduino.

Étape 10: Étapes futures

L'application Android pourrait demander beaucoup de travail. J'aimerais ajouter des changements de couleur en fonction des plages de mesures. J'aimerais également ajouter une indication qu'une mesure n'est pas mise à jour dans l'application. Vous pouvez également ajouter des jauges graphiques. Même une belle icône serait une grande amélioration.

La meilleure caractéristique serait une "estimation du vide" qui vous indiquerait la distance que vous pourriez parcourir avec votre batterie restante et si c'est plus que la distance jusqu'à votre destination. Comme je me rends normalement au travail ou à la maison, je pense que les « points de cheminement » GPS stockés dans l'application contiennent la distance restante jusqu'à la maison et la quantité de batterie utilisée en moyenne à ce point de cheminement. Vous pouvez probablement aussi faire quelque chose avec une connexion de données, mais je n'en ai normalement pas.

J'aimerais passer de la bibliothèque Bluetooth de cette application à une autre plus développée avec une reconnexion automatique, par exemple.

Si vous construisez cela, vous pouvez envisager d'ajouter un filtre passe-bas matériel sur le courant mesuré et de le mesurer séparément à utiliser pour le calcul de la charge totale utilisée. A de faibles charges, moins de 4A environ, la mesure varie considérablement, +/-1A. Je ne sais pas si c'est juste un problème de mesure ou si le courant change autant que la roue tourne. Dans tous les cas, une mesure séparée du courant moyen sur une seconde ou deux pourrait aider à la précision. Vous pourriez simplement échantillonner le courant plus rapidement et le faire dans un logiciel, mais je ne sais pas à quelle vitesse vous devriez échantillonner. Je suppose que mettre un oscilloscope sur le signal pourrait aider à déterminer à quelle vitesse l'échantillonner.

Vous pouvez ajouter des choses comme un tube de Pitot pour mesurer la vitesse du vent (il existe déjà un instructable pour cela).

Vous pouvez ajouter un contrôle des gaz en boucle fermée à partir de l'arduino.

Si vous avez toujours voulu une source d'alimentation USB sur votre vélo, vous pouvez facilement faire passer un câble du convertisseur 5 V CC pour l'arduino jusqu'à l'endroit où vous avez besoin de la connexion d'alimentation USB.

Étape 11: Questions et commentaires

Si vous avez des questions générales sur l'un des éléments ici, il est préférable de simplement le rechercher sur Google au lieu de poser des questions ici. Aucun des éléments n'est critique, vous pouvez presque certainement remplacer quelque chose d'autre et faire le travail.

Ne me demandez pas de vous envoyer le code, tout est sur github. Obtenez-le à partir de là. Vous n'avez même pas besoin d'un compte github.

S'il vous plaît, ne me demandez pas comment faire quelque chose dans Android Studio ou sur Arduino. Je ne sais probablement pas. Encore une fois, il suffit de le chercher sur Google.

Ne me posez pas de questions sur les produits Apple, je n'en ai aucune idée.

Si l'application ne fonctionne pas sur votre appareil, je suis désolé. Mais je ne sais probablement pas comment le réparer pour qu'il le fasse. Cela fonctionne sur mon téléphone, c'est tout ce dont j'ai besoin.

Bien que les suggestions d'améliorations soient les bienvenues, je ne les mettrai probablement jamais en œuvre, j'ai d'autres choses à faire. Je ne mettrai probablement jamais en œuvre mes propres suggestions. Votre meilleur pari est de bifurquer le code sur github et d'ajouter des choses vous-même. Si vous le faites, faites-le savoir aux gens ici afin qu'ils puissent utiliser votre code à la place du mien.

Si vous avez déjà construit une meilleure version vous-même, veuillez poster une référence ici afin que les autres le sachent. Je ne serai pas offensé. Je serai heureux de prendre votre version et de commencer à l'utiliser.

Étape 12: Mise à jour de l'application pour les tests

Ce sont des versions mises à jour de l'application.

Les chiffres sont beaucoup plus gros. Il y a une nouvelle icône. Il n'y a plus de bouton "connecter". Utilisez l'option "connecter - sécurisé" dans le menu en haut à droite.

Cette version devrait également fonctionner avec la version 2.3 d'Android en pain d'épice. Cela fonctionne sur mon LG P500 Optimus One.

La version "app-settings-debug.apk" dispose d'un menu de paramètres pour permettre de paramétrer la capacité de votre batterie afin que le calcul du pourcentage restant soit correct. Il n'a pas été complètement testé.

Conseillé: