Inhoudsopgave:
- Benodigdheden
- Stap 1: Prototyping
- Stap 2: De Raspberry Pi voorbereiden
- Stap 3: Database
- Stap 4: Backend
- Stap 5: Frontend
- Stap 6: Het dashboard op het display weergeven
- Stap 7: De elektronica solderen
- Stap 8: Voeding
- Stap 9: Huisvesting
Video: Raspberry Pi Motorcycle Dashboard - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Als student Multimedia & Communicatietechnologie in Howest Kortrijk moest ik mijn eigen IoT-project maken. Hiermee worden alle modules die in het eerste jaar zijn gevolgd samengebracht in één groot project. Omdat ik in mijn vrije tijd veel motorrijd, heb ik besloten om mijn verworven vaardigheden bij MCT te gebruiken om iets voor mijn motor te bouwen: een slim dashboard.
MotoDash is een door Raspberry Pi aangedreven dashboard dat is ontworpen voor fanatieke motorrijders en waarmee de rijder zijn prestaties kan volgen.
Wat zijn de kenmerken van dit dashboard?
- Huidige kantelhoek bekijken
- Huidige versnelling bekijken
- Mogelijkheid om de olietemperatuur te controleren
- Schakel automatisch over naar het donkere thema bij het rijden in het donker
- Log gegevens van uw ritten en bekijk uw eigen statistieken
Benodigdheden
Belangrijkste rekeneenheid:
Raspberry Pi Dit is de hoofdcontroller van het systeem
Elektronica:
- USB-oplader voor motorfiets 12V-5VHoofdvoeding voor de RPi
- 4-pins gezekerd relais 12V Schakel om het stroomcircuit van de RPi. in/uit te schakelen
- Breadboard met jumperdraden (optioneel)Voor testen en prototyping
-
Breakout Pi plus Dit is een prototyping board waar je al je componenten op kunt solderen. Het is gemaakt om direct op de Raspberry Pi te passen, dus de afmetingen van het project blijven tot een minimum beperkt.
Een set weerstanden
Verschillende kleuren van 0,2 mm draad
Sensoren en modules:
- Waterdichte DS18B20 1-draads temperatuursensorOlietemperatuursensor
- 3-assige Gyro-versnellingsmeter MPU6050 Tilt/accel-sensor
- Lichtafhankelijke weerstand (LDR)
MCP3008 - 8-kanaals 10-bit ADC met SPI-interface
TFT SPI-scherm (of een ander lcd-scherm dat aan uw behoeften voldoet)
RGB-LED
Behuizing:
- Plastic doos
- Raspberry pi-behuizing
Gereedschap:
- Soldeerbout en soldeer
- 2,5 mm schroeven en afstandhouders
- Waterdichte kabelconnectoren
- Superlijm
- …
Stap 1: Prototyping
Voordat we alles permanent maken, stellen we het project samen op een breadboard. Deze stap kan worden overgeslagen als u er absoluut zeker van bent dat u geen fouten zult maken. Het elektrische / breadboard-schema is te vinden in de onderstaande PDF. Zet de schakeling precies in elkaar zoals beschreven. Zorg ervoor dat u alleen de 3.3V-pin gebruikt en niet de 5V-pin op de RPi. Controleer ook uw circuit voordat u de Raspberry Pi inschakelt. Zorg ervoor dat er geen korte broeken zijn!
Stap 2: De Raspberry Pi voorbereiden
Allereerst gaan we de Raspberry Pi instellen. De Raspberry Pi is een minicomputer die zijn eigen besturingssysteem kan draaien. Voor dit project is het verantwoordelijk voor het verwerken van sensordata, het hosten van de website, het runnen van de backend en database, …
1. Installeer aangepaste Raspbian-afbeelding
De meegeleverde afbeelding bevat al de softwarepakketten die nodig zijn om dit project een vliegende start te geven:
- Apache voor de website frontend
- MariaDB voor de database
- PhpMyAdmin om de database te manipuleren
- Aangepaste machtigingen om problemen te voorkomen
De aangepaste afbeelding kan hier worden gedownload.
Een tutorial voor het installeren van afbeeldingen is hier te vinden:
Nadat de afbeelding is geïnstalleerd, sluit u de Raspberry Pi met een ethernetkabel aan op uw pc. Nu kunt u een SSH-client gebruiken om er verbinding mee te maken op het IP-adres 169.254.10.1
Het is een goede gewoonte om direct een nieuw wachtwoord in te stellen met het commando passwd
2. Draadloze AP configureren
Wanneer het project is voltooid, willen we via wifi verbinding kunnen maken met de RPi, dus laten we er een draadloos toegangspunt van maken. Een tutorial hiervoor vind je hier.
Je hoeft deze tutorial alleen te volgen tot stap 7. Stap 8 is niet nodig omdat we geen internetverbinding hoeven te overbruggen, maar een standalone netwerk moeten creëren.
3. Interfaces inschakelen
Ga naar raspi-config
sudo raspi-config
Ga naar interface-opties en schakel 1-draads, SPI en I2C in en start de Pi. opnieuw op
3. Stuurprogramma's voor het display instellen
Het scherm initialiseren
Bewerk het bestand /etc/modules
sudo nano /etc/modules
Voeg de volgende 2 regels toe
spi-bcm2835fbtft_device
Bewerk nu /etc/modprobe.d/fbtft.conf
sudo nano /etc/modprobe.d/fbtft.conf
Voeg de volgende regel toe:
opties fbtft_device name=tm022hdh26 gpios=reset:25, dc:24, led:18 roteren=90 snelheid=80000000 fps=60
Start de Pi opnieuw op. Als u de achtergrondverlichting van het display ziet oplichten, is alles goed gegaan. Dit initialiseert het scherm elke keer dat de Pi opstart, maar het geeft nu alleen een zwart scherm weer. Om de inhoud van de Pi op het scherm te krijgen, moeten we de inhoud van het hoofdscherm naar het kleine LCD-scherm kopiëren. Hiervoor gebruiken we een dienst genaamd 'fbcp'.
Fbcp-service installeren
sudo apt-get install cmake
git kloon
cd rpi-fbcp
mkdir bouwen
cd bouwen/
cmake..
maken
sudo install fbcp /usr/local/bin/fbcp
Nu hebben we de service geïnstalleerd. Omdat we de Pi headless gebruiken, is er echter geen scherm beschikbaar om de inhoud van te kopiëren. Om de Pi te dwingen scherminhoud uit te voeren, bewerk je /boot/config.txt
sudo nano /boot/config.txt
Zoek en verwijder commentaar of voeg de volgende regels toe aan dit bestand:
hdmi_force_hotplug=1
hdmi_cvt=640 480 60 0 0 0 0
display_rotate=0
hdmi_group=2
hdmi_mode=87
Start de RPi opnieuw op en test de fbcp-service door fbcp in de console te typen. Nu zou u de inhoud van het scherm op het LCD-scherm moeten zien.
Fbc uitvoeren bij opstarten
Bewerk /etc/rc.local en voeg de volgende regel toe tussen het ip-adres en de exit-regel:
fbcp&
Nu moet het scherm elke keer dat de RPi opstart, worden ingeschakeld
Stap 3: Database
Om sensordata te loggen en op te slaan heb ik mijn eigen database ontworpen die 4 tabellen bevat. Het EER-diagram wordt weergegeven in de afbeelding hierboven.
1. Apparaten
Deze tabel bevat elke sensor. Het beschrijft de sensornaam, beschrijving en meeteenheid. Deze tafel heeft een een-op-veel-relatie met de tafelacties, omdat in mijn geval de accelerosensor verschillende taken kan uitvoeren.
2. Acties
Deze tabel slaat acties op voor verschillende sensoren. Een actie is altijd gekoppeld aan een bepaalde sensor. Bijvoorbeeld: de actie 'TEMP' is gekoppeld aan het apparaat dat temperatuur meet. Dit zou de 1-draads temperatuursensor zijn.
3. Geschiedenis
Deze tabel bevat alle sensorlogs. Elk logboek heeft een actie-ID, een waarde, een tijdstempel en een rideid
4. Ritten
Deze tafel slaat verschillende ritten op. Elke keer dat de gebruiker een nieuwe rit start, wordt er een nieuwe invoer in deze tabel gemaakt
Om deze database op je Raspberry Pi te krijgen, ga je naar mijn GitHub en kloon/download je de repository. Onder database vindt u 2.sql-bestanden. Voer deze uit in PhpMyAdmin of MySQL workbench. Nu zou de database op uw RPi moeten staan.
Stap 4: Backend
Als je dat nog niet hebt gedaan, ga dan naar mijn GitHub en kloon/download de repository. Onder de map Backend vindt u de volledige backend van het project.
De map bevat klassen voor het lezen van sensoren onder /helpers, bestanden om te communiceren met de database onder /repositories, en de hoofdtoepassing bevindt zich in de root onder de naam app.py.
Python-pakketten installeren
Voordat we iets proberen uit te voeren, moeten we eerst enkele pakketten voor python installeren. Ga naar de terminal van je RPi en typ de volgende opdrachten:
pip3 installeer mysql-connector-python
pip3 install flask-socketio
pip3 installeer flask-cors
pip3 installeren gevent
pip3 installeren gevent-websocket
BELANGRIJKE OPMERKING: als u uw Mariadb/Mysql-wachtwoord hebt gewijzigd, wijzigt u het wachtwoord in config.py!
Test de back-end
Voer app.py uit met behulp van de python3-interpreter (/usr/bin/python3). Zorg ervoor dat er geen fouten zijn.
De backend uitvoeren tijdens het opstarten
Bewerk motoDash_backend.service en verander YOURFILEPATH naar het pad waar de repository is opgeslagen.
Kopieer dit bestand nu naar /etc/systemd/system/
sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.
Nu start de backend automatisch elke keer dat de RPi opstart.
Stap 5: Frontend
Ga naar de GitHub Repo. Kopieer de inhoud van de Frontend-map naar /var/www/html.
Dit is alles wat u moet doen om de frontend te laten werken. Deze map bevat alle webpagina's, styling en scripts voor de webinterface. Het communiceert ook met de backend. Om te testen of alles werkt zoals het hoort, moet je ervoor zorgen dat je verbonden bent met je RPi en typ je het IP-adres van de RPi in een browser. U zou de startpagina van de webinterface moeten zien.
Let op: De website is responsive, dus je kunt hem zowel op mobiel als op desktop gebruiken
Stap 6: Het dashboard op het display weergeven
De frontend heeft zijn eigen verborgen webpagina die alleen wordt gebruikt voor het kleine scherm. We laten de Pi automatisch opstarten naar deze website in de modus Volledig scherm.
Zorg ervoor dat de RPi is ingesteld op desktop autologin in raspi-config onder opstartopties
sudo raspi-config
Ga nu naar de verborgen configuratiemap en maak daar een nieuw bestand aan
cd.config
sudo mkdir -p lxsession/LXDE-pi
sudo nano lxsession/LXDE-pi/autostart
Voeg de volgende regels toe aan dit bestand en sla op
@xscreensaver -no-splash
@xset is uitgeschakeld
@xset -dpms
@xset is noblank
@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito
Nu zou de Pi elke keer naar deze webpagina moeten opstarten
Stap 7: De elektronica solderen
Pak het breakout board en leg je componenten er gestructureerd op neer. Ik zal niet ingaan op de lay-out van hoe ik de componenten erop heb gesoldeerd, omdat ik het behoorlijk slecht heb gedaan. Ik heb aparte pin-headers op het bord gebruikt, zodat ik alleen de sensoren en modules op de juiste pin hoefde aan te sluiten. Zorg ervoor dat je weet welke pin waarvoor is!
Enkele tips tijdens het solderen:
- Gebruik geïsoleerde draden bij het oversteken van grotere afstanden. Het laatste wat je wilt is kortsluiting in je circuit
- Controleer na het solderen van een onderdeel of draad de continuïteit met een multimeter. Controleer ook regelmatig op kortsluiting.
- Gebruik niet te veel of te weinig soldeer!
- Als je niet weet hoe je moet solderen, oefen het dan eerst op een ander prototypebord. Een tutorial over solderen vind je hier.
Soldeer nu de draden lang genoeg aan de sensoren en doe er wat krimpfolie omheen om er zeker van te zijn dat alles niet kortgesloten en schoon is.
Als je klaar bent, controleer dan nogmaals op kortsluiting of slechte verbindingen en controleer elke verbinding met het elektrische schema of het de juiste verbinding is. Als je er zeker van bent dat alles correct is gedaan, ga je gang en plaats je het breakout-bord op de RPi, en schroef je het vast met een paar 2,5 mm schroeven en afstandhouders. Sluit de sensoren aan op de juiste pinnen en test ze allemaal met behulp van de website.
Stap 8: Voeding
Om de Raspberry Pi van stroom te voorzien gaan we een 12V-5V usb-adapter gebruiken. Deze adapter wordt aangesloten op de motoraccu. Om ervoor te zorgen dat de RPi opstart wanneer het contact wordt aangezet, gaan we een relais gebruiken. Het relais sluit het stroomcircuit van de RPi wanneer het een spanning van het achterlicht detecteert (het achterlicht gaat altijd aan wanneer het contact wordt aangezet).
Bekijk deze pagina voor een meer gedetailleerde tutorial hierover: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controllers.16921/
Stap 9: Huisvesting
Behuizing weergeven
Pak voor het display een harde plastic doos van ongeveer de grootte van het display. Snijd er een vierkant gat in zo groot als het display, en bijpassende gaten om het display in te schroeven. Aan de voorkant moet je nog 2 gaten boren voor de RGB-led en de LDR.
Ik heb deze doos met een bout op een smartphonehouder gemonteerd.
Temperatuursensor
Voor het huisvesten van de temperatuursensor heb ik een oliemeter 3D geprint die op mijn motor past.
Raspberry Pi
Monteer de Raspberry Pi zelf op een veilige plek in de motor, ik heb hem met wat klittenband onder een van de spatborden geplaatst. En beschermde het tegen de elementen met behulp van een behuizing en wat plastic.
Versnellingsmeter
Monteer de versnellingsmeter op een veilige plaats, bij voorkeur op het motorfietsframe zelf.
Opmerking:
Je hoeft niet exact dezelfde behuizing te hebben als ik, je bent vrij om het af te werken zoals je wilt. Zorg ervoor dat de elektronische componenten beschermd zijn tegen regen en stof.
Aanbevolen:
Smart Motorcycle HUD-prototype (turn-by-turn navigatie en nog veel meer): 9 stappen
Smart Motorcycle HUD-prototype (turn-by-turn navigatie en nog veel meer): Hallo! This Instructables is het verhaal van hoe ik een HUD-platform (Heads-Up Display) heb ontworpen en gebouwd dat is ontworpen om op motorhelmen te worden gemonteerd. Het is geschreven in het kader van de "kaarten"-wedstrijd. Helaas kon ik het niet helemaal afmaken
COVID-19 WHO-dashboard: 8 stappen (met afbeeldingen)
COVID-19 WHO-dashboard: deze instructables laten zien hoe u ESP8266/ESP32 en LCD kunt gebruiken om een COVID-19-situatie te bouwen WHO-dashboard
COVID19-dashboard op wereldkaart (met Python): 16 stappen
COVID19-dashboard op wereldkaart (met behulp van Python): ik weet dat bijna iedereen van ons de meeste informatie over COVID19 weet. En dit instructable gaat over het maken van een bellenkaart, om de realtime gegevens (van gevallen) op de wereldkaart te plotten. Voor meer gemak , ik heb het programma toegevoegd aan de Github-repository:https://github.co
COVID-19-dashboard (eenvoudig en gemakkelijk): 4 stappen
COVID-19-dashboard (eenvoudig en gemakkelijk): Overal is er een enorme uitbraak van het nieuwe COVID-19-virus. Het werd noodzakelijk om het huidige scenario van COVID-19 in het land in de gaten te houden. Dus thuis was dit het project waar ik aan dacht: "An Information Dashboard" - Een da
Live Covid19-tracker met ESP8266 en OLED - Realtime Covid19-dashboard: 4 stappen
Live Covid19-tracker met ESP8266 en OLED | Realtime Covid19-dashboard: bezoek de Techtronic Harsh-website: http://techtronicharsh.com Overal is er een enorme uitbraak van het nieuwe corona-virus (COVID19). Het werd noodzakelijk om het huidige scenario van COVID-19 in de wereld in de gaten te houden. Dus, thuis zijn, was dit de p