Taula de continguts:

Tauler de control de la moto Raspberry Pi: 9 passos (amb imatges)
Tauler de control de la moto Raspberry Pi: 9 passos (amb imatges)

Vídeo: Tauler de control de la moto Raspberry Pi: 9 passos (amb imatges)

Vídeo: Tauler de control de la moto Raspberry Pi: 9 passos (amb imatges)
Vídeo: И ЭТО ТОЖЕ ДАГЕСТАН? Приключения в долине реки Баараор. БОЛЬШОЙ ВЫПУСК (Путешествие по Дагестану #3) 2024, De novembre
Anonim
Tauler de control de motocicletes Raspberry Pi
Tauler de control de motocicletes Raspberry Pi

Com a estudiant de tecnologia de comunicació i multimèdia a Howest Kortrijk, vaig haver de fer el meu propi projecte IoT. Això combinaria tots els mòduls seguits el primer any en un gran projecte. Com que condueixo molt la moto en el meu temps lliure, vaig decidir utilitzar les meves habilitats adquirides a MCT per construir alguna cosa per a la meva moto: un tauler intel·ligent.

MotoDash és un quadre de comandament alimentat per Raspberry Pi dissenyat per a motociclistes fanàtics que ofereix al pilot la possibilitat de fer un seguiment del seu rendiment.

Quines característiques té aquest tauler?

  • Visualització de l'angle d'inclinació actual
  • Visualització de l’acceleració actual
  • Capacitat de controlar la temperatura de l'oli
  • Canvieu automàticament al tema fosc quan passegeu per la foscor
  • Registreu dades de les vostres atraccions i visualitzeu les vostres pròpies estadístiques

Subministraments

Unitat informàtica principal:

Raspberry Pi Aquest és el controlador principal del sistema

Electrònica:

  • Carregador USB per a motocicletes 12V-5V Alimentació principal del RPi
  • Interruptor de 12 V Fusible de 4 pins Interruptor per encendre / apagar el circuit d’alimentació del RPi
  • Taula de pa amb cables de pont (opcional) Per a proves i prototips

  • Un conjunt de resistències

    Diferents colors de filferro de 0,2 mm

  • Breakout Pi plus: es tracta d’un tauler de prototipatge on podeu soldar tots els vostres components. Està fet per adaptar-se directament a la part superior del Raspberry Pi, de manera que les dimensions del projecte queden al mínim.

Sensors i mòduls:

  • Sensor de temperatura a 1 fil DS18B20 impermeable Sensor de temperatura de l’oli
  • Acceleròmetre giroscòpic de 3 eixos MPU6050 Sensor d’inclinació / acceleració
  • Resistència dependent de la llum (LDR)
  • MCP3008: ADC de 10 canals de 8 canals amb interfície SPI

    Pantalla TFT SPI (o qualsevol altra pantalla LCD que s'adapti a les vostres necessitats)

    LED RGB

Carcassa:

  • Caixa de plàstic
  • Raspberry pi Case

Eines:

  • Soldador i soldador
  • Cargols i separadors de 2,5 mm
  • Connectors de cables impermeables
  • Superglue

Pas 1: prototipatge

Prototipatge
Prototipatge
Prototipatge
Prototipatge

Abans de fer-ho tot permanent, muntarem el projecte en una pissarra. Aquest pas es pot ometre si està absolutament segur que no cometrà errors. Es pot trobar l’esquema elèctric / de taulers de paret al PDF següent. Poseu el circuit exactament tal com es descriu. Assegureu-vos que només utilitzeu el pin de 3,3 V i no el pin de 5 V al RPi. També abans d’engegar el raspberry Pi, reviseu el vostre circuit. Assegureu-vos que no hi hagi pantalons curts!

Pas 2: Preparació del Raspberry Pi

Preparació del Raspberry Pi
Preparació del Raspberry Pi

En primer lloc, configurarem el Raspberry Pi. El Raspberry Pi és un mini ordinador capaç d’executar el seu propi sistema operatiu. Per a aquest projecte, s’encarrega de processar sensordata, allotjar el lloc web, executar el backend i la base de dades, …

1. Instal·leu la imatge Raspbian personalitzada

La imatge proporcionada ja conté els paquets de programari necessaris per iniciar aquest projecte:

  • Apache per al frontend del lloc web
  • MariaDB per a la base de dades
  • PhpMyAdmin per manipular la base de dades
  • Permisos personalitzats per evitar problemes

La imatge personalitzada es pot descarregar des d’aquí.

Podeu trobar un tutorial per instal·lar imatges aquí:

Un cop instal·lada la imatge, connecteu el Raspberry Pi al vostre ordinador amb un cable ethernet. Ara podeu utilitzar un client SSH per connectar-vos-hi a l'adreça IP 169.254.10.1

És una bona pràctica establir immediatament una nova contrasenya mitjançant l'ordre passwd

2. Configuració del punt d'accés sense fils

Quan finalitzi el projecte, volem poder connectar-nos al RPi mitjançant wifi, de manera que el convertim en un punt de connexió sense fils. Un tutorial per a això es pot trobar aquí.

Només heu de seguir aquest tutorial fins al pas 7. El pas 8 no és obligatori, ja que no necessitem connectar una connexió a Internet, sinó crear una xarxa autònoma.

3. Habilitació d’interfícies

Aneu a raspi-config

sudo raspi-config

Aneu a les opcions d'interfície i activeu 1 cable, SPI i I2C i reinicieu el Pi

3. Configuració de controladors per a la pantalla

Inicialització de la pantalla

Editeu el fitxer / etc / modules

sudo nano / etc / modules

Afegiu les 2 línies següents

spi-bcm2835fbtft_device

Ara editeu /etc/modprobe.d/fbtft.conf

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

Afegiu la línia següent

opcions fbtft_device name = tm022hdh26 gpios = restabliment: 25, dc: 24, led: 18 rotació = 90 velocitat = 80000000 fps = 60

Reinicieu el Pi. Si veieu que la il·luminació de la pantalla s’il·lumina, tot ha anat bé. Això inicialitzarà la pantalla cada cop que arrenci el Pi, però ara només mostrarà una pantalla negra. Per obtenir el contingut del Pi a la pantalla, hem de copiar el contingut de la pantalla principal al petit LCD. Utilitzarem un servei anomenat "fbcp" per a això.

Instal·lació del servei fbcp

sudo apt-get install cmake

git clone

cd rpi-fbcp

mkdir build

cd build /

cmake..

fer

sudo instal·lar fbcp / usr / local / bin / fbcp

Ara hem instal·lat el servei. Tanmateix, com que fem servir el Pi sense cap, no hi ha cap pantalla disponible per copiar contingut. Per forçar el Pi a generar contingut de la pantalla, editeu /boot/config.txt

sudo nano /boot/config.txt

Cerqueu i deixeu el comentari o afegiu les línies següents a aquest fitxer:

hdmi_force_hotplug = 1

hdmi_cvt = 640 480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Reinicieu el RPi i proveu el servei fbcp escrivint fbcp a la consola. Ara hauríeu de veure el contingut de la pantalla a la pantalla LCD.

S'està executant fbcp a l'inici

Editeu /etc/rc.local i afegiu la línia següent entre l'adreça IP i la línia de sortida

fbcp &

Ara, la pantalla s’ha d’encendre cada cop que arrenca el RPi

Pas 3: base de dades

Base de dades
Base de dades

Per registrar i emmagatzemar sensordata he dissenyat la meva pròpia base de dades que conté 4 taules. El diagrama EER es mostra a la imatge superior.

1. Dispositius

Aquesta taula conté tots els sensors. Descriu el nom, la descripció i la unitat de mesura del sensor. Aquesta taula té una relació d'un a molts amb les accions de la taula, ja que en el meu cas, el sensor d'accelero pot realitzar diferents tasques.

2. Accions

Aquesta taula emmagatzema les accions per a diferents sensors. Una acció sempre està relacionada amb un sensor concret. Per exemple: l'acció "TEMP" està vinculada al dispositiu que mesura la temperatura. Aquest seria el sensor de temperatura d’un fil.

3. Història

Aquesta taula conté tots els registres de sensors. Cada registre té un identificador d’acció, un valor, una marca de temps i un rideid

4. Passejades

Aquesta taula emmagatzema diferents atraccions. Cada vegada que l'usuari inicia una nova ruta, es crea una nova entrada en aquesta taula

Per obtenir aquesta base de dades al vostre Raspberry Pi, aneu al meu GitHub i cloneu / descarregueu el dipòsit. A la base de dades trobareu 2 fitxers.sql. Executeu-los al PhpMyAdmin o al banc de treball MySQL. Ara la base de dades hauria d’estar al vostre RPi.

Pas 4: Backend

Si encara no ho heu fet, aneu al meu GitHub i cloneu / descarregueu el dipòsit. A la carpeta Backend trobareu el backend complet del projecte.

La carpeta conté classes per llegir sensors a / helpers, fitxers per comunicar-se amb la base de dades / repositoris i l'aplicació principal es troba a l'arrel sota el nom app.py.

Instal·lació de paquets Python

Abans d’intentar executar res, primer hem d’instal·lar alguns paquets per a Python. Aneu al terminal del vostre RPi i escriviu les ordres següents:

pip3 instal·la mysql-connector-python

pip3 instal·la flask-socketio

pip3 instal·lar flask-cors

pip3 install gevent

pip3 instal·la gevent-websocket

NOTA IMPORTANT: si heu canviat la contrasenya Mariadb / Mysql, canvieu la contrasenya a config.py.

Proveu el backend

Executeu app.py mitjançant l’intèrpret python3 (/ usr / bin / python3). Assegureu-vos que no hi hagi errors.

Execució del backend a l'arrencada

Editeu motoDash_backend.service i canvieu YOURFILEPATH al camí on es guarda el dipòsit.

Ara copieu aquest fitxer a / etc / systemd / system /

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

Ara el backend s'iniciarà automàticament cada vegada que arrenci el RPi.

Pas 5: Frontend

Frontend
Frontend
Frontend
Frontend

Aneu al repositori GitHub. Copieu el contingut del directori Frontend a / var / www / html.

Això és tot el que heu de fer perquè el frontal funcioni. Aquesta carpeta conté totes les pàgines web, l'estil i els scripts de la interfície web. També es comunica amb el backend. Per provar si tot funciona correctament, assegureu-vos que esteu connectat al vostre RPi i escriviu l'adreça IP del RPi en un navegador. Hauríeu de veure la pàgina d'inici de la interfície web.

Nota: el lloc web és sensible, de manera que podeu utilitzar-lo tant en dispositius mòbils com en ordinadors

Pas 6: mostrar el tauler a la pantalla

Visualització del tauler a la pantalla
Visualització del tauler a la pantalla

El frontend té la seva pròpia pàgina web oculta que només s'utilitza per a la pantalla petita. Farem que l’arrencada del Pi es faci automàticament en aquest lloc web en mode de pantalla completa.

Assegureu-vos que el RPi està configurat com a autologin de l’escriptori a raspi-config a les opcions d’arrencada

sudo raspi-config

Ara aneu a la carpeta de configuració oculta i creeu-hi un fitxer nou

cd.config

sudo mkdir -p lxsession / LXDE-pi

sudo nano lxsession / LXDE-pi / autostart

Afegiu les línies següents en aquest fitxer i deseu-les

@xscreensaver -no-splash

@xset s desactivat

@xset -dpms

@xset s noble

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

Ara el Pi hauria d'arrencar a aquesta pàgina web cada vegada

Pas 7: Soldar l'electrònica

Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica
Soldar l'electrònica

Agafeu el tauler de distribució i dissenyeu-hi els components de manera estructurada. No discutiré la disposició de com he soldat els components, ja que hi vaig fer un treball força pobre. Vaig utilitzar capçaleres de pins separades a la placa, de manera que només necessitava connectar els sensors i els mòduls al pin dret. Assegureu-vos de saber quin pin és per a què.

Alguns consells per soldar:

  • Utilitzeu cables aïllats quan creueu distàncies més grans. L'últim que voleu són els curtmetratges del vostre circuit
  • Després de soldar un component o filferro, comproveu-ne la continuïtat amb un multímetre. Comproveu també regularment si hi ha curtcircuits.
  • No utilitzeu massa o massa poca soldadura.
  • Si no sabeu soldar, practiqueu-lo primer en una altra placa de prototipatge. Podeu trobar un tutorial sobre la soldadura aquí.

Ara soldeu els cables prou de temps per als sensors i col·loqueu-hi un embolcall reductor per assegurar-vos que tot no estigui curt i net.

Quan hàgiu acabat, comproveu si hi ha curtes o males connexions i comproveu totes les connexions amb el sistema elèctric si és la connexió correcta. Un cop esteu segurs de que tot es fa correctament, aneu endavant i poseu el tauler de ruptura al RPi, fiqueu-lo amb uns cargols de 2,5 mm i uns separadors. Connecteu els sensors als pins correctes i proveu-los tots mitjançant el lloc web.

Pas 8: font d'alimentació

Per alimentar el Raspberry Pi utilitzarem un adaptador usb de 12V a 5V. Aquest adaptador es connectarà a la bateria de la motocicleta. Per assegurar-nos que l’RPi s’encén quan l’interruptor d’encès està engegat, farem servir un relé. El relé tancarà el circuit d’alimentació RPi quan detecti una tensió del llum del darrere (el llum del darrere sempre s’encén en engegar el contacte).

Per obtenir un tutorial més detallat sobre això, consulteu aquesta pàgina: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliar-power-for-pcv-wb2-and-other-fuel -controllers.16921 /

Pas 9: Habitatge

Habitatge
Habitatge
Habitatge
Habitatge
Habitatge
Habitatge

Mostrar Habitatge

Per a la pantalla, agafeu una caixa de plàstic dura de la mida de la pantalla. Talleu-hi un forat quadrat tan gran com la pantalla i els forats corresponents per cargolar la pantalla. A la part frontal heu de practicar 2 forats més per al LED RGB i el LDR.

Vaig muntar aquesta caixa damunt d’un suport per a telèfons intel·ligents amb un cargol.

Sensor de temperatura

Per allotjar el sensor de temperatura, vaig imprimir 3D un indicador d’oli que s’adaptava a la meva moto.

Raspberry Pi

Munteu el raspberry Pi en un lloc segur dins de la motocicleta, el vaig col·locar sota un dels parabolts amb unes corretges de velcro. I el va protegir dels elements mitjançant una carcassa i una mica de plàstic.

Acceleròmetre

Munteu l’acceleròmetre en un lloc segur, preferiblement al propi marc de la motocicleta.

Nota:

No cal que tingueu exactament la mateixa carcassa que jo, sinó que podeu lliurar-la com vulgueu. Assegureu-vos que els components electrònics estan protegits de la pluja i la pols.

Recomanat: