INHOUDSOPGAWE:

Skate-o-Meter: 7 stappe (met foto's)
Skate-o-Meter: 7 stappe (met foto's)

Video: Skate-o-Meter: 7 stappe (met foto's)

Video: Skate-o-Meter: 7 stappe (met foto's)
Video: Dit ging niet zoals ik had verwacht..😳 2024, Julie
Anonim
Skate-o-Meter
Skate-o-Meter

Ek is 'n student aan Howest Kortrijk. Om ons vaardighede te wys aan die lektore wat ons nodig gehad het om 'n projek te bou, het ek gekies om 'n kilometerteller en snelheidsmeter vir my skaatsplank te maak met 'n RFID -skandeerder. In hierdie instruksies wil ek sê hoe ek hierdie projek gemaak het.

Ek het hierdie idee gekry omdat ek daarvan hou om te skate en rond te vaar. Terwyl ek vaar, sal dit handig wees om te sien hoeveel ek afgelê het en my spoed sien.

Hou in gedagte dat dit 'n prototipe is.

Stap 1: Komponente

Komponente

Ek het die volgende komponente gebruik om hierdie projek te skep:

  • Skaatsplank
  • Potensiometer
  • LCD
  • Hall effek sensor
  • Weerstand van 10k Ohm
  • Framboos pi
  • Arduino Nano
  • Jumperdraad (vroulik tot manlik)
  • Jumperdraad (Framboos Pi)
  • Jumperdraad (manlik tot manlik)
  • PCB
  • RFID skandeerder
  • RFID -kenteken
  • Krag bank

Sien BillOfMaterials vir skakels en prys

Stap 2: Bedrading

Bedrading
Bedrading

Die saal het 3 penne: 'n VCC, 'n GND en 'n output. The grond gaan na 'n GND. Die VCC tot 3.3V en die uitset in hierdie voorbeeld gaan na GPIO 26. 'n Weerstand van 10K Ohm trek die uitset hoog.

Ek gebruik seriële kommunikasie via die USB tussen die framboospi en arduino nano om die kentekens te lees. Dit is nie op die foto nie, maar dit is nodig!

D9 RST (Herstel) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND3.3V 3.3V

Stap 3: Databasiskema

Databasiskema
Databasiskema

My databasis het 3 tabelle:

  • Gebruikers
  • Sessie
  • Data

Elke gebruiker kan data afsonderlik opspoor. 'N Sessie bevat data, sodat u weet hoe vinnig u op sekere punte gegaan het terwyl die sessie aan die gang was.

Stap 4: Stel Arduino Nano op

Stel Arduino Nano op
Stel Arduino Nano op
Stel Arduino Nano op
Stel Arduino Nano op
Stel Arduino Nano op
Stel Arduino Nano op

Plaas eers u arduino nano via u usb -kabel in u rekenaar. Kies die regte arduino en die regte usb -poort om op te laai.

Vervolgens moet ons die biblioteek byvoeg wat ek gebruik om die RFID -kenteken te lees. Laai 'rfid-master' af en gaan na skets, sluit biblioteek in en voeg dan. ZIP-biblioteek by. Gaan na die zip wat u pas afgelaai het en gebruik hierdie een, dit word outomaties geïnstalleer. Na die aflaai van my geredigeerde 'RFID_Read.ino', druk ctrl + O, voeg dieselfde tyd by en gaan na hierdie lêer en maak dit oop.

As u al die bogenoemde stappe gedoen het, kan u die lêer verifieer. As dit die eerste keer fout is, probeer dit net nog een keer. As dit slaag, kan u dit na u arduino oplaai. Deur die kortpad ctrl+shift+m te gebruik, kan u die seriële monitor oopmaak. U kan die lêer hier toets. As die toets slaag, kan u die arduino ontkoppel en dit in 'n usb -poort van die framboos pi aansluit

Stap 5: Stel die Raspberry Pi op

In hierdie stappe stel ons die framboos pi op as databasis en webserver.

IN HIERDIE VOORBEELD GEBRUIK EK DIE GEBRUIKER 'my' AS JY 'N ANDER GEBRUIKER GEBRUIK, MOET JY CONFIG -LêERS VERANDER, HOU DIT ONDERHOUDIG!

1. Skep 'n gebruiker:

Skep 'n veranderlike

pieter@rpipieter: ~ $ gebruiker = ek

Maak die gebruiker sudo en voeg by alle groepe

groepe = $ (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}

Teken in op die rekening

pieter@rpipieter: ~ $ su - me

Wagwoord: ek@my-rpi: ~ $

2. Maak verbinding met die WiFi

ek@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Wagwoord' | wpa_passphrase 'Netwerknaam' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 herkonfigureer root@rpipieter: ~# afmeld

Kyk of die internet werk

root@rpipieter: ~# wget google.com

3. Maak die framboos-pi op datum en installeer die nodige pakkette

ek@my-rpi: ~ $ sudo apt update

my@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 herlaai -h nou

4. Kloon my github -bewaarplek

ek@rpipieter: ~ $ git kloon

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

5. Maak die virtuele omgewing

Terwyl u hierdie opdragte uitvoer, sal daar baie pakkette geïnstalleer word, dit kan tyd neem.

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 installeer mysql- connector-python argon2-cffi Fleskolf-HTTPAuth-fles-MySQL mysql-connector-python passlib pyseriale pyjwt RPi. GPIO

6. Die skep van die databasis en gebruikers

Ons gebruik mysql databasis

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

pieter@rpipieter: ~ $ sudo mysql

Kopieer dan, plak dit

TOEEKEN SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data'@'localhost'; STEL WOORDWOORD VIR 'som-data'@'localhost' = PASSWORD ('sensor9810'); kies * uit mysql.user; SKEP GEBRUIKER 'som-admin'@'localhost' IDENTIFIED BY 'admin9810'; SKEP GEBRUIKER 'som-web'@'localhost' IDENTIFICED BY 'web9810'; SKEP GEBRUIKER 'som-sensor'@'localhost' IDENTIFIED BY 'sensor9810'; SKEP DATABASIS skateometerdb; TOEEN ALLE VOORREGTE OP skateometerdb.* Aan 'som-admin'@'localhost' MET TOELATINGSOPTIE; TOEEKEN SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-web'@'localhost'; TOEEKEN SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* TO 'som-sensor'@'localhost'; FLUSH VOORREGTE;

Vervolgens gaan ons die bestaande databasiskema met verhoudings byvoeg.

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

7. Dienste

Hier kopieer ons ons konfigurasielêers en herlaai ons die gids, sodat ons die dienste kan aktiveer

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

Nou gaan ons die dienste aktiveer, sodat elke keer as ons met die framboos pi begin, dit outomaties begin.

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

Geskep 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 aktiveer som-data.service Geskep symlink /etc/systemd/system/multi-user.target.wants/som-data.service →/etc/systemd/ stelsel/som-data.service. me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl begin som-data.service me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl begin 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 herlaai nginx.service

Stap 6: Behuising + saal

Behuising + saal
Behuising + saal

Behuising

Eers het ek 'n gat in my skaatsplank gemaak vir die LCD, die potensiometer en die zoemer. Daarna het ek die LCD, die potensiometer en die zoemer op die printplaat soldeer. Toe gebruik ek 'n jumperwire vir die RPI, die een met 40 penne. Ek sit die een kant in die framboos pi en die ander helfte sny ek, hierdie kant gaan ons gebruik om te soldeer. In die lêer 'rpi-kabel' kan u sien waar u die draad moet soldeer.

Vir die omhulsel het ek 'n ou buisboks gebruik, ek het 'n paar gate daarin gesit vir 'n ethernetkabel en vir die jumperwire in die boks.

Ek hou die boks onder die skaatsplank met 'n skroef. Binne -in die boks het ek alles gereël, sodat dit pas, en ek het ook skroewe en 'n paar rubbers gebruik om alles in plek te hou. Dit maak dit makliker om dinge uit te haal.

Die RFID is op die verpakking van die boks gemonteer en word met ritsbande vasgehou; een probleem wat ek ondervind het, was dat dit soms nie geskandeer het nie, maar met 'n paar veranderinge het ek dit laat werk.

Hall effek sensor

Eers het ek 'n gat in my wiel geboor en 'n magneet daarin gesit.

Vir die saal word 3 jumperwires (manlik tot manlik) gebruik; ek het dit ook op my PCB gesoldeer, asook op die saal self. Ek het die gangsensor op my vragmotor gemonteer met 'n paar ritsbande. Maak seker dat die magneet en die sensor goed in lyn is, anders registreer dit nie altyd die pols nie.

Stap 7: Begin die app

Stap 1:

Koppel die framboos en kragbank aan.

Stap 2:

Wag totdat die program begin, u kan dit op die LCD volg. U sal die IP-adres sien, gaan na hierdie IP-adres.

Stap 3:

Skep 'n gebruiker, u kan dit doen deur te registreer. U moet die kenteken skandeer om u UID van die kenteken op die LCD te sien.

Stap 4:

As u 'n gebruiker geskep het, kan u u kenteken skandeer en 'n sessie sal begin.

Stap 5:

Gaan rondvaart

Stap 6:

Skandeer die kenteken weer om die sessie te stop

Stap 7:

Meld aan om u sessie en gedetailleerde data van die sessie te sien

Aanbeveel: