Sommario:
- Forniture
- Passaggio 1: prototipazione
- Passaggio 2: preparazione del Raspberry Pi
- Passaggio 3: banca dati
- Passaggio 4: backend
- Passaggio 5: frontend
- Passaggio 6: visualizzazione del dashboard sul display
- Passaggio 7: saldatura dell'elettronica
- Passaggio 8: alimentazione
- Passaggio 9: alloggio
Video: Cruscotto moto Raspberry Pi: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Come studente di tecnologia multimediale e di comunicazione a Howest Kortrijk, ho dovuto realizzare il mio progetto IoT. Ciò combinerebbe tutti i moduli seguiti nel primo anno in un unico grande progetto. Poiché guido molto la mia moto nel mio tempo libero, ho deciso di utilizzare le mie competenze acquisite in MCT per costruire qualcosa per la mia moto: un cruscotto intelligente.
MotoDash è un cruscotto alimentato da Raspberry Pi progettato per motociclisti fanatici che offre al pilota la possibilità di monitorare le proprie prestazioni.
Quali sono le caratteristiche di questa dashboard?
- Visualizzazione dell'angolo di inclinazione attuale
- Visualizzazione dell'accelerazione attuale
- Possibilità di monitorare la temperatura dell'olio
- Passa automaticamente al tema scuro quando guidi al buio
- Registra i dati delle tue corse e visualizza le tue statistiche
Forniture
Unità di calcolo principale:
Raspberry Pi Questo è il controller principale del sistema
Elettronica:
- Caricabatterie USB per moto 12V-5VAlimentazione principale per RPi
- Relè con fusibile a 4 pin 12VInterruttore per accendere/spegnere il circuito di alimentazione dell'RPi
- Breadboard con ponticelli (opzionale)Per test e prototipazione
-
Breakout Pi plusQuesta è una scheda di prototipazione in cui puoi saldare tutti i tuoi componenti. È fatto per adattarsi direttamente sopra il Raspberry Pi, quindi le dimensioni del progetto rimangono al minimo.
Un set di resistori
Diversi colori di filo da 0,2 mm
Sensori e moduli:
- Sensore di temperatura a 1 filo DS18B20 impermeabileSensore di temperatura dell'olio
- Accelerometro giroscopico a 3 assi MPU6050Sensore di inclinazione/accelerazione
- Resistenza dipendente dalla luce (LDR)
MCP3008 - ADC a 10 bit a 8 canali con interfaccia SPI
Display TFT SPI (o qualsiasi altro display LCD adatto alle tue esigenze)
LED RGB
Involucro:
- Scatola di plastica
- Custodia Raspberry pi
Utensili:
- Saldatore e saldatore
- Viti e distanziali da 2,5 mm
- Connettori per cavi impermeabili
- Super colla
- …
Passaggio 1: prototipazione
Prima di rendere tutto permanente, metteremo insieme il progetto su una breadboard. Questo passaggio può essere saltato se sei assolutamente certo di non commettere errori. Lo schema elettrico/breadboard è disponibile nel PDF sottostante. Metti insieme il circuito esattamente come descritto. Assicurati di utilizzare solo il pin da 3,3 V e non il pin da 5 V sull'RPi. Inoltre, prima di accendere il Raspberry Pi, ricontrolla il tuo circuito. Assicurati che non ci siano pantaloncini!
Passaggio 2: preparazione del Raspberry Pi
Prima di tutto, configureremo il Raspberry Pi. Il Raspberry Pi è un mini computer in grado di eseguire il proprio sistema operativo. Per questo progetto, è responsabile dell'elaborazione dei dati dei sensori, dell'hosting del sito Web, dell'esecuzione del backend e del database, …
1. Installa un'immagine Raspbian personalizzata
L'immagine fornita contiene già i pacchetti software necessari per avviare questo progetto:
- Apache per il frontend del sito
- MariaDB per il database
- PhpMyAdmin per manipolare il database
- Permessi personalizzati per evitare problemi
L'immagine personalizzata può essere scaricata da qui.
Un tutorial per l'installazione delle immagini è disponibile qui:
Una volta installata l'immagine, collega il Raspberry Pi al tuo PC con un cavo ethernet. Ora puoi utilizzare un client SSH per connetterti all'indirizzo IP 169.254.10.1
È buona norma impostare subito una nuova password utilizzando il comando passwd
2. Configurazione dell'AP wireless
Quando il progetto è finito, vogliamo essere in grado di connetterci all'RPi tramite Wi-Fi, quindi trasformiamolo in un AP wireless. Un tutorial per questo può essere trovato qui.
Devi solo seguire questo tutorial fino al passaggio 7. Il passaggio 8 non è richiesto poiché non è necessario collegare una connessione Internet, ma creare una rete autonoma.
3. Abilitazione delle interfacce
Entra in raspi-config
sudo raspi-config
Vai alle opzioni di interfaccia e abilita 1-wire, SPI e I2C e riavvia il Pi
3. Configurazione dei driver per il display
Inizializzazione del display
Modifica il file /etc/modules
sudo nano /etc/modules
Aggiungi le seguenti 2 righe
spi-bcm2835fbtft_device
Ora modifica /etc/modprobe.d/fbtft.conf
sudo nano /etc/modprobe.d/fbtft.conf
Aggiungi la seguente riga
opzioni fbtft_device name=tm022hdh26 gpios=reset:25, dc:24, led:18 ruotare=90 velocità=80000000 fps=60
Riavvia il Pi. Se vedi accendersi la retroilluminazione del display, tutto è andato bene. Questo inizializzerà il display ogni volta che il Pi si avvia, tuttavia ora visualizzerà solo una schermata nera. Per ottenere il contenuto del Pi sul display, dobbiamo copiare il contenuto della schermata principale sul piccolo LCD. Useremo un servizio chiamato 'fbcp' per questo.
Installazione del servizio fbcp
sudo apt-get install cmake
git clone
cd rpi-fbcp
build mkdir
creazione cd/
cmq..
fare
sudo install fbcp /usr/local/bin/fbcp
Ora abbiamo installato il servizio. Tuttavia, poiché stiamo utilizzando il Pi senza testa, non è disponibile alcuna schermata da cui copiare i contenuti. Per forzare il Pi a visualizzare il contenuto dello schermo, modifica /boot/config.txt
sudo nano /boot/config.txt
Trova e decommenta o aggiungi le seguenti righe a questo file:
hdmi_force_hotplug=1
hdmi_cvt=640 480 60 0 0 0 0
display_rotate=0
hdmi_group=2
hdmi_mode=87
Riavvia l'RPi e prova il servizio fbcp digitando fbcp nella console. Ora dovresti vedere il contenuto dello schermo sul display LCD.
Esecuzione di fbcp all'avvio
Modifica /etc/rc.local e aggiungi la seguente riga tra l'indirizzo IP e la riga di uscita
fbcp&
Ora il display dovrebbe accendersi ogni volta che l'RPi si avvia
Passaggio 3: banca dati
Per registrare e memorizzare i dati dei sensori ho progettato il mio database che contiene 4 tabelle. Il diagramma EER è mostrato nell'immagine sopra.
1. Dispositivi
Questa tabella contiene tutti i sensori. Descrive il nome del sensore, la descrizione e l'unità di misura. Questa tabella ha una relazione uno-a-molti con le azioni della tabella, poiché nel mio caso il sensore accelero può svolgere diverse attività.
2. Azioni
Questa tabella memorizza le azioni per diversi sensori. Un'azione è sempre collegata a un particolare sensore. Ad esempio: l'azione 'TEMP' è legata al dispositivo che misura la temperatura. Questo sarebbe il sensore di temperatura a 1 filo.
3. Storia
Questa tabella contiene tutti i log dei sensori. Ogni registro ha un ID azione, un valore, un timestamp e un rideid
4. Giostre
Questa tabella memorizza diverse giostre. Ogni volta che l'utente inizia una nuova corsa, viene effettuata una nuova voce in questa tabella
Per ottenere questo database sul tuo Raspberry Pi, vai al mio GitHub e clona/scarica il repository. Sotto il database troverai 2 file.sql. Esegui questi in PhpMyAdmin o MySQL workbench. Ora il database dovrebbe essere sul tuo RPi.
Passaggio 4: backend
Se non l'hai già fatto, vai al mio GitHub e clona/scarica il repository. Nella cartella Backend troverai il backend completo del progetto.
La cartella contiene le classi per la lettura dei sensori in /helpers, i file per comunicare con il database in /repositories e l'applicazione principale si trova nella radice con il nome app.py.
Installazione dei pacchetti Python
Prima di provare a eseguire qualsiasi cosa, dobbiamo prima installare alcuni pacchetti per Python. Entra nel terminale del tuo RPi e digita i seguenti comandi:
pip3 installa mysql-connector-python
pip3 install flask-socketio
pip3 install flask-cors
pip3 installa gevent
pip3 installa gevent-websocket
NOTA IMPORTANTE: se hai cambiato la tua password Mariadb/Mysql, cambia la password in config.py!
Prova il backend
Esegui app.py usando l'interprete python3 (/usr/bin/python3). Assicurati che non ci siano errori.
Esecuzione del backend all'avvio
Modifica motoDash_backend.service e cambia YOURFILEPATH nel percorso in cui è salvato il repository.
Ora copia questo file in /etc/systemd/system/
sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.
Ora il backend si avvierà automaticamente ogni volta che RPi si avvia.
Passaggio 5: frontend
Entra nel repository GitHub. Copia il contenuto della directory Frontend in /var/www/html.
Questo è tutto ciò che dovresti fare per far funzionare il frontend. Questa cartella contiene tutte le pagine web, gli stili e gli script per l'interfaccia web. Comunica anche con il backend. Per verificare se tutto funziona come dovrebbe, assicurati di essere connesso al tuo RPi e digita l'indirizzo IP di RPi in un browser. Dovresti vedere la homepage dell'interfaccia web.
Nota: il sito Web è reattivo, quindi puoi usarlo su dispositivi mobili e desktop
Passaggio 6: visualizzazione del dashboard sul display
Il frontend ha la sua pagina web nascosta utilizzata solo per il piccolo display. Faremo in modo che il Pi si avvii automaticamente su questo sito Web in modalità a schermo intero.
Assicurati che RPi sia impostato su desktop autologin in raspi-config sotto le opzioni di avvio
sudo raspi-config
Ora vai nella cartella di configurazione nascosta e crea un nuovo file lì dentro
cd.config
sudo mkdir -p lxsession/LXDE-pi
sudo nano lxsession/LXDE-pi/avvio automatico
Aggiungi le seguenti righe in questo file e salva
@xscreensaver -no-splash
@xset è spento
@xset -dpms
@xset s noblank
@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito
Ora il Pi dovrebbe avviarsi ogni volta su questa pagina web
Passaggio 7: saldatura dell'elettronica
Prendi la breakout board e disponi i tuoi componenti su di essa in modo strutturato. Non discuterò il layout di come ho saldato i componenti su di esso, poiché ho fatto un lavoro piuttosto scadente. Ho usato intestazioni pin separate sulla scheda in modo che dovessi solo collegare i sensori e i moduli al pin giusto. Assicurati di sapere quale pin è per cosa!
Alcuni suggerimenti durante la saldatura:
- Utilizzare cavi isolati quando si attraversano distanze maggiori. L'ultima cosa che vuoi sono i cortocircuiti nel tuo circuito
- Dopo aver saldato un componente o un filo, verificarne la continuità con un multimetro. Controllare regolarmente anche per cortocircuiti.
- Non usare troppa o troppo poca saldatura!
- Se non sai saldare, esercitati prima su un'altra scheda di prototipazione. Un tutorial sulla saldatura può essere trovato qui.
Ora saldare i fili abbastanza lunghi per i sensori e avvolgerli con un involucro termoretraibile per assicurarsi che tutto non sia cortocircuitato e pulito.
Al termine, ricontrolla eventuali cortocircuiti o collegamenti difettosi e controlla ogni collegamento con lo schema elettrico se è il collegamento corretto. Una volta che sei certo che tutto è stato fatto correttamente, vai avanti e metti la breakout board sull'RPi, avvitala saldamente con alcune viti da 2,5 mm e distanziali. Collega i sensori ai pin giusti e provali tutti usando il sito web.
Passaggio 8: alimentazione
Per alimentare il Raspberry Pi utilizzeremo un adattatore USB 12V-5V. Questo adattatore sarà collegato alla batteria della moto. Per assicurarci che l'RPi si accenda quando l'interruttore di accensione è acceso, utilizzeremo un relè. Il relè chiuderà il circuito di alimentazione RPi quando rileva una tensione dal fanale posteriore (il fanale posteriore si accende sempre quando si accende l'accensione).
Per un tutorial più dettagliato su questo, controlla questa pagina: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controllori.16921/
Passaggio 9: alloggio
Alloggiamento display
Per il display, prenditi una scatola di plastica dura delle dimensioni del display. Taglia un foro quadrato grande quanto il display e abbina i fori per avvitare il display. Nella parte anteriore devi praticare altri 2 fori per il LED RGB e l'LDR.
Ho montato questa scatola sopra un supporto per smartphone usando un bullone.
Termometro
Per alloggiare il sensore di temperatura, ho stampato in 3D un indicatore dell'olio che si adatta alla mia moto.
Lampone Pi
Montare il Raspberry Pi stesso in un luogo sicuro all'interno della moto, l'ho posizionato sotto uno dei parafanghi usando delle cinghie in velcro. E lo ha protetto dagli elementi usando un alloggiamento e un po' di plastica.
Accelerometro
Montare l'accelerometro in un luogo sicuro, preferibilmente sul telaio della moto stessa.
Nota:
Non è necessario che tu abbia lo stesso identico alloggiamento che avevo io, sei libero di finirlo come preferisci. Assicurati solo che i componenti elettronici siano protetti da pioggia e polvere.
Consigliato:
CREA IL TUO CRUSCOTTO DIGITALE BASATO SU GPS PER EBIKE O MOTO ELETTRICA: 13 Passi
CREA IL TUO CRUSCOTTO DIGITALE BASATO SU GPS PER EBIKE O MOTO ELETTRICA: CIAO A TUTTI Questa volta ho inventato un nuovo istruibile con display autonomo e logger utilizzando arduino mega 2560 e display LCD NextionE per il monitoraggio puoi anche registrare le frasi NMEA del Gps in sdcard e ovviamente progetto
XiaoMi Vacuum + Amazon Button = Pulizia del cruscotto: 5 passaggi (con immagini)
XiaoMi Vacuum + Amazon Button = Pulizia del cruscotto: questa istruzione spiegherà come utilizzare i tuoi Amazon Dash Button di riserva per controllare XiaoMi Vacuum. Ho avuto un sacco di Amazon Buttons in giro da quando erano $ 1 e non li ho usati. Ma alla ricezione di un nuovo Robot Aspirapolvere decido
Cruscotto per bicicletta elettrica (EBike) e monitor della batteria: 12 passaggi (con immagini)
Cruscotto e monitor della batteria della bicicletta elettrica (EBike): questo progetto è un circuito Arduino che monitora la tensione e la corrente della batteria con un modulo ACS 712. Le misurazioni vengono comunicate tramite Bluetooth con un modulo HC-05 a un dispositivo Android. Fondamentalmente si ricabla la connessione negativa tra y
Ripara il jack Aux della radio / Aggiungi il ricevitore Bluetooth multimediale dietro il cruscotto: 6 passaggi (con immagini)
Ripara il jack Aux della radio / Aggiungi il ricevitore Bluetooth multimediale dietro Dash: Recentemente ho notato che il mio jack Aux Silverado 2013 era allentato. Non è stata una sorpresa dato che lo uso spesso e lascio semplicemente il cavo aux appeso al jack. Per ripararlo, avevo solo bisogno di togliere alcuni pannelli dal cruscotto, rimuoverlo e prendere apa
Supporto per fotocamera da cruscotto per auto: 9 passaggi (con immagini)
Supporto per fotocamera da cruscotto per auto: un modo economico (ECONOMICO) ed efficiente (FUNZIONANTE) di montare una videocamera sul cruscotto della mia auto a scopo di registrazione. PER REGISTRARMI! Ho provato treppiedi per gorilla, mini treppiedi. Il mio amico mi ha suggerito un pouf ( che non siamo riusciti a trovare da nessuna parte) ma….T