INHOUDSOPGAWE:

Raspberry Pi motorfiets dashboard: 9 stappe (met foto's)
Raspberry Pi motorfiets dashboard: 9 stappe (met foto's)

Video: Raspberry Pi motorfiets dashboard: 9 stappe (met foto's)

Video: Raspberry Pi motorfiets dashboard: 9 stappe (met foto's)
Video: WAAROM WACHT IK OP L4D3 2024, Julie
Anonim
Raspberry Pi motorfiets dashboard
Raspberry Pi motorfiets dashboard

As student Multimedia & Communication technology in Howest Kortrijk, moes ek my eie IoT -projek maak. Dit sou al die modules wat in die eerste jaar gevolg is, in een groot projek kombineer. Omdat ek in my vrye tyd baie op my motorfiets ry, het ek besluit om my vaardighede by MCT te gebruik om iets vir my motorfiets te bou: 'n slim paneelbord.

MotoDash is 'n Raspberry Pi -aangedrewe dashboard wat ontwerp is vir fanatiese motorfietsryers wat die ruiter die vermoë gee om hul prestasie te volg.

Wat is die kenmerke van hierdie paneelbord?

  • Kyk na die huidige kantelhoek
  • Bekyk huidige versnelling
  • Vermoë om olietemperatuur te monitor
  • Skakel outomaties oor na 'n donker tema as u in die donker ry
  • Teken data van u ritte aan en bekyk u eie statistieke

Voorrade

Hoofrekenaars:

Framboos Pi Dit is die hoofbeheerder van die stelsel

Elektronika:

  • USB-laaier vir motorfiets 12V-5V Hoofvoeding vir die RPi
  • 4 Pin Fused Relay 12V Skakel om die kragstroom van die RPi aan/uit te skakel
  • Broodbord met springdrade (opsioneel) Vir toetsing en prototipering
  • 'N Stel weerstande

    Verskillende kleure van 0,2 mm draad

  • Breakout Pi plus Dit is 'n prototipe -bord waar u al u komponente kan soldeer. Dit is gemaak om direk bo -op die Raspberry Pi te pas, sodat die afmetings van die projek tot 'n minimum beperk word.

Sensors en modules:

  • Waterdigte DS18B20 1-draads temperatuursensor Olietemperatuursensor
  • 3 -assige gyro -versnellingsmeter MPU6050 Kantel-/versnellingsensor
  • Ligafhanklike weerstand (LDR)
  • MCP3008-8-kanaals 10-bis ADC met SPI-koppelvlak

    TFT SPI -skerm (of enige ander LCD -skerm wat by u behoeftes pas)

    RGB LED

Omhulsel:

  • Plastiek boks
  • Framboos pi -houer

Gereedskap:

  • Soldeerbout en soldeer
  • 2.5 mm skroewe en afstandhouers
  • Waterdigte kabelverbindings
  • Wondergom

Stap 1: Prototipering

Prototipering
Prototipering
Prototipering
Prototipering

Voordat ons alles permanent maak, sal ons die projek op 'n broodbord saamstel. Hierdie stap kan oorgeslaan word as u absoluut seker is dat u nie foute sal maak nie. Die elektriese/broodbordskema kan in die onderstaande PDF gevind word. Plaas die kring presies soos beskryf. Maak seker dat u slegs die 3.3V -pen gebruik en nie die 5V -pen op die RPi nie. Kontroleer ook u stroombaan voordat u die framboos Pi aanskakel. Maak seker dat daar geen kortbroek is nie!

Stap 2: Berei die Raspberry Pi voor

Berei die Raspberry Pi voor
Berei die Raspberry Pi voor

Eerstens gaan ons die Raspberry Pi opstel. Die Raspberry Pi is 'n mini -rekenaar wat sy eie bedryfstelsel kan bestuur. Vir hierdie projek is dit verantwoordelik vir die verwerking van sensordata, die hosting van die webwerf, die bestuur van die backend en databasis, …

1. Installeer persoonlike Raspbian Image

Die prentjie bevat reeds die sagtewarepakkette wat nodig is om hierdie projek te begin:

  • Apache vir die voorkant van die webwerf
  • MariaDB vir die databasis
  • PhpMyAdmin om die databasis te manipuleer
  • Pasgemaakte toestemmings om probleme te vermy

Die pasgemaakte beeld kan hier afgelaai word.

'N Opleiding vir die installering van beelde kan hier gevind word:

Sodra die prent geïnstalleer is, koppel die Raspberry Pi met 'n ethernetkabel aan u rekenaar. U kan nou 'n SSH -kliënt gebruik om dit aan te sluit via die IP -adres 169.254.10.1

Dit is goeie praktyk om onmiddellik 'n nuwe wagwoord in te stel met die opdrag passwd

2. Konfigureer draadlose AP

As die projek klaar is, wil ons via WiFi aan die RPi kan koppel, sodat ons dit in 'n draadlose AP kan verander. 'N Tutoriaal hiervoor kan hier gevind word.

U hoef hierdie tutoriaal net tot stap 7. te volg. Stap 8 is nie nodig nie, aangesien ons nie 'n internetverbinding hoef te oorbrug nie, maar 'n selfstandige netwerk hoef te bou.

3. Maak koppelvlakke moontlik

Gaan na raspi-config

sudo raspi-config

Gaan na koppelvlakopsies en aktiveer 1-draad, SPI en I2C en herlaai die Pi

3. Stel bestuurders vir die skerm op

Initialiseer die vertoning

Wysig die lêer /etc /modules

sudo nano /etc /modules

Voeg die volgende 2 reëls by

spi-bcm2835fbtft_device

Wysig nou /etc/modprobe.d/fbtft.conf

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

Voeg die volgende reël by

opsies fbtft_device naam = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotate = 90 speed = 80000000 fps = 60

Herlaai die Pi. As u die agtergrond van die skerm sien brand, het dit goed gegaan. Dit sal die skerm inisieer elke keer as die Pi opstart, maar dit sal nou slegs 'n swart skerm vertoon. Om die inhoud van die Pi op die skerm te kry, moet ons die inhoud van die hoofskerm na die klein LCD kopieer. Ons sal hiervoor 'n diens genaamd 'fbcp' gebruik.

Installeer fbcp -diens

sudo apt-get installeer cmake

git-kloon

cd rpi-fbcp

mkdir bou

CD bou/

maak..

maak

sudo installeer fbcp/usr/local/bin/fbcp

Nou het ons die diens geïnstalleer. Aangesien ons egter die Pi sonder kop gebruik, is daar geen skerm beskikbaar om die inhoud van te kopieer nie. Wysig /boot/config.txt om die Pi te dwing om skerminhoud uit te voer

sudo nano /boot/config.txt

Soek en maak 'n opmerking of voeg die volgende reëls by hierdie lêer:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_modus = 87

Herlaai die RPi en toets die fbcp -diens deur fbcp in die konsole te tik. Nou moet u die inhoud van die skerm op die LCD sien.

Begin fbcp tydens die aanvang

Wysig /etc/rc.local en voeg die volgende reël by tussen die ip -adres en die uitgangslyn

fbcp &

Nou moet die skerm aangeskakel word elke keer as die RPi opstart

Stap 3: Databasis

Databasis
Databasis

Om sensordata aan te meld en op te slaan, het ek my eie databasis ontwerp wat 4 tabelle bevat. Die EER -diagram word in die prent hierbo getoon.

1. Toestelle

Hierdie tabel bevat elke sensor. Dit beskryf die sensornaam, beskrywing en meeteenheid. Hierdie tabel het 'n een-tot-baie-verhouding met die tafelaksies, soos in my geval kan die accelerosensor verskillende take verrig.

2. Aksies

Hierdie tabel stoor aksies vir verskillende sensors. Een aksie is altyd gekoppel aan 'n spesifieke sensor. Byvoorbeeld: die aksie 'TEMP' is gekoppel aan die toestel wat temperatuur meet. Dit sou die 1-draads temperatuursensor wees.

3. Geskiedenis

Hierdie tabel bevat alle sensorlogboeke. Elke log het 'n aksie -ID, 'n waarde, 'n tydstempel en 'n rideid

4. Ritte

Hierdie tafel stoor verskillende ritte. Elke keer as die gebruiker 'n nuwe rit begin, word 'n nuwe inskrywing in hierdie tabel gemaak

Om hierdie databasis op u Raspberry Pi te kry, gaan na my GitHub en kloon/laai die bewaarplek af. Onder die databasis vind u 2.sql lêers. Begin hierdie in PhpMyAdmin of MySQL werkbank. Nou moet die databasis op u RPi wees.

Stap 4: Backend

As u dit nog nie gedoen het nie, gaan dan na my GitHub en kloon/laai die bewaarplek af. Onder die gids Backend vind u die volledige backend vir die projek.

Die gids bevat klasse vir leessensors onder /helpers, lêers om met die databasis onder /bewaarplekke te kommunikeer, en die hooftoepassing is in die wortel onder die naam app.py.

Die installering van Python -pakkette

Voordat ons probeer om iets uit te voer, moet ons eers 'n paar pakkette vir python installeer. Gaan na die terminale van u RPi en tik die volgende opdragte:

pip3 installeer mysql-connector-python

pip3 installeer flask-socketio

pip3 installeer fles-kors

pip3 installeer gevent

pip3 installeer gevent-websocket

BELANGRIKE OPMERKING: as u u Mariadb/Mysql -wagwoord verander het, verander die wagwoord in config.py!

Toets die backend

Begin app.py met behulp van die python3 -tolk (/usr/bin/python3). Maak seker dat daar geen foute is nie.

Begin die agterkant op die laaibak

Wysig motoDash_backend.service en verander YOURFILEPATH na die pad waar die bewaarplek gestoor word.

Kopieer nou hierdie lêer na/etc/systemd/system/

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

Die back -end begin outomaties elke keer as die RPi opstart.

Stap 5: Voorkant

Voorkant
Voorkant
Voorkant
Voorkant

Gaan na die GitHub Repo. Kopieer die inhoud van die Frontend -gids na/var/www/html.

Dit is al wat u moet doen om die frontend te laat werk. Hierdie gids bevat alle webblaaie, styl en skrifte vir die webkoppelvlak. Dit kommunikeer ook met die agterkant. Om te toets of alles werk soos dit moet, maak seker dat u aan u RPi gekoppel is en tik die IP -adres van die RPi in 'n blaaier. U behoort die tuisblad van die webkoppelvlak te sien.

Let wel: die webwerf reageer reageerbaar, sodat u dit op mobiele toestelle sowel as op die tafelblad kan gebruik

Stap 6: Vertoon die paneelbord op die skerm

Vertoon die paneelbord op die skerm
Vertoon die paneelbord op die skerm

Die voorkant het sy eie verborge webblad wat slegs vir die klein skerm gebruik word. Ons sal die Pi outomaties na hierdie webwerf in volle skermmodus opstart.

Maak seker dat die RPi ingestel is op outomatiese inskrywing op die lessenaar in raspi-config onder opstartopsies

sudo raspi-config

Gaan nou na die verborge config -lêergids en skep 'n nuwe lêer daarin

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Voeg die volgende reëls in hierdie lêer by en stoor

@xscreensaver -geen -spat

@xset is af

@xset -dpms

@xset s noblank

@chroom-blaaier-foute-disable-session-crash-bubble-disable-infobars-kiosk-incognito

Nou moet die Pi elke keer na hierdie webblad begin

Stap 7: Soldeer die elektronika

Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika
Soldeer die elektronika

Neem die uitbreekbord en lê u komponente op 'n gestruktureerde manier daarop. Ek sal nie die uitleg bespreek van hoe ek die komponente daarop gesoldeer het nie, aangesien ek dit redelik swak gedoen het. Ek het afsonderlike penkoppe op die bord gebruik, sodat ek slegs die sensors en modules aan die regte pen moes koppel. Maak seker dat u weet watter speld dit is!

'N Paar wenke tydens soldeer:

  • Gebruik geïsoleerde drade wanneer u groter afstande oorsteek. Die laaste ding wat u wil hê, is 'n kortbroek in u kring
  • Nadat u 'n komponent of draad gesoldeer het, moet u die kontinuïteit daarvan met 'n multimeter kontroleer. Kyk ook gereeld na kortsluitings.
  • Moenie te veel of te min soldeer gebruik nie!
  • As u nie weet hoe om te soldeer nie, oefen dit eers op 'n ander prototipe bord. 'N Opleiding oor soldeer kan hier gevind word.

Nou soldeer die drade lank genoeg by die sensors en sit 'n krimpende omhulsel om hulle om seker te maak dat alles nie kort en skoon is nie.

As u klaar is, moet u kyk of daar kortbroek of slegte verbindings is, en kyk of elke verbinding met die elektriese skema die regte verbinding is. Sodra u seker is dat alles reg gedoen is, plaas die breekbord op die RPi, skroef dit vas met 'n paar 2,5 mm skroewe en afstande. Koppel die sensors aan die regte penne en toets dit almal met behulp van die webwerf.

Stap 8: Kragtoevoer

Om die Raspberry Pi aan te dryf, gaan ons 'n 12V-5V usb-adapter gebruik. Hierdie adapter sal aan die motorfiets se battery gekoppel word. Om seker te maak dat die RPi aanskakel as die aansitskakelaar aangeskakel word, gaan ons 'n relais gebruik. Die relais sluit die RPi -stroombaan wanneer dit 'n spanning van die agterlig opspoor (agterlig skakel altyd aan wanneer die ontsteking aangeskakel word).

Vir 'n meer gedetailleerde handleiding hieroor, kyk na hierdie bladsy: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -beheerders.16921/

Stap 9: Behuising

Behuising
Behuising
Behuising
Behuising
Behuising
Behuising

Vertoon behuising

Gryp vir u 'n harde plastiekboks van ongeveer die grootte van die skerm. Sny 'n vierkantige gat daarin, so groot soos die skerm, en bypassende gate om die skerm in te skroef. Aan die voorkant moet u nog twee gate boor vir die RGB LED en die LDR.

Ek het hierdie boks bo -op 'n slimfoonhouer gemonteer met 'n bout.

Temperatuur sensor

Om die temperatuursensor te huisves, het ek 'n olie -meter wat by my motorfiets pas, 3D gedruk.

Framboos Pi

Monteer die framboos Pi self op 'n veilige plek in die motorfiets, ek plaas dit onder een van die fenders met 'n paar klittenbandbande. En beskerm dit teen die elemente met 'n behuising en 'n bietjie plastiek.

Versnellingsmeter

Monteer die versnellingsmeter op 'n veilige plek, verkieslik op die motorfietsraam self.

Let wel:

U hoef nie presies dieselfde behuising as ek te hê nie; u kan dit voltooi soos u wil. Maak net seker dat die elektroniese komponente teen reën en stof beskerm word.

Aanbeveel: