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: Octopus Max EZ v1.0 - Hotend and Automatic Cooling Fans 2024, Novembar
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. Ovo bi kombiniralo sve module koji su uslijedili u prvoj godini u jedan veliki projekat. Budući da u slobodno vrijeme često vozim svoj motocikl, odlučio sam iskoristiti stečene vještine u MCT -u da napravim nešto za svoj motocikl: Pametnu nadzornu ploču.

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

Koje su karakteristike ove nadzorne ploče?

  • Pregled trenutnog ugla nagiba
  • Pregled trenutnog ubrzanja
  • Mogućnost praćenja temperature ulja
  • Automatski prebaci na tamnu temu dok se vozite po mraku
  • Zapisujte podatke o svojim vožnjama i pregledajte vlastite statistike

Supplies

Glavna računarska jedinica:

Raspberry Pi Ovo je glavni kontroler sistema

Elektronika:

  • USB punjač za motocikl 12V-5VGlavno napajanje za RPi
  • Relej sa osiguračem od 4 pina 12VPrekidač za uključivanje/isključivanje strujnog kruga RPi
  • Oglasna ploča sa kratkospojnim žicama (opcionalno) 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 direktno na Raspberry Pi, tako da dimenzije projekta ostaju na minimumu.

Senzori i moduli:

  • Vodootporni 1-žični senzor temperature 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 ekran (ili bilo koji drugi LCD ekran 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 konektori za kablove
  • Super ljepilo

Korak 1: Prototipiranje

Prototipiranje
Prototipiranje
Prototipiranje
Prototipiranje

Prije nego što sve učinimo trajnim, sastavit ćemo projekt na ploči. Ovaj korak se može preskočiti ako ste potpuno sigurni da nećete pogriješiti. Shema električnih instalacija/matičnih ploča može se pronaći u PDF -u ispod. Spojite krug tačno onako kako je opisano. Pazite da koristite samo pin 3.3V, a ne pin 5V na RPi. Takođe, prije nego što uključite maline Pi, provjerite strujno kolo. Uvjerite se 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čunar koji može pokrenuti vlastiti operativni sistem. Za ovaj projekt, on je odgovoran za obradu podataka senzora, hosting web stranice, pokretanje pozadine i baze podataka,…

1. Instalirajte prilagođenu Raspbian sliku

Priložena slika već sadrži softverske 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 za izbjegavanje problema

Prilagođena slika može se preuzeti odavde.

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

Kada se slika instalira, povežite Raspberry Pi sa računarom pomoću Ethernet kabla. Sada možete koristiti SSH klijent 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 tačke

Kad projekt bude završen, želimo se moći povezati s RPi putem WiFi -ja, pa ga pretvorimo u bežični pristupni točak. Vodič za ovo 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 interfejsa

Idite u raspi-config

sudo raspi-config

Idite na opcije povezivanja i omogućite 1-žične, SPI i I2C i ponovo pokrenite Pi

3. Postavljanje upravljačkih programa za ekran

Inicijalizacija prikaza

Uredite datoteku /etc /modules

sudo nano /etc /modules

Dodajte sljedeća 2 retka

spi-bcm2835fbtft_device

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

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

Dodajte sledeći red

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

Ponovo pokrenite Pi. Ako vidite da pozadinsko osvetljenje ekrana svetli, sve je prošlo dobro. Ovo će pokrenuti ekran svaki put kada se Pi pokrene, međutim sada će prikazivati samo crni ekran. Da bismo prikazali sadržaj Pi na ekranu, moramo kopirati sadržaj glavnog ekrana na mali LCD. Za to ćemo koristiti uslugu pod nazivom 'fbcp'.

Instaliranje fbcp servisa

sudo apt-get install cmake

git clone

cd rpi-fbcp

mkdir build

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 ekrana za kopiranje sadržaja. Da biste prisilili Pi da emitira sadržaj ekrana, 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 fbcp uslugu upisivanjem fbcp u konzolu. Sad biste trebali vidjeti sadržaj ekrana na LCD -u.

Pokretanje fbcp pri pokretanju

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

fbcp &

Sada bi se zaslon trebao uključivati svaki put kada se RPi pokrene

Korak 3: Baza podataka

Baza podataka
Baza podataka

Za evidentiranje i pohranu podataka senzora dizajnirao sam vlastitu bazu podataka koja sadrži 4 tablice. EER dijagram je prikazan 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 izvesti različite zadatke.

2. Radnje

Ova tablica pohranjuje radnje za različite senzore. Jedna radnja je uvijek 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. Istorija

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

4. Vožnja

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, idite na moj GitHub i klonirajte/preuzmite spremište. Pod bazom podataka pronaći ćete 2.sql datoteke. Pokrenite ih u PhpMyAdmin ili MySQL radnom stolu. 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. U fascikli Backend pronaći ćete punu pozadinu projekta.

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

Instaliranje Python paketa

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

pip3 instalirajte mysql-connector-python

pip3 instalirajte flask-socketio

pip3 instalirajte flask-cors

pip3 install gevent

pip3 instalirajte gevent-websocket

VAŽNA NAPOMENA: ako ste promijenili svoju Mariadb/Mysql lozinku, 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 pokretati svaki put kada se RPi pokrene.

Korak 5: Frontend

Frontend
Frontend
Frontend
Frontend

Uđite u GitHub Repo. Kopirajte sadržaj direktorija Frontend u/var/www/html.

Ovo je sve što trebate učiniti da bi interfejs funkcionirao. Ova mapa sadrži sve web stranice, stilove i skripte za web sučelje. Takođe komunicira sa pozadinom. Da biste provjerili radi li sve kako treba, 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 ekranu

Prikazivanje nadzorne ploče na ekranu
Prikazivanje nadzorne ploče na ekranu

Frontend ima vlastitu skrivenu web stranicu koja se koristi samo za male ekrane. Pi će se automatski pokrenuti s ove web stranice u načinu prikaza na cijelom ekranu.

Uverite se da je RPi podešen 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 redove u ovu datoteku i spremite

@xscreensaver -no -splash

@xset je isključen

@xset -dpms

@xset s noblank

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

Sada bi se Pi trebao pokretati svaki put na ovoj web stranici

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 rasporedite svoje komponente na nju na strukturiran način. 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. Uverite se da znate koji pin je za šta!

Nekoliko savjeta pri lemljenju:

  • Prilikom prelaska većih udaljenosti koristite izolirane žice. Zadnja stvar koju želite su kratke hlače u vašem krugu
  • Nakon lemljenja komponente ili žice, provjerite njihov kontinuitet multimetrom. Redovno provjeravajte i da li ima 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 i oko njih stavite skupljajući omotač kako biste bili sigurni da sve nije kratko i čisto.

Kada završite, dvaput provjerite ima li kratkih spojeva ili loših veza, te provjerite svaku vezu s električnom shemom je li to prava veza. Kad budete sigurni da je sve učinjeno kako treba, nastavite i stavite ploču za razbijanje na RPi, na kraju je pričvrstite s vijcima od 2,5 mm i rastavima. Priključite senzore na desne pinove i testirajte ih sve pomoću web stranice.

Korak 8: Napajanje

Za napajanje Raspberry Pi koristit ćemo 12V-5V usb adapter. Ovaj adapter će biti 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 se uvijek 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

Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje
Stanovanje

Display Housing

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

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

Senzor temperature

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

Raspberry Pi

Montirajte 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.

Akcelerometar

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

Bilješka:

Ne morate imati potpuno isto stanovanje kao ja, slobodni ste da ga dovršite kako želite. Samo pazite da elektroničke komponente budu zaštićene od kiše i prašine.

Preporučuje se: