Indholdsfortegnelse:

Raspberry Pi Motorcykel Dashboard: 9 trin (med billeder)
Raspberry Pi Motorcykel Dashboard: 9 trin (med billeder)

Video: Raspberry Pi Motorcykel Dashboard: 9 trin (med billeder)

Video: Raspberry Pi Motorcykel Dashboard: 9 trin (med billeder)
Video: System For Advanced Electricity Measurement Electricity Meater Video 2024, Juli
Anonim
Raspberry Pi Motorcykel Dashboard
Raspberry Pi Motorcykel Dashboard

Som studerende Multimedie- og kommunikationsteknologi i Howest Kortrijk var jeg nødt til at lave mit eget IoT -projekt. Dette ville kombinere alle de moduler, der blev fulgt i det første år, til et stort projekt. Fordi jeg kører meget på min motorcykel i fritiden, besluttede jeg at bruge mine erhvervede færdigheder på MCT tu til at bygge noget til min motorcykel: Et smart instrumentbræt.

MotoDash er et Raspberry Pi -drevet dashboard designet til fanatiske motorcyklister, der giver rytteren mulighed for at spore deres præstationer.

Hvad er funktionerne i dette dashboard?

  • Se den aktuelle tiltvinkel
  • Ser aktuel acceleration
  • Evne til at overvåge olietemperaturen
  • Skift automatisk til mørkt tema, når du kører i mørket
  • Log data om dine forlystelser, og se din egen statistik

Forbrugsvarer

Hovedcomputerenhed:

Raspberry Pi Dette er systemets hovedcontroller

Elektronik:

  • USB oplader til motorcykel 12V-5V Hovedstrømforsyning til RPi
  • 4 Pin Fused Relay 12V Skift for at tænde/slukke for strømkredsløbet på RPi
  • Brødbræt med jumperwires (valgfrit) Til test og prototyper
  • Et sæt modstande

    Forskellige farver på 0,2 mm tråd

  • Breakout Pi plus Dette er et prototypebord, hvor du kan lodde alle dine komponenter. Det er lavet til at passe direkte oven på Raspberry Pi, så projektets dimensioner bliver til et minimum.

Sensorer og moduler:

  • Vandtæt DS18B20 1-tråds temperatursensor Olietemperaturføler
  • 3 akser Gyro Accelerometer MPU6050 Vip/accel sensor
  • Lysafhængig modstand (LDR)
  • MCP3008-8-kanals 10-bit ADC med SPI-interface

    TFT SPI -skærm (eller enhver anden LCD -skærm, der passer til dine behov)

    RGB LED

Kabinet:

  • Plastæske
  • Hindbær pi -kuffert

Værktøjer:

  • Loddejern og loddetin
  • 2,5 mm skruer og afstandsstykker
  • Vandtætte kabelstik
  • Super lim

Trin 1: Prototyping

Prototyper
Prototyper
Prototyper
Prototyper

Inden vi gør alting permanent, vil vi sammensætte projektet på et brødbræt. Dette trin kan springes over, hvis du er helt sikker på, at du ikke laver fejl. Den elektriske/brødbrætskema kan findes i PDF -filen herunder. Sæt kredsløbet sammen nøjagtigt som beskrevet. Sørg for kun at bruge 3.3V pin og ikke 5V pin på RPi. Kontroller også dit kredsløb, før du tænder for hindbær Pi. Sørg for, at der ikke er shorts!

Trin 2: Forberedelse af Raspberry Pi

Forberedelse af Raspberry Pi
Forberedelse af Raspberry Pi

Først og fremmest skal vi oprette Raspberry Pi. Raspberry Pi er en minicomputer, der kan køre sit eget operativsystem. For dette projekt er det ansvarligt for behandling af sensordata, vært for webstedet, drift af backend og database, …

1. Installer brugerdefineret Raspbian -billede

Billedet indeholder allerede de softwarepakker, der er nødvendige for at komme i gang med dette projekt:

  • Apache til webstedets frontend
  • MariaDB til databasen
  • PhpMyAdmin til at manipulere databasen
  • Tilpassede tilladelser for at undgå problemer

Det tilpassede billede kan downloades herfra.

En vejledning til installation af billeder kan findes her:

Når billedet er installeret, skal du slutte Raspberry Pi til din pc med et ethernet -kabel. Nu kan du bruge en SSH -klient til at oprette forbindelse til den på IP -adressen 169.254.10.1

Det er god praksis med det samme at angive et nyt kodeord ved hjælp af kommandoen passwd

2. Konfiguration af trådløst AP

Når projektet er færdigt, vil vi være i stand til at oprette forbindelse til RPi'en via wifi, så lad os gøre det til en trådløs AP. En vejledning til dette kan findes her.

Du behøver kun at følge denne vejledning indtil trin 7. Trin 8 er ikke påkrævet, da vi ikke behøver at bygge en internetforbindelse, men oprette et selvstændigt netværk.

3. Aktivering af grænseflader

Gå ind i raspi-config

sudo raspi-config

Gå til interfacemuligheder, og aktiver 1-wire, SPI og I2C, og genstart Pi

3. Opsætning af drivere til displayet

Initialiserer displayet

Rediger filen /etc /modules

sudo nano /etc /modules

Tilføj følgende 2 linjer

spi-bcm2835fbtft_device

Rediger nu /etc/modprobe.d/fbtft.conf

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

Tilføj følgende linje

muligheder fbtft_enhed navn = tm022hdh26 gpios = nulstilling: 25, dc: 24, led: 18 roter = 90 hastighed = 80000000 fps = 60

Genstart Pi. Hvis du ser displayets baggrundsbelysning, er alt gået godt. Dette vil initialisere displayet hver gang Pi starter, men det viser kun en sort skærm nu. For at få indholdet af Pi på displayet skal vi kopiere indholdet af hovedskærmen til den lille LCD. Vi vil bruge en service kaldet 'fbcp' til dette.

Installation af fbcp service

sudo apt-get install cmake

git-klon

cd rpi-fbcp

mkdir build

cd build/

cmake..

lave

sudo installer fbcp/usr/local/bin/fbcp

Nu har vi installeret tjenesten. Men da vi bruger Pi hovedløs, er der ingen skærm til rådighed til at kopiere indhold fra. For at tvinge Pi til at sende skærmindhold, skal du redigere /boot/config.txt

sudo nano /boot/config.txt

Find og fjern kommentaren, eller tilføj følgende linjer til denne fil:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Genstart RPi'en, og test fbcp -tjenesten ved at skrive fbcp i konsollen. Nu skal du se indholdet af skærmen på LCD -skærmen.

Kører fbcp ved opstart

Rediger /etc/rc.local og tilføj følgende linje mellem ip -adressen og exitlinjen

fbcp &

Nu skal displayet tænde hver gang RPi starter op

Trin 3: Database

Database
Database

For at logge og gemme sensordata har jeg designet min egen database, som indeholder 4 tabeller. EER -diagrammet er vist på billedet ovenfor.

1. Enheder

Denne tabel indeholder hver sensor. Det beskriver sensorens navn, beskrivelse og måleenhed. Denne tabel har et en-til-mange-forhold til bordhandlingerne, som i mit tilfælde kan accelerosensoren udføre forskellige opgaver.

2. Handlinger

Denne tabel gemmer handlinger for forskellige sensorer. Én handling er altid knyttet til en bestemt sensor. For eksempel: handlingen 'TEMP' er knyttet til den enhed, der måler temperatur. Dette ville være 1-tråds temperatursensor.

3. Historie

Denne tabel indeholder alle sensorlogs. Hver log har et handlings -id, en værdi, et tidsstempel og et rideid

4. Rides

Dette bord gemmer forskellige forlystelser. Hver gang brugeren starter en ny tur, foretages en ny indtastning i denne tabel

For at få denne database på din Raspberry Pi, gå over til min GitHub og klon/download depotet. Under databasen finder du 2.sql filer. Kør disse i PhpMyAdmin eller MySQL workbench. Nu skal databasen være på din RPi.

Trin 4: Backend

Hvis du ikke allerede har gjort det, skal du gå til min GitHub og klone/downloade depotet. Under mappen Backend finder du den fulde backend til projektet.

Mappen indeholder klasser til læsesensorer under /hjælpere, filer til kommunikation med databasen under /repositories, og hovedprogrammet er placeret i roden under navnet app.py.

Installation af Python -pakker

Inden vi prøver at køre noget, skal vi først installere nogle pakker til python. Gå ind i terminalen på din RPi og skriv følgende kommandoer:

pip3 installer mysql-connector-python

pip3 installer kolbe-socketio

pip3 installer kolbe-kors

pip3 installer gevent

pip3 installer gevent-websocket

VIGTIG BEMÆRK: Hvis du har ændret din Mariadb/Mysql -adgangskode, skal du ændre adgangskoden i config.py!

Test backend

Kør app.py ved hjælp af python3 -tolken (/usr/bin/python3). Sørg for, at der ikke er fejl.

Kører backend på boot

Rediger motoDash_backend.service og skift YOURFILEPATH til den sti, hvor depotet er gemt.

Kopier nu denne fil til/etc/systemd/system/

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

Nu starter backend automatisk, hver gang RPi starter.

Trin 5: Frontend

Frontend
Frontend
Frontend
Frontend

Gå ind i GitHub Repo. Kopier indholdet af Frontend -biblioteket til/var/www/html.

Dette er alt, hvad du skal gøre for at få frontend til at fungere. Denne mappe indeholder alle websider, styling og scripts til webgrænsefladen. Det kommunikerer også med backend. For at teste, om alt fungerer, som det skal, skal du sørge for, at du har forbindelse til din RPi, og indtaste RPi'ens IP -adresse i en browser. Du skulle se webgrænsefladens startside.

Bemærk: Websitet er responsivt, så du kan bruge det på mobilen såvel som på skrivebordet

Trin 6: Visning af instrumentbrættet på skærmen

Visning af instrumentbrættet på displayet
Visning af instrumentbrættet på displayet

Frontenden har sin egen skjulte webside, der kun bruges til den lille skærm. Vi får Pi til at starte automatisk til dette websted i fuldskærmstilstand.

Sørg for, at RPi er indstillet til autologin på skrivebordet i raspi-config under opstartsmuligheder

sudo raspi-config

Gå nu ind i den skjulte konfigurationsmappe og opret en ny fil derinde

cd.konfig

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Tilføj følgende linjer i denne fil, og gem

@xscreensaver -no -splash

@xset er slukket

@xset -dpms

@xset s noblank

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

Nu skulle Pi starte hver gang til denne webside

Trin 7: Lodning af elektronikken

Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken
Lodning af elektronikken

Tag breakoutbrættet, og læg dine komponenter på det struktureret. Jeg vil ikke diskutere layoutet af, hvordan jeg lodde komponenterne på det, da jeg gjorde et ret dårligt stykke arbejde med det. Jeg brugte separate pinhoveder på brættet, så jeg kun behøvede at forbinde sensorerne og modulerne til den rigtige pin. Sørg for at vide, hvilken pin der er til hvad!

Nogle tips under lodning:

  • Brug isolerede ledninger, når du krydser større afstande. Det sidste du vil have er shorts i dit kredsløb
  • Efter lodning af en komponent eller tråd kontrolleres dens kontinuitet med et multimeter. Tjek også regelmæssigt for kortslutninger.
  • Brug ikke for meget eller for lidt loddetin!
  • Hvis du ikke ved, hvordan du lodder, skal du først øve det på et andet prototypebord. En tutorial om lodning kan findes her.

Nu er loddetråde lange nok til sensorerne, og læg noget krympende omslag omkring dem for at sikre, at alt ikke er kortsluttet og rent.

Når du er færdig, skal du kontrollere, om der er shorts eller dårlige forbindelser, og kontrollere hver forbindelse med det elektriske system, hvis det er den rigtige forbindelse. Når du er sikker på, at alt er udført korrekt, skal du fortsætte og sætte breakout -kortet på RPi'en, slut med at skrue det fast med nogle 2,5 mm skruer og standoff. Tilslut sensorerne til de rigtige ben og test dem alle ved hjælp af webstedet.

Trin 8: Strømforsyning

For at drive Raspberry Pi skal vi bruge en 12V-5V usb-adapter. Denne adapter tilsluttes motorcykelbatteriet. For at sikre, at RPi'en tændes, når tændingslåsen er tændt, skal vi bruge et relæ. Relæet lukker RPi -strømkredsløbet, når det registrerer en spænding fra baglygten (baglygten tænder altid, når tændingen tændes).

For en mere detaljeret vejledning om dette, tjek denne side: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controllere.16921/

Trin 9: Boliger

Boliger
Boliger
Boliger
Boliger
Boliger
Boliger

Displayhus

Til displayet, tag dig selv en hård plastkasse fra omkring størrelsen på skærmen. Skær et firkantet hul i det lige så stort som displayet, og matchende huller til at skrue displayet i. Foran skal du bore 2 huller mere til RGB LED og LDR.

Jeg monterede denne boks oven på en smartphoneholder ved hjælp af en bolt.

Temperatur måler

Til opbevaring af temperatursensoren har jeg 3D -printet en oliemåler, der passer til min motorcykel.

Hindbær Pi

Monter selve hindbær Pi på et sikkert sted inde i motorcyklen, jeg placerede den under en af skærmene ved hjælp af nogle velcrobånd. Og beskyttede den mod elementerne ved hjælp af et hus og noget plastik.

Accelerometer

Monter accelerometeret på et sikkert sted, helst på selve motorcykelrammen.

Bemærk:

Du behøver ikke at have nøjagtig samme bolig som mig, du kan frit afslutte det, som du vil. Sørg bare for, at de elektroniske komponenter er beskyttet mod regn og støv.

Anbefalede: