Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Jeg er student ved Howest Kortrijk. For å vise våre ferdigheter til lektorene vi trengte for å bygge et prosjekt, valgte jeg å lage et kilometerteller og speedometer for skateboardet mitt med en RFID -skanner. I denne instruktive jeg er igig å si hvordan jeg gjorde dette prosjektet.
Jeg kom på denne ideen fordi jeg liker å skate og cruise rundt. Mens jeg cruiser ville det være praktisk å se hvor lang distanse jeg har tilbakelagt og se farten min.
Husk at dette er en prototype.
Trinn 1: Komponenter
Komponenter
Jeg brukte følgende komponenter for å lage dette prosjektet:
- Rullebrett
- Potensiometer
- LCD
- Hall effekt sensor
- 10k Ohm motstand
- Bringebær pi
- Arduino Nano
- Jumper wire (Kvinne til mann)
- Jumper wire (Raspberry Pi)
- Jumper wire (mann til mann)
- PCB
- RFID -skanner
- RFID -merke
- Powerbank
Se BillOfMaterials for lenker og pris
Trinn 2: Kabling
Hallen har 3 pinner: en VCC, en GND og en utgang. Bakken går til en GND. VCC til 3.3V og utgangen i dette eksemplet går til GPIO 26. En 10K Ohm motstand trekker utgangen høyt.
Jeg bruker seriekommunikasjon via USB mellom bringebær pi og arduino nano for å lese merkene. Dette er ikke på bildet, men er påkrevd!
D9 RST (Tilbakestill) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND3.3V 3.3V
Trinn 3: Databaseopplegg
Min database har 3 tabeller:
- Brukere
- Økt
- Data
Hver bruker kan spore data hver for seg. En økt har data, slik at du vet hvor fort du gikk på bestemte punkter mens økten pågikk.
Trinn 4: Konfigurer Arduino Nano
Sett først din arduino nano i PCen via usb -kabelen. Velg riktig arduino og riktig usb -port for å laste opp.
Deretter må vi legge til biblioteket jeg bruker for å lese RFID -merket. Last ned 'rfid-master' og gå til skisse, inkluder bibliotek og legg deretter til. ZIP-bibliotek. Gå til zip -filen du nettopp lastet ned, og bruk denne, den installeres automatisk. Etter den nedlastingen min redigerte 'RFID_Read.ino' trykk ctrl + O legg til samme tid og gå til denne filen og åpne den.
Hvis du gjorde alle disse trinnene ovenfor, kan du bekrefte filen. Hvis det feiler første gang, er det bare å prøve det en gang til. Hvis dette lykkes, kan du laste det opp til arduinoen din. Ved å bruke snarveien ctrl+shift+m kan du åpne den serielle skjermen. Du kan teste filen her. Hvis testen lykkes, kan du koble fra arduino og koble den til en usb -port på bringebær pi
Trinn 5: Konfigurer Raspberry Pi
I disse trinnene skal vi sette opp bringebær pi som database og webserver.
I DETTE EKSEMPELET BRUKER JEG BRUKEREN "meg" HVIS DU BRUKER EN ANNEN BRUKER DU MÅ ENDRE KONFIGURERE FILER, BEHOLD DETTE I SINN!
1. Opprett en bruker:
Lag en variabel
pieter@rpipieter: ~ $ bruker = meg
Gjør brukeren sudo og legger til i alle grupper
grupper = $ (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}
Logg inn på kontoen
pieter@rpipieter: ~ $ su - me
Passord: meg@my-rpi: ~ $
2. Koble til WiFi
me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Password' | wpa_passphrase 'Nettverksnavn' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 omkonfigurer root@rpipieter: ~# logout
Sjekk om internett fungerer
root@rpipieter: ~# wget google.com
3. Gjør bringebær-pi oppdatert og installer nødvendige pakker
meg@my-rpi: ~ $ sudo apt oppdatering
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 start på nytt -h nå
4. Klon mitt github -depot
meg@rpipieter: ~ $ git klon
me@rpipieter: ~ $ cd skate-o-meter/skateometer/
5. Å lage det virtuelle miljøet
Mens du utfører disse kommandoene, blir det installert mange pakker, dette kan ta litt tid.
me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m pip install-oppgrader pip setuptools hjul 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- kontakt-python argon2-cffi Kolbe-kolbe-HTTPAuth-kolbe-MySQL mysql-kontakt-python passlib pyserial pyjwt RPi. GPIO
6. Opprette databasen og brukere
Vi bruker mysql -databasen
pieter@rpipieter: ~/skate-o-meter/skateometer $ cd
pieter@rpipieter: ~ $ sudo mysql
Kopier deretter, lim inn denne
GRANT SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data'@'localhost'; SET PASSORD FOR 'som-data'@'localhost' = PASSORD ('sensor9810'); velg * fra mysql.user; OPPRETT BRUKER 'som-admin'@'localhost' IDENTIFISERT AV 'admin9810'; OPPRETT BRUKER 'som-web'@'localhost' IDENTIFISERT AV 'web9810'; OPPRETT BRUKER 'som-sensor'@'localhost' IDENTIFISERT AV 'sensor9810'; LAG DATABASE skateometerdb; TILDELE ALLE PRIVILEGER PÅ skateometerdb.* Til 'som-admin'@'localhost' MED TILBUDSALTERNATIV; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-sensor'@'localhost'; FLUSH -PRIVILEGER;
Deretter skal vi legge til det eksisterende databaseskemaet med relasjoner.
me@rpipieter: ~/skate-o-meter/skateometer $ sudo mysql <sql/skateometerdb_dump-withoutdata.sql
7. Tjenester
Her kopierer vi konfigurasjonsfilene våre og laster inn mappen på nytt slik at vi kan aktivere tjenestene
me@rpipieter: ~/skate-o-meter/skateometer $ sudo cp conf/som-*. service/etc/systemd/systemme@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl daemon-reload
Nå skal vi aktivere tjenestene slik at hver gang vi starter bringebær pi starter disse automatisk med det.
me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl aktivere som-flask.service
Opprettet 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 Opprettet symlink /etc/systemd/system/multi-user.target.wants/som-data.service →/etc/systemd/ system/som-data.service. me@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 -aktivert/standard 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 start nginx.service på nytt
Trinn 6: Boliger + Hall
Boliger
Først laget jeg et hull i skateboardet mitt for LCD -skjermen, potensiometeret og summeren. Etter det loddet jeg LCD -skjermen, potensiometeret og summeren på kretskortet. Deretter brukte jeg en jumperwire for RPI, den med 40 pinner. Jeg legger den ene siden i bringebærpi og den andre halvdelen kutter jeg, denne siden skal vi bruke til å lodde. I filen 'rpi-cable' kan du se hvor du må lodde hvilken ledning.
Til foringsrøret brukte jeg en gammel kurveboks, jeg satte noen hull i den for en ethernetkabel og for at jumperwiren skulle komme i esken.
Jeg holder boksen under skateboardet med en skrue. Inne i esken ordnet jeg alt, så det passet og brukte også skruer og litt gummi for å holde alt på plass. Dette gjør det lettere å ta ut ting.
RFID -en er montert på lyset på esken og holdes på plass med glidelås, et problem jeg støtte på var at den noen ganger ikke skannet, men med noen endringer fikk jeg den til å fungere.
Hall effekt sensor
Først boret jeg et hull i hjulet mitt og satte en magnet i det.
For hallen brukes 3 jumperwires (mann til mann) jeg loddet dem på PCB -en min også på selve hallen. Jeg monterte hallsensoren på lastebilen min med noen glidelås. Sørg for at magneten og sensoren er godt justert, ellers registrerer det ikke alltid pulsen.
Trinn 7: Start appen
Trinn 1:
Koble bringebæret og strømbanken til.
Steg 2:
Vent til programmet starter, du kan følge dette på LCD -skjermen. Du vil se IP-adressen, gå til denne IP-adressen.
Trinn 3:
Opprett en bruker, du kan gjøre det ved å registrere deg. Du må skanne merket for å se UID for merket på LCD -skjermen.
Trinn 4:
Hvis du opprettet en bruker, kan du skanne merket ditt, og en økt starter.
Trinn 5:
Dra cruise rundt
Trinn 6:
Skann merket igjen for å stoppe økten
Trinn 7:
Logg inn for å se økten din og detaljerte data fra økten