Inhoudsopgave:
- Stap 1: Instrueerbare updates
- Stap 2: Android-app installeren
- Stap 3: Verzamel onderdelen
- Stap 4: Initialiseer Arduino EPROM
- Stap 5: Arduino configureren
- Stap 6: HC-05-module configureren
- Stap 7: monteer circuit
- Stap 8: Voorlopige verificatie
- Stap 9: Eindmontage
- Stap 10: Toekomstige stappen
- Stap 11: Vragen en opmerkingen
- Stap 12: App-update voor testen
Video: Elektrisch fiets (EBike) dashboard en batterijmonitor - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Dit project is een Arduino-circuit dat de batterijspanning en -stroom bewaakt met een ACS 712-module. De metingen worden via Bluetooth met een HC-05-module gecommuniceerd naar een Android-apparaat. In principe bedraad je de negatieve verbinding tussen je controller en batterij opnieuw om door de ACS712-module te gaan.
De Android-app geeft de batterijstatus weer, evenals de huidige snelheid en afgelegde afstand vanaf de Android GPS
De Android kan in een weerbestendige tas op de fiets worden gemonteerd. Het Arduino-circuit is permanent gemonteerd in een weerbestendige doos op de fiets in de buurt van de batterij.
De Android- en Arduino-code is beschikbaar op github. (https://github.com/edj2001/BikeDashArduino en
github.com/edj2001/BikeDashAndroid. Je hebt ook de bibliotheken nodig https://github.com/edj2001/AndroidBluetoothLibrar… en
Er zijn commerciële versies van vergelijkbare producten beschikbaar als dit meer is dan u misschien aankan. Je kunt ze gemakkelijk vinden door te googlen op "bluetooth 36v watt meter". Als je naar enkele afbeeldingen kijkt, zie je een Arduino Pro Mini, een DC-DC-voeding en een HC-05 (of -06) module op de achterkant.
Als je je ooit afvraagt hoeveel batterij je nog hebt, of hoeveel verder je op de batterij kunt gaan, of als je moet trappen of gas moet geven om te komen waar je heen gaat, dan is dit wat je nodig hebt.
Een ander potentieel voordeel is dat je kunt besluiten om de fietscomputer van je stuur te verwijderen, waardoor er wat ruimte vrijkomt, hoewel je telefoon nu in plaats daarvan op je fiets wordt gemonteerd.
Zoals altijd wordt deze informatie geleverd zoals het is, zonder enige garantie, expliciet of impliciet. U bent verantwoordelijk voor alles wat u met deze informatie doet. Ik ben op geen enkele manier verantwoordelijk of aansprakelijk voor welke schade dan ook. Zie de disclaimers sectie in de Servicevoorwaarden.
Stap 1: Instrueerbare updates
PeterB476 liet me zien dat ik had verzuimd een stap op te nemen om de Arduino EPROM te initialiseren, dus ik heb dat toegevoegd aan de instructable.
Ik heb ook 2 nieuwe versies van de app toegevoegd aan een latere stap. Ze zijn niet grondig getest, maar je kunt ze proberen.
Stap 2: Android-app installeren
Het heeft geen zin om verder te gaan met de rest van dit project als de Android-app niet werkt op uw apparaat. De releases van github hebben de Android-apk bijgevoegd. Het apk-bestand is hier ook bijgevoegd. Zorg ervoor dat in ieder geval het GPS-gedeelte van de app werkt, en u kunt proberen verbinding te maken met een Bluetooth-apparaat.
Als je de app zelf wilt bouwen, raad ik je aan te beginnen met een "release"-punt omdat het waarschijnlijk op een bepaald moment werkte, terwijl de nieuwste "master" -branch updates kan hebben die niet zijn getest.
Kopieer het apk-bestand naar uw apparaat. U moet "Onbekende bronnen" toestaan in de beveiligingsinstellingen op uw apparaat, aangezien de APK niet afkomstig is van Google Play. Tik vervolgens eenvoudig op het apk-bestand op uw apparaat om het te installeren.
Uiteraard heeft de app bluetooth-machtigingen nodig om met de Arduino te communiceren, en de GPS-machtigingen om je snelheid en afgelegde afstand te bepalen.
Druk op de "remote"-knop om te proberen verbinding te maken met een bluetooth-apparaat. Druk op "reset" om de afgelegde afstand te resetten naar 0. Houd het veld batterij Ah gebruikt om het te resetten nadat u uw batterij hebt opgeladen. De Ah-verbruikswaarde wordt opgeslagen als u de accu uit- en weer inschakelt zonder deze op te laden.
Stap 3: Verzamel onderdelen
Let op: deze onderdelen zijn voor een 36V batterij. Als je een 48V-batterij hebt, moet je de 10K-weerstand veranderen in 11K of 12 K en heb je een andere DC-DC-converter nodig.
1 Weerbestendige behuizing. Ik gebruikte een 4x4x2 inch PVC elektriciteitskast.
1 stuk van je favoriete stripboard of protoboard
1 Arduino Pro Mini, 5V 16 MHZ. Je kunt ook gemakkelijk een bareboard-arduino bouwen, omdat je geen spanningsregelaar of usb-interface nodig hebt. Het enige wat je nodig hebt is de ATMEGA328P, een 16MHZ kristal en een paar condensatoren. Je kunt ook een Arduino Nano gebruiken als je ruimte hebt in je behuizing. De Nano is groter dan de eerste twee keuzes, maar heeft de ingebouwde USB-interface als je geen seriële converter hebt.
1 ACS712-module die past bij het huidige bereik van uw batterij. Ik gebruikte een 20A-module voor mijn 8A-batterij.
1 HC-05 bluetooth-module. Ik hou van de ZS-040-variant, de 6-pins soort met de drukknop. Op de achterkant staat het label ZS-040.
1 50V tot 5V DC-DC voeding als je fiets een 36V batterij heeft, die ongeveer 42V volledig opgeladen is. Als je een 48V-batterij hebt, is deze 56 of 57V volledig opgeladen, dus je hebt mogelijk een andere voeding nodig. Laat ons weten wat je gebruikt als je iets vindt voor 60V. Sommige mensen zeggen dat de meeste usb wall wratten werken op 48VDC (en hoger), maar ik heb het niet geprobeerd.
1/4W Weerstanden: 1 x 2K, 1 x 10K, 2 x 1K (verhoog de 10K als uw batterij meer dan 36V is).
In-line zekeringhouder en 2A zekering.
rechte en rechte hoek Header Strips
5,08 mm aansluitklemmen, 2 x 2
16AWG gevlochten draad voor het onderling verbinden van de modules.
22AWG massieve draad voor het arduino-circuit
Terminal Block Strip voor de accu- en fietsaansluitingen
Soldeerbout
soldeer
Een manier om je Android-apparaat op je fiets te monteren.
Om de Arduino en HC-05 module te programmeren heb je ook een 3.3V usb naar ttl seriële converter nodig (of op zijn minst een isp programmer) en de Arduino ide van https://www.arduino.cc/en/Main/Software. Dit project is gedaan met versie 1.6.13, verschillende versies kunnen al dan niet werken zonder aanpassingen.
Stap 4: Initialiseer Arduino EPROM
Ik heb verzuimd deze stap op te nemen in de originele instructable. Het gebied van de EPROM dat door de schets wordt gebruikt, moet worden geïnitialiseerd om de schets goed te laten werken. De schets zou kunnen worden geschreven om het automatisch te doen, maar op dit moment is dat niet het geval.
Als je niet met de arduino-broncode werkt, kun je het hex-bestand dat bij deze stap is bijgevoegd naar je arduino downloaden om de EPROM te initialiseren.
Als je met de arduino-broncode werkt, zijn er twee regels in de setup()-sectie die er als volgt uitzien:
// initialiseer de EEPROM de eerste keer dat het programma wordt uitgevoerd.
//update EPROM();
Als u de tweede regel verwijdert, zodat deze er als volgt uitziet:
// initialiseer de EEPROM de eerste keer dat het programma wordt uitgevoerd.
updateEPROM();
Download die schets naar de Arduino en laat hem draaien. De EPROM wordt geïnitialiseerd. Beveel vervolgens de regel aan voor de volgende stap.
De EPROM wordt gebruikt om te onthouden hoeveel van de batterij is gebruikt, zodat u op uw fiets kunt rijden, kunt stoppen en de batterij kunt uitschakelen, en wanneer u hem weer aanzet, begint hij waar u was gebleven.
Stap 5: Arduino configureren
Download de Arduino-code (hex-bestand bijgevoegd) naar de Pro Mini met behulp van de Arduino IDE of zelf avrdude. Normaal gesproken zou je hiervoor de usb naar serieel converter gebruiken, maar je zou ook een isp programmer kunnen gebruiken.
Nogmaals, als je het zelf wilt compileren, begin dan met een "release". De nieuwste "master" -branch heeft mogelijk niet-geteste wijzigingen.
Als u de 10K-weerstand hebt gewijzigd in iets hogers, moet u ook de constante van de batterijspanningsdeler in de schets wijzigen. Verander de 11.0 in de regel "dubbele VBmultiplier = 11.0;" overeenkomen met wat u ook hebt geïnstalleerd.
Stap 6: HC-05-module configureren
U moet de baudrate configureren op de HC-05-module. Het is ook leuk om het een naam te geven die je later gemakkelijk kunt herkennen (zoals "BIKE").
Ook hiervoor gebruik je de usb naar ttl seriële converter module. Als je geen seriële converter hebt, kun je een schets schrijven voor een Arduino om deze te configureren, of ik denk dat als je 2 HC-05-modules hebt, je ze aan elkaar kunt haken en de ene kunt gebruiken om de andere te programmeren (misschien).
Er is een uitstekende beschrijving van deze module op
U moet de baudrate configureren op 4800 om overeen te komen met de Arduino-schets en de naam wijzigen in "BIKE" of iets dat u zult herkennen.
Zodra de module is geconfigureerd, kunt u deze koppelen met uw Android-apparaat in uw Bluetooth-instellingen.
Stap 7: monteer circuit
Ik heb ter referentie een scan van mijn handgetekende bedradingsschema bijgevoegd, als iemand ambitieus genoeg is om het mooi opnieuw te tekenen, laat het me dan weten:)
Maak de volgende verbindingen:
(+) Fietsaccu aan één kant van zekering en fietscontroller.
Andere kant van zekering naar DC-converter (+)IN-aansluiting en 10K-weerstand voor batterijspanningsingang op Arduino.
(-) Fietsaccu naar (-)IN op converter en één ACS712 voedingsaansluiting.
Zorg er op dit moment voor dat u 5V van uw DC-converter hebt wanneer u uw batterij inschakelt, als u dat nog niet hebt gedaan.
Schakel de batterij weer uit en voltooi de verbindingen:
(+)UIT van converter Arduino 5V, HC05 VCC, ACS712 VCC.
(-)OUT van converter naar Arduino GND, HC05 GND, ACS712 GND, Arduino pin A2.
HC05 TXD naar Arduino pin 7
HC05 RXD van bluetooth-weerstandsverdeler.
Arduino pin 8 naar bluetooth weerstandsdeler.
ACS712 OUT naar Arduino pin A3
Batterijspanningsverdeler naar Arduino-pin A1
(-) van Bike Controller naar tweede voedingsaansluiting op ACS712.
De extra resetknop is niet echt nodig, het kan gewoon handig zijn als je naar de arduino wilt downloaden nadat deze op je fiets is geïnstalleerd. U kunt mogelijk de resetknop op de Arduino bereiken, of u kunt deze resetten via de seriële interface als uw pro mini dit ondersteunt.
Controleer uw verbindingen dubbel.
Stap 8: Voorlopige verificatie
Op dit punt kunt u het circuit inschakelen en controleren of u metingen ontvangt in de Android-app.
Je zou in staat moeten zijn om de bluetooth op de fiets aan te sluiten en de batterijspanning te zien en hopelijk bijna nul batterijstroom. Als je de fiets kunt laten draaien en de huidige aflezing ziet veranderen, dan werkt alles.
De app gaat ervan uit dat positieve stroom de batterij leegmaakt, dus als de aflezing een negatieve stroom laat zien wanneer u de fiets laat draaien, verwisselt u gewoon de twee stroomdraden op de ACS712-module.
Als u geen metingen in de app ziet, kunt u naar de lampjes op de bluetooth-module kijken om te controleren of deze is aangesloten en gegevens verzendt. U kunt een bluetooth-terminal-app op uw apparaat installeren om de gegevens te zien die vanaf het circuit worden verzonden. U zou ongeveer 10 regels per seconde aan stroommetingen moeten zien en één regel per seconde aan batterijspanning en hoeveelheid gebruikte batterij. Als je niets ziet, controleer dan de configuratie van de HC05-module en de verbindingen tussen de arduino, de weerstandsdeler en de HC05 TXD-aansluiting opnieuw.
Laat de fiets ten slotte lang genoeg draaien om een niet-nulwaarde weer te geven in het display voor gebruikte batterij. Druk vervolgens lang op dat nummer totdat de toast verschijnt dat het gebruik is gereset. Het getal moet terugkeren naar nul. Als dit na een paar keer proberen niet het geval is, controleer dan de verbindingen van de HC05 RXD-terminal naar de Arduino opnieuw.
Stap 9: Eindmontage
Installeer al het bevestigingsmateriaal en monteer het arduino-circuit op je fiets. Monteer je Android-apparaat in een tas of andere houder en je bent helemaal klaar om te gaan!
De foto's tonen de batterijsteken op mijn fiets en de tas voor mijn Android-apparaat.
Je kunt het bordje zien voor de aansluitingen van de batterijspanningsdeler en de ACS712 gemonteerd zodat ik de schroeven van het aansluitblok kon bereiken nadat ik alles had gemonteerd. De HC-05 bluetooth-module bevindt zich weer in de rechterhoek.
De witte klemmenstrook heeft alle aansluitingen van de accu en de fietscontroller op het circuit.
Als ik het opnieuw zou moeten doen, zou ik zeker de Battery voltage divider en de ACS712 combineren op hetzelfde stuk dochterbord. Ik zou ook kunnen proberen de bluetooth-module op een dochterbord onder de arduino te monteren.
Stap 10: Toekomstige stappen
De Android App kan veel werk gebruiken. Ik wil graag wat kleurveranderingen toevoegen op basis van bereiken voor de metingen. Ik zou ook graag een indicatie willen toevoegen dat een meting niet wordt bijgewerkt in de app. U kunt ook enkele grafische meters toevoegen. Zelfs een mooi icoon zou een grote verbetering zijn.
De beste eigenschap zou een "geschatte hoeveelheid leeg" zijn die u zou vertellen hoeveel afstand u zou kunnen afleggen met uw resterende batterijlading, en of dat meer is dan de afstand tot uw bestemming. Aangezien ik normaal gesproken naar mijn werk of naar huis rijd, denk ik dat er GPS-waypoints in de app zijn opgeslagen die de resterende afstand tot huis hebben, en hoeveel batterij er gemiddeld op dat waypoint wordt gebruikt. Je zou waarschijnlijk ook iets kunnen doen met een dataverbinding, maar die heb ik normaal gesproken niet.
Ik zou graag weg willen van de bluetooth-bibliotheek in deze app naar een meer ontwikkelde bibliotheek met bijvoorbeeld automatisch opnieuw verbinden.
Als u dit bouwt, kunt u overwegen een hardware laagdoorlaatfilter toe te voegen aan de gemeten stroom en deze afzonderlijk te meten om te gebruiken voor de berekening van de totale gebruikte lading. Bij lage belastingen, minder dan 4A of zo, varieert de meting sterk, +/-1A. Ik weet niet zeker of het gewoon een meetprobleem is of dat de stroom zoveel verandert als het wiel draait. In elk geval kan een afzonderlijke meting van de gemiddelde stroom gedurende een seconde of twee nauwkeuriger zijn. Je zou de stroom gewoon sneller kunnen samplen en het in software kunnen doen, maar ik weet niet hoe snel je zou moeten samplen. Ik denk dat het plaatsen van een oscilloscoop op het signaal kan helpen om erachter te komen hoe snel het kan worden gesampled.
Je zou dingen als een pitotbuis kunnen toevoegen om de windsnelheid te meten (daar is al een instructable voor).
Je zou een gesloten lus-gasregeling van de arduino kunnen toevoegen.
Als je altijd al een USB-stroombron op je fiets wilde hebben, kun je eenvoudig een kabel van de 5V DC-converter voor de arduino laten lopen naar waar je de USB-stroomaansluiting nodig hebt.
Stap 11: Vragen en opmerkingen
Als je algemene vragen hebt over een van de items hier, kun je het beste gewoon googlen in plaats van hier vragen te stellen. Geen van de items is van cruciaal belang, u kunt vrijwel zeker iets anders vervangen en de klus klaren.
Vraag me niet om je de code te sturen, het staat allemaal op github. Haal het daar vandaan. Je hebt niet eens een github-account nodig.
Vraag me alsjeblieft niet hoe ik iets moet doen in Android Studio of op Arduino. Ik weet het waarschijnlijk niet. Nogmaals, google het maar eens.
Vraag me echt niet naar Apple-producten, ik heb geen idee.
Het spijt me als de app niet werkt op uw apparaat. Maar ik weet waarschijnlijk niet hoe ik het moet repareren zodat het wel zo is. Het werkt op mijn telefoon, meer heb ik niet nodig.
Hoewel suggesties voor verbeteringen welkom zijn, zal ik ze waarschijnlijk nooit implementeren, ik heb andere dingen om naar toe te gaan. Ik zal waarschijnlijk zelfs nooit mijn eigen suggesties uitvoeren. Je kunt het beste doen om de code op github te forken en zelf dingen toe te voegen. Als je dat doet, laat het mensen dan hier weten, zodat ze jouw code kunnen gebruiken in plaats van de mijne.
Als je zelf al een betere versie hebt gebouwd, plaats dan hier een verwijzing ernaar zodat anderen er van op de hoogte zijn. Ik zal niet beledigd zijn. Ik neem graag uw versie over en ga ermee aan de slag.
Stap 12: App-update voor testen
Dit zijn bijgewerkte versies van de app.
De aantallen zijn veel groter. Er is een nieuw icoon. Er is geen knop "verbinden" meer. Gebruik de optie "verbinden - beveiligen" in het menu in de rechterbovenhoek.
Deze versie zou ook terug moeten werken naar Android-versie 2.3 peperkoek. Het werkt op mijn LG P500 Optimus One.
De "app-settings-debug.apk"-versie heeft een instellingenmenu waarmee u de capaciteit van uw batterij kunt instellen zodat de berekening van het resterende percentage correct is. Het is niet volledig getest.
Aanbevolen:
DIY elektrisch longboard! 7 stappen (met afbeeldingen)
DIY Elektrisch Longboard!: Hallo, mede-makers die er zijn, in deze gids laat ik je zien hoe je een doe-het-zelf elektrisch skateboard maakt met een relatief klein budget. Het bord dat ik heb gebouwd, kan snelheden bereiken van ongeveer 40 km/u (26 mph) en ongeveer 18 km rennen. Hierboven vindt u een videogids en een paar pi
Elektrisch longboard: 6 stappen
Elektrisch longboard: in deze instructable gaan we een elektrisch longboard maken met een Arduino Uno en een Raspberry Pi
Elektrisch longboard: 7 stappen
Elektrisch longboard: dit project is gebouwd omdat ik niet zeker wist hoe gemakkelijk of snel het zou zijn om over een nieuwe en veel grotere campus te navigeren. Het bestaat uit: Santa Cruz longboard, 2 naafmotoren, alien power system esc en een batterij bestaande uit 18650 cellen van de
Speedboard: elektrisch skateboard: 5 stappen
Speedboard: Elektrisch Skateboard: Hallo! Ik ben een MCT College Student uit Howest in België. Vandaag zal ik je een stapsgewijze handleiding geven over hoe je een elektrisch skateboard kunt maken met een Raspberry Pi en Arduino. Ik werd geïnspireerd om dit project te maken door een beroemde youtuber genaamd Casey Neistat
Afstandsbediening voor elektrisch skateboard: 7 stappen
Elektrisch skateboard-afstandsbediening: maak een afstandsbediening voor elektrisch skateboard, in JAVASCRIPT! Doe mee aan mijn reis, hopelijk leer je iets. Dit zal geen stapsgewijze zelfstudie zijn. Het zal meer een showcase zijn van wat ik heb gebruikt, hoe ik het heb gedaan en ik weet zeker dat jij het ook kunt doen. Ik raad het zelfs aan