Inhoudsopgave:

Skate-o-Meter: 7 stappen (met afbeeldingen)
Skate-o-Meter: 7 stappen (met afbeeldingen)

Video: Skate-o-Meter: 7 stappen (met afbeeldingen)

Video: Skate-o-Meter: 7 stappen (met afbeeldingen)
Video: Dit ging niet zoals ik had verwacht..😳 2024, Juli-
Anonim
Skate-o-meter
Skate-o-meter

Ik ben student aan Howest Kortrijk. Om onze vaardigheden te laten zien aan de lectoren die we nodig hadden om een project te bouwen, heb ik ervoor gekozen om een kilometerteller en snelheidsmeter voor mijn skateboard te maken met een RFID-scanner. In deze instructable ga ik zeggen hoe ik dit project heb gemaakt.

Ik kwam op dit idee omdat ik van skaten en cruisen hou. Tijdens het cruisen zou het handig zijn om te zien hoeveel afstand ik heb afgelegd en mijn snelheid te zien.

Houd er rekening mee dat dit een prototype is.

Stap 1: Componenten

Componenten

Ik heb de volgende componenten gebruikt om dit project te maken:

  • Skateboard
  • Potentiometer
  • LCD
  • Hall-effectsensor
  • 10k Ohm Weerstand
  • Frambozenpi
  • Arduino Nano
  • Doorverbindingsdraad (vrouw naar man)
  • Doorverbindingsdraad (Raspberry Pi)
  • Doorverbindingsdraad (man naar man)
  • PCB
  • RFID-scanner
  • RFID-badge
  • Powerbank

Zie BillOfMaterials voor links en prijs

Stap 2: Bedrading

Bedrading
Bedrading

De hal heeft 3 pinnen: een VCC, een GND en een uitgang. De aarde gaat naar een GND. De VCC naar 3,3V en de output in dit voorbeeld gaat naar GPIO 26. Een weerstand van 10K Ohm trekt de output hoog.

Ik gebruik seriële communicatie via de USB tussen de Raspberry Pi en Arduino Nano om de badges te lezen. Deze staat niet op de foto, maar is wel verplicht!

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

Stap 3: Databaseschema

Databaseschema
Databaseschema

Mijn database heeft 3 tabellen:

  • Gebruikers
  • Sessie
  • Gegevens

Elke gebruiker kan gegevens afzonderlijk volgen. Een sessie heeft gegevens zodat je weet hoe snel je op bepaalde punten ging terwijl de sessie bezig was.

Stap 4: Configureer Arduino Nano

Arduino Nano configureren
Arduino Nano configureren
Arduino Nano configureren
Arduino Nano configureren
Arduino Nano configureren
Arduino Nano configureren

Steek eerst je arduino nano in je pc via de usb-kabel. Selecteer de juiste arduino en de juiste usb-poort om te uploaden.

Vervolgens moeten we de bibliotheek toevoegen die ik gebruik voor het lezen van de RFID-badge. Download 'rfid-master' en ga naar schets, voeg bibliotheek toe en voeg vervolgens. ZIP-bibliotheek toe. Ga naar de zip die je zojuist hebt gedownload en gebruik deze, deze wordt automatisch geïnstalleerd. Download daarna mijn bewerkte 'RFID_Read.ino' druk op ctrl + O voeg dezelfde tijd toe en ga naar dit bestand en open het.

Als je al deze stappen hierboven hebt uitgevoerd, kun je het bestand verifiëren. Als het de eerste keer fout gaat, probeer het dan gewoon nog een keer. Als dit lukt, kun je het uploaden naar je arduino. Door de sneltoets ctrl+shift+m te gebruiken kunt u de seriële monitor openen. U kunt het bestand hier testen. Als de test slaagt, kun je de arduino loskoppelen en in een usb-poort van de raspberry pi. steken

Stap 5: Configureer de Raspberry Pi

In deze stappen gaan we de raspberry pi instellen als database en webserver.

IN DIT VOORBEELD GEBRUIK IK DE GEBRUIKER 'ik' ALS U EEN ANDERE GEBRUIKER GEBRUIKT DIENT U DE CONFIG-BESTANDEN TE WIJZIGEN, HOUD DIT IN DENKEN!

1. Maak een gebruiker aan:

Een variabele maken

pieter@rpipieter:~ $ gebruiker=mij

De gebruiker sudo maken en toevoegen aan alle groepen

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

Log in op het account

pieter@rpipieter:~ $ su - me

Wachtwoord: ik@mijn-rpi:~$

2. Maak verbinding met wifi

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

Controleer of het internet werkt

root@rpipieter:~# wget google.com

3. De raspberry pi up-to-date maken en de benodigde pakketten installeren

mij@mijn-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 herstart -h nu

4. Kloon mijn github-repository

ik@rpipieter:~ $ git-kloon

ik@rpipieter:~ $ cd skate-o-meter/skateometer/

5. De virtuele omgeving maken

Tijdens het uitvoeren van deze commando's zullen er veel pakketten worden geïnstalleerd, dit kan enige tijd duren.

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

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

6. Aanmaken van de database en gebruikers

We gebruiken een mysql-database

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

pieter@rpipieter:~ $ sudo mysql

Kopieer, plak dit dan

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'som-data'@'localhost';STEL WACHTWOORD IN VOOR 'som-data'@'localhost' = PASSWORD('sensor9810'); selecteer * van mysql.user; MAAK GEBRUIKER 'som-admin'@'localhost' GEDENTIFICEERD DOOR 'admin9810'; MAAK GEBRUIKER 'som-web'@'localhost' GEDENTIFICEERD DOOR 'web9810'; MAAK GEBRUIKER 'som-sensor'@'localhost' GEDENTIFICEERD DOOR 'sensor9810'; MAAK DATABASE skateometerdb; VERLENEN ALLE VOORRECHTEN OP skateometerdb.* aan 'som-admin'@'localhost' MET SUBSIDIEOPTIE; VERLENEN SELECTEREN, INVOEREN, BIJWERKEN, VERWIJDEREN OP skateometerdb.* AAN 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE OP skateometerdb.* AAN 'som-sensor'@'localhost'; SPOEL VOORRECHTEN;

Vervolgens gaan we het bestaande databaseschema met relaties toevoegen.

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

7. Diensten

Hier kopiëren we onze configuratiebestanden en laden de map opnieuw zodat we de services kunnen inschakelen

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

Nu gaan we de services inschakelen, zodat elke keer dat we de raspberry pi starten, deze er automatisch mee opstarten.

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

Gemaakt symlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service. me@rpipieter:~/skate-o-meter/skateometer $ sudo systemctl enable som-data.service Gemaakt symlink /etc/systemd/system/multi-user.target.wants/som-data.service → /etc/systemd/ system/som-data.service. ik@rpipieter:~/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@rpipieter:~/skate-o-meter/skateometer $ sudo cp conf/nginx /etc/nginx/sites-available/skateometerme@rpipieter:~/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 herstart nginx.service

Stap 6: Huisvesting + Hal

Behuizing + hal
Behuizing + hal

huisvesting

Eerst maakte ik een gat in mijn skateboard voor de LCD, de potmeter en de zoemer. Daarna heb ik het LCD, de potentiometer en de zoemer op de print gesoldeerd. Toen gebruikte ik een jumperwire voor de RPI, die met 40 pinnen. Ik stop de ene kant in de Raspberry Pi en de andere helft snij ik, deze kant gaan we gebruiken om te solderen. In het bestand 'rpi-kabel' kun je zien waar je welke draad moet solderen.

Voor de behuizing heb ik een oude curverdoos gebruikt, ik heb er gaten in gemaakt voor een ethernetkabel en voor de jumperdraad die in de doos moet komen.

Ik houd de doos onder het skateboard met een schroef. In de doos heb ik alles zo gerangschikt dat het zou passen en ook schroeven en wat rubbers gebruikt om alles op zijn plaats te houden. Dit maakt het makkelijker om spullen eruit te halen.

De RFID is gemonteerd op de verlichte doos en wordt op zijn plaats gehouden met ritsbanden, een probleem dat ik tegenkwam was dat het soms niet scande, maar met enkele wijzigingen zorgde ik ervoor dat het werkte.

Hall-effectsensor

Ik heb eerst een gat in mijn wiel geboord en er een magneet in gedaan.

Voor de hal zijn 3 jumperwires gebruikt (male naar male) die heb ik zowel op mijn PCB als op de hal zelf gesoldeerd. Ik heb de hall-sensor op mijn vrachtwagen gemonteerd met wat ritsbanden. Zorg ervoor dat de magneet en sensor goed zijn uitgelijnd, anders zal deze de puls niet altijd registreren.

Stap 7: De app starten

Stap 1:

Sluit de framboos en powerbank aan.

Stap 2:

Wacht tot het programma start, dit kun je volgen op het LCD-scherm. U ziet het IP-adres, ga naar dit IP-adres.

Stap 3:

Maak een gebruiker aan, dit kan door je te registreren. U moet de badge scannen om uw UID van de badge op het LCD-scherm te zien.

Stap 4:

Als u een gebruiker heeft aangemaakt, kunt u uw badge scannen en wordt er een sessie gestart.

Stap 5:

Ga rond cruisen

Stap 6:

Scan de badge opnieuw om de sessie te stoppen

Stap 7:

Log in om uw sessie en gedetailleerde gegevens van de sessie te zien

Aanbevolen: