Sadržaj:

Nadzorna ploča za motocikle Raspberry Pi: 9 koraka (sa slikama)
Nadzorna ploča za motocikle Raspberry Pi: 9 koraka (sa slikama)

Video: Nadzorna ploča za motocikle Raspberry Pi: 9 koraka (sa slikama)

Video: Nadzorna ploča za motocikle Raspberry Pi: 9 koraka (sa slikama)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Studeni
Anonim
Nadzorna ploča za motocikle Raspberry Pi
Nadzorna ploča za motocikle Raspberry Pi

Kao student Multimedijske i komunikacijske tehnologije u Howest Kortrijku morao sam napraviti vlastiti IoT projekt. Time bi se svi moduli slijeđeni u prvoj godini kombinirali u jedan veliki projekt. Budući da u slobodno vrijeme često vozim svoj motocikl, odlučio sam upotrijebiti stečene vještine u MCT -u da napravim nešto za svoj motocikl: Pametnu nadzornu ploču.

MotoDash je nadzorna ploča s pogonom na Raspberry Pi dizajnirana za fanatične motocikliste koja vozaču daje mogućnost praćenja njihovih performansi.

Koje su značajke ove nadzorne ploče?

  • Pregled trenutnog kuta nagiba
  • Pregled trenutnog ubrzanja
  • Sposobnost praćenja temperature ulja
  • Automatski prebaci na tamnu temu tijekom vožnje po mraku
  • Zabilježite podatke o svojim vožnjama i pregledajte vlastitu statistiku

Pribor

Glavna računalna jedinica:

Raspberry Pi Ovo je glavni kontroler sustava

Elektronika:

  • USB punjač za motocikl 12V-5VGlavno napajanje za RPi
  • 4 pin osigurač relej 12VPrekidač za uključivanje/isključivanje strujnog kruga RPi
  • Oglasna ploča s kratkospojnim žicama (izborno) Za testiranje i izradu prototipa
  • Skup otpornika

    Različite boje žice od 0,2 mm

  • Breakout Pi plusOvo je ploča za izradu prototipa na kojoj možete lemiti sve svoje komponente. Napravljen je tako da stane izravno na Raspberry Pi, tako da dimenzije projekta ostaju na minimumu.

Senzori i moduli:

  • Vodootporni 1-žični temperaturni osjetnik DS18B20Senzor temperature ulja
  • Žirosmjerni akcelerometar s 3 osi MPU6050 Senzor nagiba/ubrzanja
  • Otpornik ovisan o svjetlu (LDR)
  • MCP3008-8-kanalni 10-bitni ADC sa SPI sučeljem

    TFT SPI zaslon (ili bilo koji drugi LCD zaslon koji odgovara vašim potrebama)

    RGB LED

Kućište:

  • Plastična kutija
  • Slučaj od maline pi

Alati:

  • Lemilica i lemljenje
  • 2,5 mm vijci i odstojnici
  • Vodootporni kabelski priključci
  • Super ljepilo

Korak 1: Prototipiranje

Izrada prototipa
Izrada prototipa
Izrada prototipa
Izrada prototipa

Prije nego što sve učinimo trajnim, sastavit ćemo projekt na ploči. Ovaj korak možete preskočiti ako ste potpuno sigurni da nećete pogriješiti. Shema električne/matične ploče može se pronaći u PDF -u ispod. Spojite krug točno kako je opisano. Pazite da koristite samo pin 3.3V, a ne pin 5V na RPi. Također prije nego što uključite malinu Pi, provjerite svoj krug. Pazite da nema kratkih hlača!

Korak 2: Priprema Raspberry Pi

Priprema Raspberry Pi
Priprema Raspberry Pi

Prije svega, postavit ćemo Raspberry Pi. Raspberry Pi je mini računalo sposobno za pokretanje vlastitog operacijskog sustava. Za ovaj projekt odgovoran je za obradu podataka senzora, hosting web stranice, pokretanje pozadine i baze podataka,…

1. Instalirajte prilagođenu Raspbian sliku

Priložena slika već sadrži programske pakete potrebne za početak projekta:

  • Apache za sučelje web stranice
  • MariaDB za bazu podataka
  • PhpMyAdmin za manipulaciju bazom podataka
  • Prilagođena dopuštenja kako bi se izbjegli problemi

Prilagođena slika može se preuzeti odavde.

Vodič za instaliranje slika možete pronaći ovdje:

Nakon što je slika instalirana, povežite Raspberry Pi s računalom pomoću Ethernet kabela. Sada se možete koristiti SSH klijentom za povezivanje s njim na IP adresi 169.254.10.1

Dobra je praksa da odmah postavite novu lozinku pomoću naredbe passwd

2. Konfiguriranje bežične pristupne točke

Kad projekt završi, želimo se moći povezati s RPi putem WiFi -ja, pa ga pretvorimo u bežični AP. Vodič za to možete pronaći ovdje.

Ovaj vodič trebate slijediti samo do koraka 7. Korak 8 nije potreban jer ne moramo premostiti internetsku vezu, već stvoriti samostalnu mrežu.

3. Omogućavanje sučelja

Idite u raspi-config

sudo raspi-config

Idite na opcije sučelja i omogućite 1-žice, SPI i I2C i ponovno pokrenite Pi

3. Postavljanje upravljačkih programa za zaslon

Inicijalizacija prikaza

Uredite datoteku /etc /modules

sudo nano /etc /moduli

Dodajte sljedeća 2 retka

spi-bcm2835fbtft_device

Sada uredite /etc/modprobe.d/fbtft.conf

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

Dodajte sljedeći redak

opcije fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotacija = 90 brzina = 80000000 fps = 60

Ponovo pokrenite Pi. Ako vidite pozadinsko osvjetljenje zaslona, sve je prošlo dobro. Ovo će pokrenuti zaslon svaki put kad se Pi podigne, no sada će prikazati samo crni zaslon. Da bismo prikazali sadržaj Pi na zaslonu, moramo kopirati sadržaj glavnog zaslona na mali LCD. Za to ćemo koristiti uslugu pod nazivom 'fbcp'.

Instaliranje fbcp usluge

sudo apt-get install cmake

git clone

cd rpi-fbcp

mkdir graditi

cd build/

cmake..

napraviti

sudo instalirajte fbcp/usr/local/bin/fbcp

Sada smo instalirali uslugu. Međutim, budući da koristimo Pi bez glave, nema dostupnog zaslona za kopiranje sadržaja. Da biste prisilili Pi da emitira sadržaj zaslona, uredite /boot/config.txt

sudo nano /boot/config.txt

Pronađite i uklonite komentar ili dodajte sljedeće retke u ovu datoteku:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Ponovo pokrenite RPi i isprobajte uslugu fbcp upisivanjem fbcp u konzolu. Sad biste trebali vidjeti sadržaj zaslona na LCD -u.

Pokretanje fbcp pri pokretanju

Uredite /etc/rc.local i dodajte sljedeći redak između IP adrese i izlazne linije

fbcp &

Zaslon bi se trebao uključiti svaki put kad se RPi podigne

Korak 3: Baza podataka

Baza podataka
Baza podataka

Za bilježenje i pohranu podataka senzora osmislio sam vlastitu bazu podataka koja sadrži 4 tablice. EER dijagram prikazan je na gornjoj slici.

1. Uređaji

Ova tablica sadrži svaki senzor. Opisuje naziv senzora, opis i mjernu jedinicu. Ova tablica ima odnos jedan-prema-više s radnjama tablice, jer u mom slučaju senzor ubrzanja može obavljati različite zadatke.

2. Radnje

Ova tablica pohranjuje radnje za različite senzore. Jedna radnja uvijek je povezana s određenim senzorom. Na primjer: radnja 'TEMP' povezana je s uređajem koji mjeri temperaturu. Ovo bi bio 1-žični senzor temperature.

3. Povijest

Ova tablica sadrži sve zapise senzora. Svaki zapisnik ima ID radnje, vrijednost, vremensku oznaku i vožnju

4. Vozi

Ovaj stol sprema različite vožnje. Svaki put kada korisnik započne novu vožnju, u ovu tablicu se unosi novi unos

Da biste dobili ovu bazu podataka na vašem Raspberry Pi, prijeđite na moj GitHub i klonirajte/preuzmite spremište. Pod bazom podataka pronaći ćete 2.sql datoteke. Pokrenite ih u radnom stolu PhpMyAdmin ili MySQL. Sada bi baza podataka trebala biti na vašem RPi -u.

Korak 4: Pozadina

Ako već niste, prijeđite na moj GitHub i klonirajte/preuzmite spremište. Ispod mape Pozadina pronaći ćete punu pozadinu projekta.

Mapa sadrži klase za čitanje senzora pod /helpers, datoteke za komunikaciju s bazom podataka pod /repozitoriji, a glavna aplikacija nalazi se u korijenu pod imenom app.py.

Instaliranje Python paketa

Prije nego što pokušamo bilo što pokrenuti, prvo moramo instalirati neke pakete za python. Uđite u terminal vašeg RPi i upišite sljedeće naredbe:

pip3 instalirajte mysql-konektor-python

pip3 instalirajte flask-socketio

pip3 instalirajte flask-cors

pip3 instalirajte gevent

pip3 instalirajte gevent-websocket

VAŽNA NAPOMENA: ako ste promijenili lozinku za Mariadb/Mysql, promijenite je u config.py!

Testirajte pozadinu

Pokrenite app.py pomoću tumača python3 (/usr/bin/python3). Uvjerite se da nema grešaka.

Pokretanje pozadine pri pokretanju

Uredite motoDash_backend.service i promijenite YOURFILEPATH na stazu na kojoj je spremište spremljeno.

Sada kopirajte ovu datoteku u/etc/systemd/system/

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

Sada će se pozadina automatski pokrenuti svaki put kad se RPi podigne.

Korak 5: Frontend

Frontend
Frontend
Frontend
Frontend

Krenite u GitHub Repo. Kopirajte sadržaj direktorija Frontend u/var/www/html.

Ovo je sve što trebate učiniti kako bi prednji dio radio. Ova mapa sadrži sve web stranice, styling i skripte za web sučelje. Također komunicira s pozadinom. Da biste provjerili radi li sve kako bi trebalo, provjerite jeste li povezani sa svojim RPi -jem i upišite IP adresu RPi -a u preglednik. Trebali biste vidjeti početnu stranicu web sučelja.

Napomena: Web stranica je responzivna, pa je možete koristiti i na mobilnim uređajima i na stolnim računalima

Korak 6: Prikaz nadzorne ploče na zaslonu

Prikaz nadzorne ploče na zaslonu
Prikaz nadzorne ploče na zaslonu

Frontend ima vlastitu skrivenu web stranicu koja se koristi samo za mali zaslon. Napravit ćemo automatsko pokretanje Pi na ovoj web stranici u cijelom zaslonu.

Provjerite je li RPi postavljen na automatsko prijavljivanje na radnu površinu u raspi-config pod opcijama pokretanja

sudo raspi-config

Sada idite u skrivenu konfiguracijsku mapu i tamo stvorite novu datoteku

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Dodajte sljedeće retke u ovu datoteku i spremite

@xscreensaver -nema prskanja

@xset je isključen

@xset -dpms

@xset s je prazno

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

Sada bi se Pi trebao pokretati s ove web stranice svaki put

Korak 7: Lemljenje elektronike

Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike
Lemljenje elektronike

Uzmite ploču za razbijanje i na nju strukturirano rasporedite svoje komponente. Neću raspravljati o rasporedu lemljenja komponenti na njemu, jer sam na njemu napravio prilično loš posao. Koristio sam zasebna zaglavlja pinova na ploči tako da sam samo trebao spojiti senzore i module na desni pin. Pobrinite se da znate koji pin služi za što!

Neki savjeti pri lemljenju:

  • Prilikom prelaska većih udaljenosti koristite izolirane žice. Zadnje što želite su kratke hlače u vašem krugu
  • Nakon lemljenja komponente ili žice, provjerite njezin kontinuitet multimetrom. Također redovito provjeravajte ima li kratkih spojeva.
  • Nemojte koristiti previše ili premalo lemljenja!
  • Ako ne znate lemiti, isprobajte to prvo na drugoj ploči za izradu prototipa. Vodič o lemljenju možete pronaći ovdje.

Sada lemite žice dovoljno dugo na senzore, a oko njih stavite skupljajući omotač kako biste bili sigurni da sve nije kratko i čisto.

Kad završite, dvaput provjerite ima li kratkih spojeva ili loših spojeva te provjerite svaku vezu s električnom shemom je li to ispravna veza. Kad budete sigurni da je sve učinjeno ispravno, samo naprijed stavite ploču za razbijanje na RPi, na kraju je dobro pričvrstite s nekim vijcima od 2,5 mm i odvojcima. Priključite senzore na desne igle i sve ih testirajte pomoću web stranice.

Korak 8: Napajanje

Za napajanje Raspberry Pi koristit ćemo 12V-5V USB adapter. Ovaj adapter bit će spojen na bateriju motocikla. Kako bismo bili sigurni da se RPi uključuje kada je prekidač za paljenje uključen, koristit ćemo relej. Relej će zatvoriti krug napajanja RPi kada otkrije napon stražnjeg svjetla (stražnje svjetlo uvijek se uključuje pri uključivanju kontakta).

Za detaljniji vodič o ovome pogledajte ovu stranicu: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -kontroleri.16921/

Korak 9: Stanovanje

Kućište
Kućište
Kućište
Kućište
Kućište
Kućište

Kućište za prikaz

Za zaslon uzmite tvrdu plastičnu kutiju otprilike veličine zaslona. Izrežite u njemu kvadratnu rupu veliku poput zaslona i odgovarajuće rupe za uvrtanje zaslona. S prednje strane morate izbušiti još 2 rupe za RGB LED i LDR.

Ovu sam kutiju montirao na držač pametnog telefona pomoću vijka.

Senzor temperature

Za smještaj senzora temperature 3D sam ispisao mjerač ulja koji odgovara mom motociklu.

Malina Pi

Montirajte sam malinu Pi na sigurno mjesto unutar motocikla, stavio sam je ispod jednog od blatobrana koristeći neke čičak trake. I zaštitili ga od elemenata pomoću kućišta i nešto plastike.

Brzinomjer

Akcelerometar postavite na sigurno mjesto, najbolje na sam okvir motocikla.

Bilješka:

Ne morate imati potpuno isti stan kao ja, slobodni ste ga dovršiti kako god želite. Samo provjerite jesu li elektroničke komponente zaštićene od kiše i prašine.

Preporučeni: