Innholdsfortegnelse:

Raspberry Pi motorsykkel dashbord: 9 trinn (med bilder)
Raspberry Pi motorsykkel dashbord: 9 trinn (med bilder)

Video: Raspberry Pi motorsykkel dashbord: 9 trinn (med bilder)

Video: Raspberry Pi motorsykkel dashbord: 9 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Raspberry Pi motorsykkel dashbord
Raspberry Pi motorsykkel dashbord

Som student Multimedia & Communication technology i Howest Kortrijk, måtte jeg lage mitt eget IoT -prosjekt. Dette ville kombinere alle modulene som ble fulgt i det første året til et stort prosjekt. Fordi jeg sykler mye på motorsykkelen min på fritiden, bestemte jeg meg for å bruke de oppnådde ferdighetene mine på MCT tu til å bygge noe for motorsykkelen min: Et smart dashbord.

MotoDash er et Raspberry Pi -drevet dashbord designet for fanatiske motorsyklister som gir rytteren muligheten til å spore ytelsen.

Hva er funksjonene i dette dashbordet?

  • Ser nåværende tiltvinkel
  • Ser nåværende akselerasjon
  • Evne til å overvåke oljetemperaturen
  • Bytt automatisk til mørkt tema når du sykler i mørket
  • Logg data for turene dine, og se din egen statistikk

Rekvisita

Hovedberegningsenhet:

Raspberry Pi Dette er hovedkontrolleren til systemet

Elektronikk:

  • USB-lader for motorsykkel 12V-5V Hovedstrømforsyning for RPi
  • 4 -pins sikringsrelé 12V Bryter for å slå på/av strømkretsen til RPi
  • Brødbrett med jumperwires (valgfritt) For testing og prototyping
  • Et sett med motstander

    Ulike farger på 0,2 mm wire

  • Breakout Pi plusThis er et prototypebrett hvor du kan lodde alle komponentene dine. Den er laget for å passe direkte på toppen av Raspberry Pi, slik at dimensjonene til prosjektet holder seg til et minimum.

Sensorer og moduler:

  • Vanntett DS18B20 1-tråds temperatursensor Oljetemperaturføler
  • 3 akser gyro akselerometer MPU6050 Vipp/aksel sensor
  • Lysavhengig motstand (LDR)
  • MCP3008-8-kanals 10-biters ADC med SPI-grensesnitt

    TFT SPI -skjerm (eller annen LCD -skjerm som passer dine behov)

    RGB LED

Hylster:

  • Plastboks
  • Bringebær pi -etui

Verktøy:

  • Loddejern og loddetinn
  • 2,5 mm skruer og avstandsstykker
  • Vanntette kabelkontakter
  • Superlim

Trinn 1: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

Før vi gjør alt permanent, skal vi sette sammen prosjektet på et brødbrett. Dette trinnet kan hoppes over hvis du er helt sikker på at du ikke vil gjøre feil. Det elektriske/brødbrettopplegget finner du i PDF -filen nedenfor. Sett kretsen sammen nøyaktig som beskrevet. Sørg for å bare bruke 3.3V -pinnen og ikke 5V -pinnen på RPi. Sjekk også kretsen din før du slår på bringebær Pi. Pass på at det ikke er shorts!

Trinn 2: Forberedelse av Raspberry Pi

Forbereder Raspberry Pi
Forbereder Raspberry Pi

Først og fremst skal vi sette opp Raspberry Pi. Raspberry Pi er en minidatamaskin som kan kjøre sitt eget operativsystem. For dette prosjektet er det ansvarlig for behandling av sensordata, hosting av nettstedet, drift av backend og database, …

1. Installer tilpasset Raspbian -bilde

Bildet som følger med inneholder allerede programvarepakkene som trengs for å sette i gang dette prosjektet:

  • Apache for nettstedets frontend
  • MariaDB for databasen
  • PhpMyAdmin for å manipulere databasen
  • Tilpassede tillatelser for å unngå problemer

Det tilpassede bildet kan lastes ned herfra.

En opplæring for installering av bilder finner du her:

Når bildet er installert, kobler du Raspberry Pi til datamaskinen med en ethernet -kabel. Nå kan du bruke en SSH -klient til å koble til den på IP -adressen 169.254.10.1

Det er god praksis å sette et nytt passord umiddelbart med kommandoen passwd

2. Konfigurere trådløs AP

Når prosjektet er ferdig, ønsker vi å kunne koble til RPi via wifi, så la oss gjøre det til et trådløst AP. En opplæring for dette finner du her.

Du trenger bare å følge denne opplæringen frem til trinn 7. Trinn 8 er ikke nødvendig, da vi ikke trenger å koble en internettforbindelse, men opprette et frittstående nettverk.

3. Aktivering av grensesnitt

Gå til raspi-config

sudo raspi-config

Gå til grensesnittalternativer og aktiver 1-wire, SPI og I2C og start Pi på nytt

3. Sette opp drivere for skjermen

Initialiserer visningen

Rediger filen /etc /modules

sudo nano /etc /modules

Legg til følgende 2 linjer

spi-bcm2835fbtft_device

Rediger nå /etc/modprobe.d/fbtft.conf

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

Legg til følgende linje

alternativer fbtft_enhetsnavn = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 roter = 90 hastighet = 80000000 fps = 60

Start Pi på nytt. Hvis du ser at bakgrunnsbelysningen på displayet lyser, har alt gått bra. Dette vil initialisere skjermen hver gang Pi starter opp, men den vil bare vise en svart skjerm nå. For å få innholdet i Pi på skjermen, må vi kopiere innholdet på hovedskjermen til den lille LCD -skjermen. Vi vil bruke en tjeneste kalt 'fbcp' for dette.

Installerer fbcp -tjenesten

sudo apt-get install cmake

git-klon

cd rpi-fbcp

mkdir build

cd bygge/

cmake..

gjøre

sudo installer fbcp/usr/local/bin/fbcp

Nå har vi installert tjenesten. Siden vi bruker Pi hodeløs, er det imidlertid ingen skjerm tilgjengelig for å kopiere innhold fra. For å tvinge Pi til å vise skjerminnhold, rediger /boot/config.txt

sudo nano /boot/config.txt

Finn og fjern kommentaren eller legg til følgende linjer i denne filen:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Start RPi på nytt, og test ut fbcp -tjenesten ved å skrive fbcp i konsollen. Nå bør du se innholdet på skjermen på LCD -skjermen.

Kjører fbcp ved oppstart

Rediger /etc/rc.local og legg til følgende linje mellom ip -adressen og utgangslinjen

fbcp &

Nå skal displayet slås på hver gang RPi starter opp

Trinn 3: Database

Database
Database

For å logge og lagre sensordata har jeg designet min egen database som inneholder 4 tabeller. EER -diagrammet er vist på bildet ovenfor.

1. Enheter

Denne tabellen inneholder hver sensor. Den beskriver sensorens navn, beskrivelse og måleenhet. Denne tabellen har et en-til-mange-forhold til bordhandlingene, som i mitt tilfelle kan akselerosensoren utføre forskjellige oppgaver.

2. Handlinger

Denne tabellen lagrer handlinger for forskjellige sensorer. En handling er alltid knyttet til en bestemt sensor. For eksempel: handlingen 'TEMP' er knyttet til enheten som måler temperatur. Dette vil være 1-leders temperatursensor.

3. Historie

Denne tabellen inneholder alle sensorlogger. Hver logg har en handlings -ID, en verdi, et tidsstempel og et rideid

4. Ritt

Dette bordet lagrer forskjellige turer. Hver gang brukeren starter en ny tur, gjøres en ny oppføring i denne tabellen

For å få denne databasen på Raspberry Pi, gå over til min GitHub og klon/last ned depotet. Under databasen finner du 2.sql -filer. Kjør disse i PhpMyAdmin eller MySQL arbeidsbenk. Nå skal databasen være på RPi -en din.

Trinn 4: Backend

Hvis du ikke allerede har gjort det, kan du gå til GitHub og klone/laste ned depotet. Under mappen Backend finner du hele backend for prosjektet.

Mappen inneholder klasser for lesesensorer under /hjelpere, filer for å kommunisere med databasen under /repositories, og hovedprogrammet ligger i roten under navnet app.py.

Installere Python -pakker

Før vi prøver å kjøre noe, må vi først installere noen pakker for python. Gå inn på terminalen til RPi og skriv inn følgende kommandoer:

pip3 installer mysql-connector-python

pip3 installere flask-socketio

pip3 installere kolbe-kors

pip3 installer gevent

pip3 installer gevent-websocket

VIKTIG MERK: Hvis du har endret Mariadb/Mysql -passordet ditt, må du endre passordet i config.py!

Test backend

Kjør app.py ved hjelp av python3 -tolken (/usr/bin/python3). Sørg for at det ikke er noen feil.

Kjører backend på støvel

Rediger motoDash_backend.service og endre YOURFILEPATH til banen der depotet er lagret.

Kopier nå denne filen til/etc/systemd/system/

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

Nå starter backend automatisk hver gang RPi starter.

Trinn 5: Frontend

Frontend
Frontend
Frontend
Frontend

Gå inn i GitHub Repo. Kopier innholdet i Frontend -katalogen til/var/www/html.

Dette er alt du bør gjøre for å få frontend til å fungere. Denne mappen inneholder alle nettsider, styling og skript for webgrensesnittet. Det kommuniserer også med backend. For å teste om alt fungerer som det skal, må du kontrollere at du er koblet til RPi -en og skrive inn IP -adressen til RPi -en i en nettleser. Du bør se hjemmesiden til webgrensesnittet.

Merk: Nettstedet er responsivt, så du kan bruke det på mobil, så vel som på skrivebordet

Trinn 6: Visning av instrumentbordet på skjermen

Visning av dashbordet på skjermen
Visning av dashbordet på skjermen

Frontenden har sin egen skjulte webside som bare brukes til den lille skjermen. Vi får Pi til å starte opp automatisk til dette nettstedet i fullskjermsmodus.

Sørg for at RPi er satt til autologin på skrivebordet i raspi-config under oppstartsalternativer

sudo raspi-config

Gå nå inn i den skjulte konfigurasjonsmappen og lag en ny fil der

cd.konfig

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Legg til følgende linjer i denne filen og lagre

@xscreensaver -no -splash

@xset er av

@xset -dpms

@xset s noblank

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

Nå bør Pi starte opp til denne nettsiden hver gang

Trinn 7: Lodding av elektronikken

Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken
Lodding av elektronikken

Ta breakoutbrettet og legg komponentene på det på en strukturert måte. Jeg vil ikke diskutere oppsettet for hvordan jeg loddet komponentene på det, da jeg gjorde en ganske dårlig jobb med det. Jeg brukte separate pinnehoder på brettet, slik at jeg bare trengte å koble sensorene og modulene til den riktige pinnen. Sørg for at du vet hvilken pin som er til hva!

Noen tips under lodding:

  • Bruk isolerte ledninger når du krysser større avstander. Det siste du vil ha er shorts i kretsen din
  • Etter lodding av en komponent eller tråd, må du kontrollere dens kontinuitet med et multimeter. Sjekk også jevnlig for kortslutning.
  • Ikke bruk for mye eller for lite loddetinn!
  • Hvis du ikke vet hvordan du skal lodde, øv deg først på et annet prototypebrett. En opplæring om lodding finner du her.

Nå er loddetrådene lange nok til sensorene, og legg litt krympende omslag rundt dem for å sikre at alt ikke er kortsluttet og rent.

Når du er ferdig, må du dobbeltsjekke om det er shorts eller dårlige tilkoblinger, og kontrollere hver tilkobling med det elektriske opplegget om det er riktig tilkobling. Når du er sikker på at alt er gjort riktig, fortsett og legg breakoutbordet på RPi, avslutt skru det godt med noen 2,5 mm skruer og standoff. Koble sensorene til de riktige pinnene og test dem alle ved hjelp av nettstedet.

Trinn 8: Strømforsyning

For å drive Raspberry Pi skal vi bruke en 12V-5V usb-adapter. Denne adapteren kobles til motorsykkelbatteriet. For å sikre at RPi slår seg på når tenningsbryteren er slått på, skal vi bruke et relé. Reléet vil lukke RPi -strømkretsen når den oppdager en spenning fra baklyset (baklyset slås alltid på når tenningen slås på).

For en mer detaljert opplæring om dette, sjekk ut denne siden: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -kontrollere.16921/

Trinn 9: Boliger

Boliger
Boliger
Boliger
Boliger
Boliger
Boliger

Displayhus

For displayet, ta deg en hard plastboks fra størrelsen på skjermen. Skjær et firkantet hull i det så stort som displayet, og matchende hull for å skru skjermen i. Foran må du bore ytterligere 2 hull for RGB LED og LDR.

Jeg monterte denne boksen på toppen av en smarttelefonholder med en bolt.

Temperatur sensor

For å holde temperatursensoren, har jeg 3D -skrevet ut en oljemåler som passer motorsykkelen min.

Bringebær Pi

Monter selve bringebær Pi på et sikkert sted inne i motorsykkelen, jeg plasserte den under en av skjermene ved hjelp av noen borrelåsbånd. Og beskyttet den mot elementene ved hjelp av et hus og litt plast.

Akselerometer

Monter akselerometeret på et sikkert sted, helst på selve motorsykkelrammen.

Merk:

Du trenger ikke å ha nøyaktig samme bolig som meg, du står fritt til å fullføre det slik du vil. Bare sørg for at de elektroniske komponentene er beskyttet mot regn og støv.

Anbefalt: