Turinys:

„Raspberry Pi“motociklų prietaisų skydelis: 9 žingsniai (su nuotraukomis)
„Raspberry Pi“motociklų prietaisų skydelis: 9 žingsniai (su nuotraukomis)

Video: „Raspberry Pi“motociklų prietaisų skydelis: 9 žingsniai (su nuotraukomis)

Video: „Raspberry Pi“motociklų prietaisų skydelis: 9 žingsniai (su nuotraukomis)
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Lapkritis
Anonim
„Raspberry Pi“motociklų prietaisų skydelis
„Raspberry Pi“motociklų prietaisų skydelis

Kaip „Howest Kortrijk“daugialypės terpės ir komunikacijos technologijų studentas, turėjau sukurti savo daiktų interneto projektą. Tai sujungtų visus modulius, kurie buvo naudojami pirmaisiais metais, į vieną didelį projektą. Kadangi laisvalaikiu daug važinėju motociklu, nusprendžiau panaudoti įgytus MCT įgūdžius ir sukurti kažką savo motociklui: išmanųjį prietaisų skydelį.

„MotoDash“yra „Raspberry Pi“varomas prietaisų skydelis, skirtas fanatiškiems motociklininkams, suteikiantis vairuotojui galimybę sekti jų pasirodymus.

Kokios yra šios prietaisų skydelio savybės?

  • Dabartinio pasvirimo kampo peržiūra
  • Peržiūrėti dabartinį pagreitį
  • Galimybė stebėti alyvos temperatūrą
  • Važiuojant tamsoje automatiškai perjunkite į tamsią temą
  • Prisijunkite prie savo kelionių duomenų ir peržiūrėkite savo statistiką

Prekės

Pagrindinis skaičiavimo įrenginys:

Raspberry Pi Tai pagrindinis sistemos valdiklis

Elektronika:

  • USB įkroviklis motociklui 12V-5V Pagrindinis maitinimo šaltinis RPi
  • 4 kontaktų lydytoji relė 12V Perjunkite, kad įjungtumėte/išjungtumėte RPi maitinimo grandinę
  • Duonos lenta su jungiamaisiais laidais (neprivaloma) Testavimui ir prototipų kūrimui
  • Rezistorių rinkinys

    Skirtingos 0,2 mm vielos spalvos

  • „Breakout Pi plus“Tai prototipų plokštė, kurioje galite lituoti visus savo komponentus. Jis pagamintas taip, kad tilptų tiesiai ant Raspberry Pi, todėl projekto matmenys yra minimalūs.

Jutikliai ir moduliai:

  • Neperšlampamas DS18B20 1 laidų temperatūros jutiklisAlyvos temperatūros jutiklis
  • 3 ašių giroskopinis pagreičio matuoklis MPU6050Tilt/accel sensor
  • Nuo šviesos priklausomas rezistorius (LDR)
  • MCP3008-8 kanalų 10 bitų ADC su SPI sąsaja

    TFT SPI ekranas (arba bet kuris kitas jūsų poreikius atitinkantis LCD ekranas)

    RGB šviesos diodas

Korpusas:

  • Plastikinė dėžė
  • Aviečių pi dėklas

Įrankiai:

  • Lituoklis ir lituoklis
  • 2,5 mm varžtai ir tarpinės
  • Vandeniui atsparios kabelių jungtys
  • Super klijai

1 žingsnis: prototipų kūrimas

Prototipų kūrimas
Prototipų kūrimas
Prototipų kūrimas
Prototipų kūrimas

Prieš viską paversdami nuolatiniais, mes surenkame projektą ant duonos lentos. Šį žingsnį galima praleisti, jei esate visiškai tikri, kad nepadarysite klaidų. Elektros/duonos lentos schemą rasite žemiau esančiame PDF. Sudėkite grandinę tiksliai taip, kaip aprašyta. Įsitikinkite, kad RPi naudojate tik 3.3V, o ne 5V kaištį. Taip pat prieš įjungdami „Raspberry Pi“dar kartą patikrinkite savo grandinę. Įsitikinkite, kad nėra šortų!

2 žingsnis: Raspberry Pi paruošimas

„Raspberry Pi“paruošimas
„Raspberry Pi“paruošimas

Visų pirma, mes nustatysime „Raspberry Pi“. „Raspberry Pi“yra mini kompiuteris, galintis paleisti savo operacinę sistemą. Šiam projektui ji yra atsakinga už sensordatų apdorojimą, svetainės prieglobą, užpakalinės programos ir duomenų bazės valdymą …

1. Įdiekite pasirinktinį „Raspbian“vaizdą

Pateiktame paveikslėlyje jau yra programinės įrangos paketų, reikalingų šiam projektui pradėti:

  • „Apache“svetainės priekinei daliai
  • „MariaDB“duomenų bazei
  • PhpMyAdmin manipuliuoti duomenų baze
  • Individualūs leidimai, kad būtų išvengta problemų

Tinkintą vaizdą galima atsisiųsti iš čia.

Vaizdų diegimo pamoką rasite čia:

Įdiegę vaizdą, eterneto kabeliu prijunkite „Raspberry Pi“prie kompiuterio. Dabar galite prisijungti prie SSH kliento IP adresu 169.254.10.1

Gera praktika yra nedelsiant nustatyti naują slaptažodį naudojant komandą passwd

2. Belaidžio AP konfigūravimas

Kai projektas bus baigtas, norime, kad galėtume prisijungti prie RPi per „Wi -Fi“, todėl galime paversti jį belaidžiu AP. Pamoką apie tai galite rasti čia.

Jums tereikia sekti šią pamoką iki 7 veiksmo. 8 veiksmas nėra būtinas, nes mums nereikia prisijungti prie interneto, bet sukurti atskirą tinklą.

3. Sąsajų įgalinimas

Eikite į raspi-config

sudo raspi-config

Eikite į sąsajos parinktis ir įjunkite 1 laidą, SPI ir I2C ir iš naujo paleiskite „Pi“

3. Ekrano tvarkyklių nustatymas

Ekrano inicijavimas

Redaguokite failą /etc /modules

sudo nano /etc /modules

Pridėkite šias 2 eilutes

spi-bcm2835fbtft_device

Dabar redaguokite /etc/modprobe.d/fbtft.conf

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

Pridėkite šią eilutę

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

Perkraukite „Pi“. Jei matote, kad užsidega ekrano apšvietimas, viskas gerai. Tai inicijuos ekraną kiekvieną kartą, kai „Pi“įsijungs, tačiau dabar bus rodomas tik juodas ekranas. Norėdami pamatyti „Pi“turinį ekrane, turime nukopijuoti pagrindinio ekrano turinį į mažą LCD. Tam naudosime paslaugą „fbcp“.

Fbcp paslaugos diegimas

sudo apt-get install cmake

git klonas

cd rpi-fbcp

mkdir statyti

CD kūrimas/

cmake..

padaryti

sudo įdiegti fbcp/usr/local/bin/fbcp

Dabar mes įdiegėme paslaugą. Tačiau kadangi mes naudojame „Pi“be galvos, nėra ekrano, kuriuo būtų galima nukopijuoti turinį. Norėdami priversti Pi rodyti ekrano turinį, redaguokite /boot/config.txt

sudo nano /boot/config.txt

Raskite ir panaikinkite komentarus arba pridėkite šias eilutes prie šio failo:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

rodymo_sukimas = 0

hdmi_group = 2

hdmi_mode = 87

Perkraukite RPi ir išbandykite „fbcp“paslaugą, konsolėje įvesdami fbcp. Dabar LCD ekrane turėtumėte pamatyti ekrano turinį.

Paleidžiant fbcp paleidžiant

Redaguokite /etc/rc.local ir pridėkite šią eilutę tarp IP adreso ir išėjimo eilutės

fbcp &

Dabar ekranas turėtų įsijungti kiekvieną kartą, kai RPi įsijungia

3 žingsnis: duomenų bazė

Duomenų bazė
Duomenų bazė

Norėdami registruoti ir saugoti „sensordata“, sukūriau savo duomenų bazę, kurioje yra 4 lentelės. EER diagrama parodyta aukščiau esančiame paveikslėlyje.

1. Prietaisai

Šioje lentelėje yra visi jutikliai. Jame aprašomas jutiklio pavadinimas, aprašymas ir matavimo vienetas. Ši lentelė turi ryšį nuo vieno iki daugelio su lentelės veiksmais, nes mano atveju greitėjimo jutiklis gali atlikti skirtingas užduotis.

2. Veiksmai

Šioje lentelėje saugomi skirtingų jutiklių veiksmai. Vienas veiksmas visada yra susijęs su konkrečiu jutikliu. Pavyzdžiui: veiksmas „TEMP“yra susietas su prietaisu, kuris matuoja temperatūrą. Tai būtų 1 laidų temperatūros jutiklis.

3. Istorija

Šioje lentelėje yra visi jutiklių žurnalai. Kiekvienas žurnalas turi veiksmo ID, vertę, laiko žymę ir važiavimo ID

4. Važiuoja

Šioje lentelėje saugomi įvairūs važiavimai. Kiekvieną kartą, kai vartotojas pradeda naują važiavimą, šioje lentelėje padaromas naujas įrašas

Norėdami gauti šią duomenų bazę savo „Raspberry Pi“, eikite į „GitHub“ir klonuokite/atsisiųskite saugyklą. Duomenų bazėje rasite 2.sql failus. Vykdykite juos „PhpMyAdmin“arba „MySQL“darbalaukyje. Dabar duomenų bazė turėtų būti jūsų RPi.

4 žingsnis: „Backend“

Jei to dar nepadarėte, eikite į mano „GitHub“ir klonuokite/atsisiųskite saugyklą. Po aplanku „Backend“rasite visą projekto užpakalinę dalį.

Aplanke yra klasių, skirtų skaityti jutiklius pagal /pagalbininkus, failus, skirtus bendrauti su duomenų baze, esančiose /saugyklose, o pagrindinė programa yra šaknyje pavadinimu app.py.

Python paketų diegimas

Prieš bandydami ką nors paleisti, pirmiausia turime įdiegti kai kuriuos „python“paketus. Eikite į savo RPi terminalą ir įveskite šias komandas:

pip3 įdiegti „mysql-connector-python“

pip3 įdiegti kolbą-lizdą

pip3 sumontuokite kolbas

pip3 įdiegimo geventas

pip3 įdiegti gevent-websocket

SVARBI PASTABA: jei pakeitėte „Mariadb“/„Mysql“slaptažodį, pakeiskite slaptažodį config.py!

Išbandykite vidinę sistemą

Paleiskite app.py naudodami python3 vertėją (/usr/bin/python3). Įsitikinkite, kad nėra klaidų.

Paleiskite užpakalinę sistemą įkrovos metu

Redaguokite motoDash_backend.service ir pakeiskite YOURFILEPATH į kelią, kuriame saugoma saugykla.

Dabar nukopijuokite šį failą į/etc/systemd/system/

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

Dabar vidinė programa automatiškai įsijungs kiekvieną kartą, kai bus paleistas RPi.

5 veiksmas: „Frontend“

Sąsaja
Sąsaja
Sąsaja
Sąsaja

Eikite į „GitHub Repo“. Nukopijuokite Frontend katalogo turinį į/var/www/html.

Tai viskas, ką turėtumėte padaryti, kad priekinė dalis veiktų. Šiame aplanke yra visi žiniatinklio puslapiai, stilius ir scenarijai. Ji taip pat bendrauja su užpakaline dalimi. Norėdami patikrinti, ar viskas veikia taip, kaip turėtų, įsitikinkite, kad esate prisijungę prie savo RPi, ir naršyklėje įveskite RPi IP adresą. Turėtumėte pamatyti pagrindinį žiniatinklio sąsajos puslapį.

Pastaba: svetainė reaguoja, todėl galite ją naudoti ir mobiliajame, ir darbalaukyje

6 veiksmas: prietaisų skydelio rodymas ekrane

Prietaisų skydelio rodymas ekrane
Prietaisų skydelio rodymas ekrane

Priekinė dalis turi savo paslėptą tinklalapį, naudojamą tik mažam ekranui. Mes automatiškai paleisime „Pi“į šią svetainę viso ekrano režimu.

Įsitikinkite, kad „RPi“yra nustatytas į darbalaukio automatinį įjungimą raspi-config, esantį įkrovos parinktyse

sudo raspi-config

Dabar eikite į paslėptą konfigūracijos aplanką ir ten sukurkite naują failą

cd.config

sudo mkdir -p lxsession/LXDE -pi

sudo nano lxsession/LXDE-pi/autostart

Į šį failą pridėkite šias eilutes ir išsaugokite

@xscreensaver -no -purslų

@xset s išjungtas

@xset -dpms

@xset s tuščias

@„chromium“naršyklė-klaidos-išjungtos sesijos avarijos-burbulas-išjungiamos informacinės juostos --kiosk-inkognito

Dabar „Pi“turėtų kiekvieną kartą paleisti šį tinklalapį

7 žingsnis: Elektronikos litavimas

Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas
Elektronikos litavimas

Paimkite pertraukimo lentą ir struktūrizuotai išdėstykite ant jos komponentus. Aš nekalbėsiu apie išdėstymą, kaip lituoti komponentus, nes aš padariau gana prastai. Lentoje naudojau atskiras kaiščių antraštes, todėl man reikėjo tik prijungti jutiklius ir modulius prie tinkamo kaiščio. Įsitikinkite, kad žinote, kuris kaištis yra skirtas!

Keletas patarimų lituojant:

  • Kertant didesnius atstumus, naudokite izoliuotus laidus. Paskutinis dalykas, kurio norite, yra šortai jūsų grandinėje
  • Lituodami komponentą ar laidą, patikrinkite jo tęstinumą multimetru. Taip pat reguliariai tikrinkite, ar nėra trumpojo jungimo.
  • Nenaudokite per daug ar per mažai lydmetalio!
  • Jei nežinote, kaip lituoti, pirmiausia atlikite pratimus kitoje prototipų plokštėje. Litavimo pamoką rasite čia.

Dabar lituokite laidus pakankamai ilgai prie jutiklių ir uždėkite juos susitraukiančią plėvelę, kad įsitikintumėte, jog viskas nėra trumpas ir švarus.

Kai baigsite, dar kartą patikrinkite, ar nėra trumpųjų jungčių ar netinkamų jungčių, ir patikrinkite kiekvieną jungtį su elektros schema, ar tai tinkama jungtis. Kai būsite tikri, kad viskas padaryta teisingai, eikite į priekį ir uždėkite pertraukimo plokštę ant RPi, priveržkite galą 2,5 mm varžtais ir atramomis. Prijunkite jutiklius prie tinkamų kaiščių ir išbandykite juos naudodami svetainę.

8 žingsnis: maitinimo šaltinis

Norėdami maitinti „Raspberry Pi“, naudosime 12V-5V USB adapterį. Šis adapteris bus prijungtas prie motociklo akumuliatoriaus. Norėdami įsitikinti, kad RPi įsijungia įjungus uždegimo jungiklį, mes naudosime relę. Relė uždaro RPi maitinimo grandinę, kai aptinka galinio žibinto įtampą (galinis žibintas visada įsijungia įjungus uždegimą).

Norėdami gauti išsamesnės pamokos apie tai, apsilankykite šiame puslapyje: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -valdikliai.16921/

9 žingsnis: būstas

Būstas
Būstas
Būstas
Būstas
Būstas
Būstas

Ekrano korpusas

Norėdami gauti ekraną, paimkite kietą plastikinę dėžę iš maždaug ekrano dydžio. Iškirpkite kvadratinę skylę, kuri yra tokia pat didelė kaip ekranas, ir atitinkamas skyles, kad įsuktumėte ekraną. Priekyje turite išgręžti dar 2 skyles RGB šviesos diodui ir LDR.

Aš pritvirtinau šią dėžutę ant išmaniojo telefono laikiklio, naudodami varžtą.

Temperatūros jutiklis

Temperatūros jutiklio korpusui aš 3D spausdinau alyvos matuoklį, kuris tinka mano motociklui.

Raspberry Pi

Pritvirtinkite pačią avietę Pi ant saugios vietos motociklo viduje, aš ją padėjau po vienu iš sparnų, naudodamas keletą velcro dirželių. Ir apsaugojo jį nuo elementų, naudodami korpusą ir šiek tiek plastiko.

Akselerometras

Akselerometrą sumontuokite saugioje vietoje, geriausia ant paties motociklo rėmo.

Pastaba:

Jums nereikia turėti to paties būsto kaip aš, jūs galite laisvai jį užbaigti, kaip jums patinka. Tiesiog įsitikinkite, kad elektroniniai komponentai yra apsaugoti nuo lietaus ir dulkių.

Rekomenduojamas: