Sommario:
- Passaggio 1: componenti
- Passaggio 2: cablaggio
- Passaggio 3: schema di database
- Passaggio 4: configura Arduino Nano
- Passaggio 5: configurare il Raspberry Pi
- Fase 6: Abitazione + Sala
- alloggiamento
- Sensore ad effetto Hall
- Passaggio 7: avvio dell'app
Video: Skate-o-Meter: 7 passi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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
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
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
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:
Orologio di posizione "Weasley" con 4 lancette: 11 passi (con immagini)
Orologio di posizione "Weasley" a 4 lancette: quindi, con un Raspberry Pi che funzionava da un po', volevo trovare un bel progetto che mi permettesse di sfruttarlo al meglio. Mi sono imbattuto in questo fantastico Instructable Build Your Own Weasley Location Clock di ppeters0502 e ho pensato che
Orologio meccanico con display a sette segmenti: 7 passi (con immagini)
Orologio meccanico con display a sette segmenti: un paio di mesi fa ho costruito un display meccanico a 7 segmenti a due cifre che ho trasformato in un timer per il conto alla rovescia. È uscito abbastanza bene e un certo numero di persone ha suggerito di raddoppiare il display per creare un orologio. Il problema era che ero già scappato
Chasis De Robot Con Orugas Impresas En 3D: 7 Passi (con Immagini)
Chasis De Robot Con Orugas Impresas En 3D: 3D Printed Robot Tank Chasis. (Puoi trovare le istruzioni in inglese sotto) Ancora un lavoro in corso, unisciti alla discussione un robot tanque (por las orugas, no tiene armas). De diseño
Orologio con ingranaggio planetario: 6 passi (con immagini)
Orologio con ingranaggio planetario: (vecchi) meccanismi meccanici sono incredibilmente interessanti e piacevoli da guardare, ma sfortunatamente sono quasi impossibili da costruire da soli. Anche gli orologi meccanici mancano della disattenzione della precisa tecnologia digitale disponibile oggi. Questo Instructabl
Péndulo Inteligente De Newton Con Electricidad (Pendolo di Newton con elettricità): 17 passi (con immagini)
Péndulo Inteligente De Newton Con Electricidad (Newton´s Pendulum With Electricity): Este proyecto lo hice con un fin educativo, ya que resulta curioso e hipnotizante la manera en que fluye la electricidad por medio de los bombillos. Pienso que es una buena Herramienta para enseñar a las personas el principio del Péndu