Taula de continguts:
- Subministraments
- Pas 1: prototipatge
- Pas 2: Preparació del Raspberry Pi
- Pas 3: base de dades
- Pas 4: Backend
- Pas 5: Frontend
- Pas 6: mostrar el tauler a la pantalla
- Pas 7: Soldar l'electrònica
- Pas 8: font d'alimentació
- Pas 9: Habitatge
Vídeo: Tauler de control de la moto Raspberry Pi: 9 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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
- 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.
Un conjunt de resistències
Diferents colors de filferro de 0,2 mm
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
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
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
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
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
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
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
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:
Com s'executen motors servo amb Moto: bit Amb Micro: bit: 7 passos (amb imatges)
Com s'executen servomotors amb Moto: bit amb Micro: bit: una manera d'estendre la funcionalitat del micro: bit és utilitzar una placa anomenada moto: bit per SparkFun Electronics (aproximadament entre 15 i 20 dòlars). Sembla complicat i té moltes funcions, però no és difícil fer servir servomotors. Moto: bit et permet
Tauler de control de la nau espacial: joguina Arduino tallada amb làser: 11 passos (amb imatges)
Tauler de control de la nau espacial: joguina Arduino tallada amb làser: fa uns mesos vaig decidir formar part de l'espai local de fabricants, ja que des de feia anys que volia aprendre les eines del sector dels fabricants. Vaig tenir una petita experiència d’Arduino i havia pres un curs de Fusion aquí a Instructables. Tanmateix jo
Tauler lleuger o tauler de vidre: 4 passos
DIY Lightboard o Glassboard: Hi ha moltes innovacions en el sector educatiu. L’ensenyament i l’aprenentatge a través d’Internet ja són coses quotidianes. La majoria de les vegades els tutors en línia tendeixen a centrar-se més en el contingut tècnic, deixant als espectadors desinteressats. Aprenentatge en 3D
Rellotge d'animació LED SMART connectat a la xarxa amb tauler de control basat en web, servidor de temps sincronitzat: 11 passos (amb imatges)
Rellotge d’animació LED SMART connectat a la xarxa amb tauler de control basat en web, sincronitzat amb el servidor de temps: la història d’aquest rellotge es remunta molt enrere: fa més de 30 anys. El meu pare va ser pioner en aquesta idea quan tenia només deu anys, molt abans de la revolució del LED, quan els LED eren de 1/1000 la brillantor de la seva brillantor encegadora actual. Un veritable
Tauler GPIO Raspberry Pi aïllat amb font d'alimentació de 12-24VDC a 5VDC: 3 passos (amb imatges)
Tauler GPIO Raspberry Pi aïllat amb font d'alimentació de 12-24VDC a 5VDC: Aquesta taula d'instruccions us ajudarà a configurar el Raspberry Pi amb la placa GPIO aïllada. Les característiques de la placa són 1) entrada i sortida de 12 a 24V (estàndards industrials). 2) Pin de Raspberry Pi per fixar capçaleres coincidents perquè pugueu apilar-lo o