Talaan ng mga Nilalaman:

Dashboard ng Motorsiklo ng Raspberry Pi: 9 Mga Hakbang (na may Mga Larawan)
Dashboard ng Motorsiklo ng Raspberry Pi: 9 Mga Hakbang (na may Mga Larawan)

Video: Dashboard ng Motorsiklo ng Raspberry Pi: 9 Mga Hakbang (na may Mga Larawan)

Video: Dashboard ng Motorsiklo ng Raspberry Pi: 9 Mga Hakbang (na may Mga Larawan)
Video: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, Hulyo
Anonim
Dashboard ng Motorsiklo ng Raspberry Pi
Dashboard ng Motorsiklo ng Raspberry Pi

Bilang isang mag-aaral na teknolohiya ng Multimedia & Komunikasyon sa Howest Kortrijk, kinailangan kong gumawa ng sarili kong proyekto sa IoT. Pagsasama-sama nito ang lahat ng mga module na sinundan sa unang taon sa isang malaking proyekto. Sapagkat madalas akong sumakay sa aking motorsiklo sa aking bakanteng oras, nagpasya akong gamitin ang aking nakuha na mga kasanayan sa MCT tu build ng isang bagay para sa aking motorsiklo: Isang matalinong dashboard.

Ang MotoDash ay isang dashboard na pinagagana ng Raspberry Pi na idinisenyo para sa mga panatiko na nagmotorsiklo na nagbibigay sa rider ng kakayahang subaybayan ang kanilang pagganap.

Ano ang mga tampok ng dashboard na ito?

  • Pagtingin sa kasalukuyang anggulo ng ikiling
  • Pagtingin sa kasalukuyang pagpabilis
  • Kakayahang subaybayan ang temperatura ng langis
  • Awtomatikong lumipat sa madilim na tema kapag sumakay sa dilim
  • Mag-log ng data ng iyong mga pagsakay, at tingnan ang iyong sariling mga istatistika

Mga gamit

Pangunahing yunit ng computing:

Raspberry Pi Ito ang pangunahing controller ng system

Elektronikong:

  • USB charger para sa motorsiklo 12V-5VMain powerupply para sa RPi
  • 4 Pin Fused Relay 12VSwitch upang i-on / i-off ang power circuit ng RPi
  • Breadboard na may mga wire ng jumper (opsyonal) Para sa pagsubok at prototyping
  • Isang hanay ng mga resistors

    Iba't ibang mga kulay ng 0.2mm wire

  • Breakout Pi plusIto ay isang prototyping board kung saan maaari mong solder ang lahat ng iyong mga bahagi. Ginawa ito upang magkasya nang direkta sa tuktok ng Raspberry Pi, kaya't ang mga sukat ng proyekto ay mananatili sa isang minimum.

Mga sensor at module:

  • Hindi tinatagusan ng tubig DS18B20 1-Wire Temperature sensor sensor ng temperatura ng langis
  • 3 Axes Gyro Accelerometer MPU6050Tilt / accel sensor
  • Light dependant resistor (LDR)
  • MCP3008 - 8-channel 10-Bit ADC na may SPI Interface

    TFT SPI display (o anumang iba pang display sa lcd na umaangkop sa iyong mga pangangailangan)

    RGB LED

Casing:

  • Kahong plastik
  • Kaso ng raspberry pi

Mga tool:

  • Panghinang at bakalang panghinang
  • 2.5mm na mga tornilyo at spacer
  • Mga konektor ng hindi tinatagusan ng tubig na cable
  • Superglue

Hakbang 1: Prototyping

Prototyping
Prototyping
Prototyping
Prototyping

Bago natin gawing permanente ang lahat, isasama namin ang proyekto sa isang breadboard. Maaaring laktawan ang hakbang na ito kung sigurado ka talagang hindi ka makakagawa ng mga pagkakamali. Ang iskemang elektrikal / breadboard ay matatagpuan sa PDF sa ibaba. Isama ang circuit nang eksakto tulad ng inilarawan. Tiyaking gagamitin lamang ang 3.3V pin at hindi ang 5V pin sa RPi. Gayundin bago mo paandarin ang raspberry Pi i-double check ang iyong circuit. Siguraduhin na walang mga shorts!

Hakbang 2: Paghahanda ng Raspberry Pi

Paghahanda ng Raspberry Pi
Paghahanda ng Raspberry Pi

Una sa lahat, i-set up namin ang Raspberry Pi. Ang Raspberry Pi ay isang mini computer na may kakayahang magpatakbo ng sarili nitong operating system. Para sa proyektong ito, responsable ito sa pagproseso ng sensordata, pagho-host ng website, pagpapatakbo ng backend at database,…

1. Mag-install ng pasadyang Larawan ng Raspbian

Naglalaman na ang ibinigay na imahe ng mga package ng software na kinakailangan upang masimulan ang proyektong ito:

  • Apache para sa frontend ng website
  • MariaDB para sa database
  • PhpMyAdmin upang manipulahin ang database
  • Pasadyang mga pahintulot upang maiwasan ang mga problema

Maaaring mai-download ang pasadyang imahe mula rito.

Ang isang tutorial para sa pag-install ng mga imahe ay matatagpuan dito:

Kapag na-install na ang imahe, ikonekta ang Raspberry Pi sa iyong pc gamit ang isang ethernet cable. Ngayon ay maaari kang gumamit ng isang SSH client upang kumonekta dito sa IP address 169.254.10.1

Mahusay na kasanayan upang agad na magtakda ng isang bagong password gamit ang command passwd

2. Pag-configure ng wireless AP

Kapag natapos ang proyekto, nais naming makakonekta sa RPi sa paglipas ng wifi, kaya hinahayaan itong gawing isang wireless AP. Ang isang tutorial para dito ay matatagpuan dito.

Kailangan mo lamang sundin ang tutorial na ito hanggang sa hakbang 7. Hindi kinakailangan ang Hakbang 8 dahil hindi namin kailangan na tulay ang isang koneksyon sa internet, ngunit lumikha ng isang nakapag-iisang network.

3. Pagpapagana ng mga interface

Tumungo sa raspi-config

sudo raspi-config

Pumunta sa mga pagpipilian sa interfacing at paganahin ang 1-wire, SPI at I2C at i-reboot ang Pi

3. Pagse-set up ng mga driver para sa display

Inisyal ang pagpapakita

I-edit ang file / etc / modules

sudo nano / etc / modules

Idagdag ang sumusunod na 2 linya

spi-bcm2835fbtft_device

Ngayon i-edit ang /etc/modprobe.d/fbtft.conf

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

Idagdag ang sumusunod na linya

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

I-reboot ang Pi. Kung nakikita mo ang backlight ng display light up lahat ay naging maayos. Pinasimulan nito ang display sa tuwing naka-boot ang Pi, subalit magpapakita lamang ito ng isang itim na screen ngayon. Upang makuha ang mga nilalaman ng Pi sa display, kailangan naming kopyahin ang mga nilalaman ng pangunahing screen papunta sa maliit na LCD. Gagamitin namin ang isang serbisyo na tinatawag na 'fbcp' para dito.

Pag-install ng serbisyo sa fbcp

sudo apt-get install cmake

git clone

cd rpi-fbcp

mkdir build

cd build /

cmake..

gumawa

sudo i-install ang fbcp / usr / local / bin / fbcp

Ngayon ay na-install na namin ang serbisyo. Gayunpaman, dahil ginagamit namin ang Pi na walang ulo, walang magagamit na screen upang kopyahin ang mga nilalaman mula sa. Upang mapilit ang Pi na mag-output ng nilalaman ng screen, i-edit /boot/config.txt

sudo nano /boot/config.txt

Maghanap at mag-komento o magdagdag ng mga sumusunod na linya sa file na ito:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

I-reboot ang RPi, at subukan ang serbisyo ng fbcp sa pamamagitan ng pag-type ng fbcp sa console. Ngayon ay dapat mong makita ang mga nilalaman ng screen sa LCD.

Pagpapatakbo ng fbcp sa pagsisimula

I-edit /etc/rc.local at idagdag ang sumusunod na linya sa pagitan ng ip address at ang exit line

fbcp &

Ngayon dapat na buksan ang display sa bawat oras na mag-bot up ang RPi

Hakbang 3: Database

Database
Database

Upang mag-log at mag-imbak ng sensordata ay dinisenyo ko ang aking sariling database na naglalaman ng 4 na talahanayan. Ang diagram ng EER ay ipinapakita sa imahe sa itaas.

1. Mga aparato

Naglalaman ang talahanayan na ito ng bawat sensor. Inilalarawan nito ang pangalan ng sensor, paglalarawan at yunit ng pagsukat. Ang talahanayan na ito ay may isang-sa-maraming ugnayan sa mga aksyon sa talahanayan, tulad ng sa aking kaso, ang sensor ng accelero ay maaaring magsagawa ng iba't ibang mga gawain.

2. Mga kilos

Nag-iimbak ang talahanayan na ito ng mga pagkilos para sa iba't ibang sensor. Ang isang aksyon ay palaging naka-link sa isang partikular na sensor. Halimbawa: ang aksyon na 'TEMP' ay naka-link sa aparato na sumusukat sa temperatura. Ito ang magiging sensor ng temperatura ng 1-wire.

3. Kasaysayan

Naglalaman ang talahanayan na ito ng lahat ng mga log ng sensor. Ang bawat log ay mayroong isang action id, isang halaga, isang timestamp at isang rideid

4. Pagsakay

Nag-iimbak ang talahanayan na ito ng iba't ibang mga pagsakay. Sa tuwing magsisimula ang gumagamit ng isang bagong pagsakay, isang bagong entry sa talahanayan na ito ang gagawin

Upang makuha ang database na ito sa iyong Raspberry Pi, magtungo sa aking GitHub at i-clone / i-download ang imbakan. Sa ilalim ng database ay mahahanap mo ang 2.sql file. Patakbuhin ang mga ito sa PhpMyAdmin o MySQL workbench. Ngayon ang database ay dapat nasa iyong RPi.

Hakbang 4: Backend

Kung hindi mo pa nagagawa, magtungo sa aking GitHub at i-clone / i-download ang imbakan. Sa ilalim ng folder ng Backend makikita mo ang buong backend para sa proyekto.

Naglalaman ang folder ng mga klase para sa pagbabasa ng mga sensor sa ilalim ng / helpers, mga file upang makipag-usap sa database sa ilalim / repositories, at ang pangunahing application ay matatagpuan sa ugat sa ilalim ng pangalang app.py.

Pag-install ng mga package ng Python

Bago namin subukang patakbuhin ang anumang bagay, kailangan muna naming mag-install ng ilang mga pakete para sa sawa. Pumunta sa terminal ng iyong RPi at i-type ang mga sumusunod na utos:

pip3 i-install ang MySQL-Connector-Python

pip3 i-install ang flask-socketio

pip3 i-install ang flask-cors

pip3 i-install ang gevent

pip3 i-install ang gevent-websocket

MAHALAGA TANDAAN: kung binago mo ang iyong Mariadb / Mysql password, palitan ang password sa config.py!

Subukan ang backend

Patakbuhin ang app.py gamit ang python3 interpreter (/ usr / bin / python3). Tiyaking walang mga error.

Pagpapatakbo ng backend sa boot

I-edit ang motoDash_backend.service at baguhin ang IYONG LOVERAT sa landas kung saan nai-save ang repository.

Ngayon kopyahin ang file na ito sa / etc / systemd / system /

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

Ngayon ang backend ay awtomatikong magsisimulang bawat oras na ang RPi boots.

Hakbang 5: Frontend

Frontend
Frontend
Frontend
Frontend

Tumungo sa GitHub Repo. Kopyahin ang mga nilalaman ng direktoryo ng Frontend sa / var / www / html.

Ito lang ang dapat mong gawin upang gumana ang frontend. Naglalaman ang folder na ito ng lahat ng mga webpage, istilo at script para sa web interface. Nakikipag-usap din ito sa backend. Upang masubukan kung gumagana ang lahat tulad ng dapat, siguraduhin na nakakonekta ka sa iyong RPi, at i-type ang IP address ng RPi sa isang browser. Dapat mong makita ang homepage ng web interface.

Tandaan: Ang website ay tumutugon, kaya maaari mo itong magamit sa mobile pati na rin sa desktop

Hakbang 6: Ipinapakita ang Dashboard sa Display

Ipinapakita ang Dashboard sa Display
Ipinapakita ang Dashboard sa Display

Ang frontend ay mayroong sariling nakatagong webpage na ginagamit lamang para sa maliit na display. Awtomatiko naming gagawin ang Pi boot sa website na ito sa full screen mode.

Tiyaking nakatakda ang RPi sa desktop autologin sa raspi-config sa ilalim ng mga pagpipilian sa boot

sudo raspi-config

Pumunta ngayon sa nakatagong config folder at lumikha ng isang bagong file doon

cd.config

sudo mkdir -p lxsession / LXDE-pi

sudo nano lxsession / LXDE-pi / autostart

Idagdag ang mga sumusunod na linya sa file na ito at i-save

@xscreensaver -no-splash

@xset s off

@xset -dpms

@xset s noblank

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

Ngayon ang Pi ay dapat na mag-boot sa webpage na ito sa tuwing

Hakbang 7: Paghihinang ng Elektronika

Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika
Paghihinang ng Elektronika

Kunin ang breakout board at ilatag ang iyong mga bahagi dito sa isang nakaayos na paraan. Hindi ko tatalakayin ang layout ng kung paano ko na-solder ang mga sangkap dito, tulad ng ginawa kong isang mahirap na trabaho dito. Gumamit ako ng magkakahiwalay na mga header ng pin sa board upang kailangan ko lamang ikonekta ang mga sensor at module sa kanang pin. Tiyaking alam mo kung aling pin ang para sa kung ano!

Ang ilang mga tip habang naghihinang:

  • Gumamit ng mga insulated wire kapag tumatawid sa mas malalaking distansya. Ang huling bagay na nais mo ay ang shorts sa iyong circuit
  • Matapos ang paghihinang ng isang bahagi o kawad, suriin ang pagpapatuloy nito sa isang multimeter. Regular ding suriin ang mga maikling circuit.
  • Huwag gumamit ng sobra o masyadong maliit na panghinang!
  • Kung hindi mo alam kung paano maghinang, pagsasanay muna ito sa isa pang prototyping board. Ang isang tutorial sa paghihinang ay matatagpuan dito.

Ngayon ang mga wire ng panghinang ay sapat na mahaba sa mga sensor, at maglagay ng kaunting pag-urong sa paligid ng mga ito upang matiyak na ang lahat ay hindi naikli at malinis.

Kapag natapos ka na, i-double check para sa anumang mga shorts o hindi magandang koneksyon, at suriin ang bawat koneksyon sa electric scheme kung ito ang tamang koneksyon. Sa sandaling natitiyak mo na ang lahat ay tapos nang tama, magpatuloy at ilagay ang breakout board sa RPi, tapusin ito ng mahigpit gamit ang ilang 2.5mm na mga tornilyo at standoff. Gisingin ang mga sensor sa mga tamang pin at subukan ang lahat gamit ang website.

Hakbang 8: Supply ng Kuryente

Upang mapagana ang Raspberry Pi gagamitin namin ang isang 12V-5V usb adapter. Ang adapter na ito ay makokonekta sa baterya ng motorsiklo. Upang matiyak na umaandar ang RPi kapag nakabukas ang switch ng pag-aapoy, gagamit kami ng isang relay. Isasara ng relay ang circuit ng kuryente ng RPi kapag nakakita ito ng boltahe mula sa taillight (palaging nakabukas ang taillight kapag binubuksan ang ignisyon).

Para sa isang mas detalyadong tutorial tungkol dito, tingnan ang pahinang ito: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controllers.16921 /

Hakbang 9: Pabahay

Pabahay
Pabahay
Pabahay
Pabahay
Pabahay
Pabahay

Ipakita ang Pabahay

Para sa display, kunin ang iyong sarili ng isang matigas na kahon ng plastik mula sa laki ng display. Gupitin ang isang parisukat na butas dito kasing laki ng display, at pagtutugma ng mga butas upang mai-tornilyo ang display. Sa harap kailangan mong mag-drill ng 2 pang mga butas para sa RGB LED at LDR.

Inilagay ko ang kahon na ito sa tuktok ng isang may-ari ng smartphone gamit ang isang bolt.

Temperatura Sensor

Para sa pabahay ng sensor ng temperatura, nag-print ako ng isang gauge ng langis na umaangkop sa aking motorsiklo.

Raspberry Pi

I-mount ang raspberry Pi mismo sa isang ligtas na lugar sa loob ng motorsiklo, inilagay ko ito sa ilalim ng isa sa mga fender gamit ang ilang mga velcro strap. At protektado ito mula sa mga elemento gamit ang isang pabahay at ilang plastik.

Accelerometer

I-mount ang accelerometer sa isang ligtas na lugar, mas mabuti sa frame ng motorsiklo mismo.

Tandaan:

Hindi mo kailangang magkaroon ng eksaktong kaparehong pabahay tulad ng ginawa ko, malaya kang matapos ito subalit nais mo. Siguraduhin lamang na ang mga elektronikong sangkap ay protektado mula sa ulan at alikabok.

Inirerekumendang: