Sommario:

Skate-o-Meter: 7 passi (con immagini)
Skate-o-Meter: 7 passi (con immagini)

Video: Skate-o-Meter: 7 passi (con immagini)

Video: Skate-o-Meter: 7 passi (con immagini)
Video: World’s HOTTEST Skateboard EVER!! 2024, Dicembre
Anonim
Skate-o-Meter
Skate-o-Meter

Sono uno studente alla Howest Kortrijk. Per mostrare le nostre abilità ai lettori di cui avevamo bisogno per costruire un progetto, ho scelto di creare un contachilometri e un tachimetro per il mio skateboard con uno scanner RFID. In questo tutorial sto per dire come ho realizzato questo progetto.

Mi è venuta questa idea perché mi piace pattinare e andare in giro. Mentre sto navigando sarebbe utile vedere quanta distanza ho percorso e vedere la mia velocità.

Tieni presente che questo è un prototipo.

Passaggio 1: componenti

Componenti

Ho utilizzato i seguenti componenti per creare questo progetto:

  • Skateboard
  • Potenziometro
  • LCD
  • Sensore ad effetto Hall
  • Resistenza da 10k Ohm
  • lampone pi
  • Arduino Nano
  • Cavo del ponticello (da femmina a maschio)
  • Cavo del ponticello (Raspberry Pi)
  • Cavo del ponticello (maschio a maschio)
  • PCB
  • scanner RFID
  • Badge RFID
  • Accumulatore di energia

Vedi BillOfMaterials per link e prezzo

Passaggio 2: cablaggio

Cablaggio
Cablaggio

La sala ha 3 pin: un VCC, un GND e un'uscita. La massa va a GND. Il VCC a 3,3 V e l'uscita in questo esempio va a GPIO 26. Un resistore da 10 K Ohm porta l'uscita in alto.

Uso la comunicazione seriale tramite USB tra raspberry pi e arduino nano per leggere i badge. Questo non è nella foto, ma è obbligatorio!

D9 RST (Reset)D10 SDA(SS) (SPI SS)D11 MOSI (SPI MOSI)D12 MISO (SPI MISO)D13 SCK (SPI SCK)GND GND3,3V 3,3V

Passaggio 3: schema di database

Schema database
Schema database

Il mio database ha 3 tabelle:

  • Utenti
  • Sessione
  • Dati

Ogni utente può tenere traccia dei dati separatamente. Una sessione ha dati in modo da sapere quanto velocemente sei andato su determinati punti mentre la sessione era in corso.

Passaggio 4: configura Arduino Nano

Configura Arduino Nano
Configura Arduino Nano
Configura Arduino Nano
Configura Arduino Nano
Configura Arduino Nano
Configura Arduino Nano

Per prima cosa inserisci il tuo arduino nano nel tuo PC tramite il cavo USB. Seleziona l'arduino giusto e la porta USB giusta da caricare.

Quindi dobbiamo aggiungere la libreria che uso per leggere il badge RFID. Scarica 'rfid-master' e vai a sketch, includi la libreria e poi aggiungi la libreria. ZIP. Vai allo zip che hai appena scaricato e usa questo, si installerà automaticamente. Dopo aver scaricato il mio "RFID_Read.ino" modificato, premi ctrl + O aggiungi allo stesso tempo e vai a questo file e aprilo.

Se hai eseguito tutti questi passaggi sopra, puoi verificare il file. Se si verifica la prima volta, provalo ancora una volta. Se ha successo, puoi caricarlo sul tuo arduino. Usando la scorciatoia ctrl+shift+m puoi aprire il monitor seriale. Puoi testare il file qui. Se il test ha esito positivo puoi scollegare l'arduino e collegarlo a una porta USB del raspberry pi

Passaggio 5: configurare il Raspberry Pi

In questi passaggi configureremo il raspberry pi come database e server web.

IN QUESTO ESEMPIO UTILIZZO L'UTENTE 'me' SE UTILIZZATE UN ALTRO UTENTE DOVETE CAMBIARE I FILE DI CONFIGURAZIONE, TENETELO A MENTE!

1. Crea un utente:

Crea una variabile

pieter@rppieter:~ $ utente=me

Rendere l'utente sudo e aggiungere a tutti i gruppi

groups=$(id pi -Gn | sed 's/^pi //g' | sed 's/ /, /g')sudo useradd ${user} -s /bin/bash -m -G ${groups} sudo sed "s/^pi/${utente}/" /etc/sudoers.d/010_pi-nopasswd | sudo tee "/etc/sudoers.d/011_${user}-nopasswd" sudo passwd ${user}

Accedi all'account

pieter@rppieter:~ $ su - me

Password: me@mio-rpi:~$

2. Connettiti con il WiFi

me@rpipieter:~ $ sudo -iroot@rpipieter:~# echo 'Password' | wpa_passphrase 'Networkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter:~# wpa_cli -i wlan0 reconfigure root@rpipieter:~# logout

Controlla se Internet funziona

root@rpipeter:~# wget google.com

3. Aggiornare il raspberry pi e installare i pacchetti necessari

me@my-rpi:~$ sudo apt update

me@my-rpi:~$ sudo apt upgrade me@rpipieter:~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme@my-rpi:~$ sudo riavvia -h ora

4. Clona il mio repository github

me@rpipeter:~ $ git clone

me@rpipeter:~ $ cd skate-o-meter/skateometer/

5. Rendere l'ambiente virtuale

Durante l'esecuzione di questi comandi verranno installati molti pacchetti, ciò potrebbe richiedere del tempo.

me@rpipeter:~/skate-o-meter/skateometer $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me@rpipeter:~/skate-o-meter/skateometer $ python3 -m venv --system-site-packages env (env) me@rpipieter:~/skate-o-meter/skateometer $ python -m pip install mysql- connettore-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib pyserial pyjwt RPi. GPIO

6. Creazione del database e degli utenti

Stiamo usando il database mysql

pieter@rpipeter:~/skate-o-meter/skateometer $ cd

pieter@rpipeter:~ $ sudo mysql

Quindi copia, incolla questo

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'som-data'@'localhost';SET PASSWORD FOR 'som-data'@'localhost' = PASSWORD('sensor9810'); selezionare * da mysql.user; CREA UTENTE 'som-admin'@'localhost' IDENTIFICATO DA 'admin9810'; CREA UTENTE 'som-web'@'localhost' IDENTIFICATO DA 'web9810'; CREA UTENTE 'som-sensor'@'localhost' IDENTIFICATO DA 'sensor9810'; CREA DATABASE skateometerdb; CONCEDERE TUTTI I PRIVILEGI SU skateometerdb.* a 'som-admin'@'localhost' CON L'OPZIONE DI CONCESSIONE; CONCEDERE SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-sensor'@'localhost'; PRIVILEGI DI SCARICO;

Successivamente andremo ad aggiungere lo schema del database esistente con le relazioni.

me@rpipeter:~/skate-o-meter/skateometer $ sudo mysql < sql/skateometerdb_dump- Withoutdata.sql

7. Servizi

Qui copiamo i nostri file di configurazione e ricarichiamo la cartella in modo da poter abilitare i servizi

me@rpipieter:~/skate-o-meter/skateometer $ sudo cp conf/som-*.service /etc/systemd/systemme@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl daemon-reload

Ora abiliteremo i servizi in modo che ogni volta che avvieremo il raspberry pi, questi si avvieranno automaticamente con esso.

me@rpipeter:~/skate-o-meter/skateometer $ sudo systemctl enable som-flask.service

Collegamento simbolico creato /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service. me@rpipeter:~/skate-o-meter/skateometer $ sudo systemctl enable som-data.service Collegamento simbolico creato /etc/systemd/system/multi-user.target.wants/som-data.service → /etc/systemd/ system/som-data.service. me@rpipeter:~/skate-o-meter/skateometer $ sudo systemctl start som-data.service me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl start som-flask.service

8. NGINX

me@rpipeter:~/skate-o-meter/skateometer $ sudo cp conf/nginx /etc/nginx/sites-available/skateometerme@rpipeter:~/skate-o-meter/skateometer $ sudo rm /etc/nginx/sites -enabled/default me@rpipieter:~/skate-o-meter/skateometer $ sudo ln -s /etc/nginx/sites-available/skateometer /etc/nginx/sites-enabled/skateometerme@rpipieter:~/skate-o -meter/skateometer $ sudo systemctl restart nginx.service

Fase 6: Abitazione + Sala

Abitazione + Sala
Abitazione + Sala

alloggiamento

Per prima cosa ho fatto un buco nel mio skateboard per l'LCD, il potenziometro e il cicalino. Successivamente ho saldato l'LCD, il potenziometro e il cicalino sul PCB. Poi ho usato un jumperwire per l'RPI, quello con 40 pin. Ho messo un lato nel lampone pi e l'altra metà l'ho tagliata, questo lato lo useremo per saldare. Nel file 'rpi-cable' puoi vedere dove devi saldare quale filo.

Per l'involucro ho usato una vecchia scatola curver, ci ho fatto dei buchi per un cavo ethernet e per far entrare il jumperwire nella scatola.

Tengo la scatola sotto lo skateboard con delle viti. All'interno della scatola ho sistemato tutto, in modo che si adattasse e ho anche usato delle viti e delle gomme per tenere tutto a posto. Questo rende più facile estrarre le cose.

L'RFID è montato sull'illuminazione della scatola ed è tenuto in posizione con delle cerniere, un problema che ho riscontrato è stato che a volte non scansionava, ma con alcune modifiche l'ho fatto funzionare.

Sensore ad effetto Hall

Per prima cosa ho praticato un foro nella ruota e ci ho messo un magnete.

Per la sala vengono utilizzati 3 jumperwire (maschio a maschio) li ho saldati sul mio PCB anche sulla sala stessa. Ho montato il sensore di hall sul mio camion con alcuni pneumatici. Assicurati che il magnete e il sensore siano ben allineati, altrimenti non registrerà sempre l'impulso.

Passaggio 7: avvio dell'app

Passo 1:

Collega il lampone e il power bank.

Passo 2:

Attendi fino all'avvio del programma, puoi seguirlo sul display LCD. Vedrai l'indirizzo IP, vai a questo indirizzo IP.

Passaggio 3:

Crea un utente, puoi farlo registrandoti. Devi scansionare il badge per vedere il tuo UID del badge sul display LCD.

Passaggio 4:

Se hai creato un utente puoi scansionare il tuo badge e inizierà una sessione.

Passaggio 5:

Fai una crociera in giro

Passaggio 6:

Scansiona di nuovo il badge per interrompere la sessione

Passaggio 7:

Accedi per vedere la tua sessione e i dati dettagliati della sessione

Consigliato: