Innehållsförteckning:

Raspberry Pi Motorcykel Dashboard: 9 steg (med bilder)
Raspberry Pi Motorcykel Dashboard: 9 steg (med bilder)

Video: Raspberry Pi Motorcykel Dashboard: 9 steg (med bilder)

Video: Raspberry Pi Motorcykel Dashboard: 9 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Raspberry Pi Motorcykel instrumentbräda
Raspberry Pi Motorcykel instrumentbräda

Som student Multimedia & Communication -teknik i Howest Kortrijk var jag tvungen att göra mitt eget IoT -projekt. Detta skulle kombinera alla moduler som följdes under det första året till ett stort projekt. Eftersom jag cyklar mycket på min motorcykel på fritiden bestämde jag mig för att använda mina förvärvade färdigheter på MCT tu för att bygga något för min motorcykel: En smart instrumentbräda.

MotoDash är en Raspberry Pi -driven instrumentpanel designad för fanatiska motorcyklister som ger föraren möjlighet att spåra deras prestanda.

Vilka funktioner har denna instrumentpanel?

  • Se nuvarande lutningsvinkel
  • Ser nuvarande acceleration
  • Möjlighet att övervaka oljetemperaturen
  • Växla automatiskt till mörkt tema när du rider i mörkret
  • Logga in dina resor och se din egen statistik

Tillbehör

Huvudberäkningsenhet:

Raspberry Pi Detta är systemets huvudkontroller

Elektronik:

  • USB-laddare för motorcykel 12V-5V Huvudströmförsörjning för RPi
  • 4 -polig säkringsrelä 12V Växla för att slå på/stänga av strömkretsen för RPi
  • Brödbräda med bygelkablar (tillval) För testning och prototyper
  • En uppsättning motstånd

    Olika färger på 0,2 mm tråd

  • Breakout Pi plusThis är ett prototypkort där du kan lödda alla dina komponenter. Den är gjord för att passa direkt ovanpå Raspberry Pi, så projektets dimensioner förblir till ett minimum.

Sensorer och moduler:

  • Vattentät DS18B20 1-trådig temperaturgivare Oljetemperaturgivare
  • 3 axlar gyroaccelerometer MPU6050Tilt/accel sensor
  • Ljusberoende motstånd (LDR)
  • MCP3008-8-kanals 10-bitars ADC med SPI-gränssnitt

    TFT SPI -skärm (eller någon annan LCD -skärm som passar dina behov)

    RGB LED

Hölje:

  • Plastlåda
  • Hallon pi -fodral

Verktyg:

  • Lödkolv och löd
  • 2,5 mm skruvar och distanser
  • Vattentäta kabelanslutningar
  • Superlim

Steg 1: Prototypning

Prototyper
Prototyper
Prototyper
Prototyper

Innan vi gör allt permanent kommer vi att sätta ihop projektet på en brödbräda. Detta steg kan hoppas över om du är helt säker på att du inte kommer att göra misstag. El-/brödbräda -schemat finns i PDF -filen nedan. Sätt ihop kretsen exakt enligt beskrivningen. Se till att bara använda 3.3V -stiftet och inte 5V -stiftet på RPi. Innan du startar hallon Pi dubbelkolla även din krets. Se till att det inte finns några shorts!

Steg 2: Förbereda Raspberry Pi

Förbereder Raspberry Pi
Förbereder Raspberry Pi

Först och främst ska vi konfigurera Raspberry Pi. Raspberry Pi är en minidator som kan köra sitt eget operativsystem. För detta projekt är det ansvarigt för behandling av sensordata, värd för webbplatsen, körning av backend och databas, …

1. Installera anpassad Raspbian -bild

Bilden innehåller redan de programvarupaket som behövs för att starta projektet:

  • Apache för webbplatsens frontend
  • MariaDB för databasen
  • PhpMyAdmin för att manipulera databasen
  • Anpassade behörigheter för att undvika problem

Den anpassade bilden kan laddas ner härifrån.

En handledning för att installera bilder hittar du här:

När bilden är installerad ansluter du Raspberry Pi till din dator med en Ethernet -kabel. Nu kan du använda en SSH -klient för att ansluta till den på IP -adressen 169.254.10.1

Det är bra att omedelbart ställa in ett nytt lösenord med kommandot passwd

2. Konfigurera trådlöst AP

När projektet är klart vill vi kunna ansluta till RPi via wifi, så låt oss göra det till ett trådlöst AP. En handledning för detta hittar du här.

Du behöver bara följa denna handledning fram till steg 7. Steg 8 krävs inte eftersom vi inte behöver överbrygga en internetanslutning, utan skapa ett fristående nätverk.

3. Aktivera gränssnitt

Gå in på raspi-config

sudo raspi-config

Gå till gränssnittsalternativ och aktivera 1-tråds, SPI och I2C och starta om Pi

3. Konfigurera drivrutiner för displayen

Initierar displayen

Redigera filen /etc /modules

sudo nano /etc /modules

Lägg till följande 2 rader

spi-bcm2835fbtft_device

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

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

Lägg till följande rad

alternativ fbtft_enhet namn = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotera = 90 hastighet = 80000000 fps = 60

Starta om Pi. Om du ser att bakgrundsbelysningen på displayen tänds har allt gått bra. Detta kommer att initiera skärmen varje gång Pi startar, men den kommer bara att visa en svart skärm nu. För att få innehållet i Pi på displayen måste vi kopiera innehållet på huvudskärmen till den lilla LCD -skärmen. Vi kommer att använda en tjänst som heter 'fbcp' för detta.

Installera fbcp -tjänst

sudo apt-get install cmake

git-klon

cd rpi-fbcp

mkdir build

cd -byggnad/

cmake..

göra

sudo installera fbcp/usr/local/bin/fbcp

Nu har vi installerat tjänsten. Men eftersom vi använder Pi -huvudet, finns det ingen skärm att kopiera innehåll från. För att tvinga Pi att mata ut skärminnehåll, redigera /boot/config.txt

sudo nano /boot/config.txt

Hitta och avmarkera eller lägg till följande rader i den här filen:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Starta om RPi och testa fbcp -tjänsten genom att skriva fbcp i konsolen. Nu ska du se innehållet på skärmen på LCD -skärmen.

Kör fbcp vid start

Redigera /etc/rc.local och lägg till följande rad mellan ip -adressen och utgångsraden

fbcp &

Nu ska skärmen slås på varje gång RPi startar

Steg 3: Databas

Databas
Databas

För att logga och lagra sensordata har jag utformat en egen databas som innehåller 4 tabeller. EER -diagrammet visas i bilden ovan.

1. Enheter

Denna tabell innehåller varje sensor. Det beskriver sensorns namn, beskrivning och mätenhet. Denna tabell har ett en-till-många-förhållande till tabellåtgärderna, som i mitt fall kan accelerosensorn utföra olika uppgifter.

2. Åtgärder

Denna tabell lagrar åtgärder för olika sensorer. En åtgärd är alltid kopplad till en viss sensor. Till exempel: åtgärden "TEMP" är kopplad till enheten som mäter temperaturen. Detta skulle vara en-tråds temperaturgivare.

3. Historia

Denna tabell innehåller alla sensorloggar. Varje logg har ett åtgärds -id, ett värde, en tidsstämpel och ett rideid

4. Rider

Detta bord lagrar olika åkattraktioner. Varje gång användaren startar en ny tur görs en ny post i denna tabell

För att få denna databas på din Raspberry Pi, gå över till min GitHub och klona/ladda ner förvaret. Under databasen hittar du 2.sql -filer. Kör dessa i PhpMyAdmin eller MySQL arbetsbänk. Nu bör databasen finnas på din RPi.

Steg 4: Backend

Om du inte redan har gjort det, gå till min GitHub och klona/ladda ner förvaret. Under mappen Backend hittar du hela backend för projektet.

Mappen innehåller klasser för läsning av sensorer under /hjälpare, filer för att kommunicera med databasen under /lagringsplatser och huvudprogrammet finns i roten under namnet app.py.

Installera Python -paket

Innan vi försöker köra något måste vi installera några paket för python först. Gå in i terminalen på din RPi och skriv följande kommandon:

pip3 installera mysql-connector-python

pip3 installera flask-socketio

pip3 installera kolvkors

pip3 installera gevent

pip3 installera gevent-websocket

VIKTIGT OBS! Om du har ändrat ditt Mariadb/Mysql -lösenord, ändra lösenordet i config.py!

Testa backend

Kör app.py med python3 -tolkaren (/usr/bin/python3). Se till att det inte finns några fel.

Kör backend på boot

Redigera motoDash_backend.service och ändra YOURFILEPATH till sökvägen där förvaret sparas.

Kopiera nu den här filen till/etc/systemd/system/

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

Nu startar backend automatiskt varje gång RPi startar.

Steg 5: Frontend

Frontend
Frontend
Frontend
Frontend

Gå in i GitHub Repo. Kopiera innehållet i Frontend -katalogen till/var/www/html.

Detta är allt du bör göra för att få frontend att fungera. Denna mapp innehåller alla webbsidor, styling och skript för webbgränssnittet. Det kommunicerar också med backend. För att testa om allt fungerar som det ska, se till att du är ansluten till din RPi och skriver IP -adressen för RPi i en webbläsare. Du bör se hemsidan för webbgränssnittet.

Obs: Webbplatsen är responsiv, så du kan använda den på mobilen såväl som på skrivbordet

Steg 6: Visa instrumentpanelen på skärmen

Visa instrumentpanelen på displayen
Visa instrumentpanelen på displayen

Frontänden har en egen dold webbsida som endast används för den lilla skärmen. Vi gör att Pi startar automatiskt till den här webbplatsen i helskärmsläge.

Se till att RPi är inställt på autologin på skrivbordet i raspi-config under startalternativ

sudo raspi-config

Gå nu in i den dolda konfigurationsmappen och skapa en ny fil där

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Lägg till följande rader i den här filen och spara

@xscreensaver -no -splash

@xset är avstängd

@xset -dpms

@xset s noblank

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

Nu ska Pi starta till den här webbsidan varje gång

Steg 7: Lödning av elektroniken

Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken
Lödning av elektroniken

Ta breakout -brädan och lägg ut dina komponenter på den på ett strukturerat sätt. Jag kommer inte att diskutera layouten för hur jag lödde komponenterna på det, eftersom jag gjorde ett ganska dåligt jobb med det. Jag använde separata stifthuvuden på kortet så att jag bara behövde ansluta sensorerna och modulerna till höger stift. Se till att du vet vilken nål som är till för vad!

Några tips vid lödning:

  • Använd isolerade ledningar när du korsar större avstånd. Det sista du vill ha är shorts i din krets
  • Efter att ha lödt en komponent eller tråd, kontrollera dess kontinuitet med en multimeter. Kontrollera också regelbundet efter kortslutning.
  • Använd inte för mycket eller för lite löd!
  • Om du inte vet hur du ska löda, öva det först på en annan prototypplatta. En handledning om lödning hittar du här.

Nu är lödtrådarna långa nog till sensorerna och lägg några krympande linda runt dem för att se till att allt inte är kortslutet och rent.

När du är klar, kontrollera om det finns korta eller dåliga anslutningar och kontrollera varje anslutning med det elektriska systemet om det är rätt anslutning. När du är säker på att allt är gjort korrekt, fortsätt och lägg utbrottskortet på RPi, slut skruva fast det med några 2,5 mm skruvar och avstånd. Haka på sensorerna till de rätta stiften och testa dem alla med hjälp av webbplatsen.

Steg 8: Strömförsörjning

För att driva Raspberry Pi kommer vi att använda en 12V-5V usb-adapter. Denna adapter kommer att anslutas till motorcykelbatteriet. För att säkerställa att RPi startar när tändningslåset slås på kommer vi att använda ett relä. Reläet stänger RPi -strömkretsen när den detekterar en spänning från bakljuset (bakljuset tänds alltid när tändningen slås på).

För en mer detaljerad handledning om detta, kolla in den här sidan: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controllers.16921/

Steg 9: Bostäder

Hus
Hus
Hus
Hus
Hus
Hus

Displayhus

För skärmen, ta dig en hård plastlåda från ungefär storleken på skärmen. Skär ett fyrkantigt hål i den lika stort som displayen och matchande hål att skruva fast displayen i. Framsidan måste du borra ytterligare 2 hål för RGB -LED och LDR.

Jag monterade den här lådan ovanpå en smartphonehållare med en bult.

Temperatursensor

För att inhysa temperatursensorn, 3D -skrivit jag ut en oljemätare som passar min motorcykel.

Raspberry Pi

Montera själva hallon Pi på en säker plats inuti motorcykeln, jag placerade den under en av skärmarna med några kardborreband. Och skyddade den från elementen med hjälp av ett hölje och lite plast.

Accelerometer

Montera accelerometern på en säker plats, helst på själva motorcykelramen.

Notera:

Du behöver inte ha exakt samma bostad som jag, du är fri att avsluta det som du vill. Se bara till att de elektroniska komponenterna är skyddade från regn och damm.

Rekommenderad: