Turinys:

Skate-o-Meter: 7 žingsniai (su nuotraukomis)
Skate-o-Meter: 7 žingsniai (su nuotraukomis)

Video: Skate-o-Meter: 7 žingsniai (su nuotraukomis)

Video: Skate-o-Meter: 7 žingsniai (su nuotraukomis)
Video: 6 YEAR OLD SKATER FROM JAPAN IN LA 2024, Lapkritis
Anonim
Skate-o-Meter
Skate-o-Meter

Aš esu Howest Kortrijk studentas. Norėdamas parodyti savo įgūdžius dėstytojams, kurių mums reikėjo kuriant projektą, aš nusprendžiau sukurti odometrą ir spidometrą savo riedlentei su RFID skaitytuvu. Šioje pamokoje noriu pasakyti, kaip aš sukūriau šį projektą.

Šią idėją sugalvojau, nes man patinka čiuožinėti ir plaukioti. Kol plaukiu, būtų patogu pamatyti, kiek nuvažiuotas atstumas, ir pamatyti greitį.

Atminkite, kad tai yra prototipas.

1 žingsnis: komponentai

Komponentai

Kurdamas šį projektą naudojau šiuos komponentus:

  • Riedlentė
  • Potenciometras
  • LCD
  • Halės efekto jutiklis
  • 10k omų rezistorius
  • Aviečių pi
  • Arduino Nano
  • Jumperio viela (nuo moters iki vyro)
  • Jumperio viela (Raspberry Pi)
  • Trikotažo viela (nuo vyrų iki vyrų)
  • PCB
  • RFID skaitytuvas
  • RFID ženklelis
  • „Powerbank“

Nuorodas ir kainą rasite „BillOfMaterials“

2 žingsnis: laidų prijungimas

Laidai
Laidai

Salėje yra 3 kaiščiai: VCC, GND ir išėjimas. Žemė eina į GND. VCC į 3.3V, o išėjimas šiame pavyzdyje yra GPIO 26. 10K omų rezistorius padidina išėjimą.

Aš naudoju serijinį ryšį per USB tarp aviečių pi ir arduino nano, kad skaityčiau ženkliukus. Tai nėra nuotraukoje, bet būtina!

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

3 žingsnis: duomenų bazės schema

Duomenų bazės schema
Duomenų bazės schema

Mano duomenų bazėje yra 3 lentelės:

  • Vartotojai
  • Sesija
  • Duomenys

Kiekvienas vartotojas gali sekti duomenis atskirai. Sesija turi duomenų, kad žinotumėte, kaip greitai pasiekėte tam tikrus taškus, kol sesija vyko.

4 veiksmas: sukonfigūruokite „Arduino Nano“

Konfigūruokite „Arduino Nano“
Konfigūruokite „Arduino Nano“
Konfigūruokite „Arduino Nano“
Konfigūruokite „Arduino Nano“
Konfigūruokite „Arduino Nano“
Konfigūruokite „Arduino Nano“

Pirmiausia įdėkite „arduino nano“į kompiuterį per USB kabelį. Pasirinkite norimą įkelti „arduino“ir tinkamą USB prievadą.

Toliau turime pridėti biblioteką, kurią naudoju RFID ženkleliui skaityti. Atsisiųskite „rfid-master“ir eikite į eskizą, įtraukite biblioteką ir pridėkite. ZIP biblioteką. Eikite į ką tik atsisiųstą ZIP failą ir naudokite šį, jis bus įdiegtas automatiškai. Po to atsisiųskite mano redaguotą „RFID_Read.ino“, paspauskite „Ctrl“+ O pridėti tą patį laiką ir eikite į šį failą ir atidarykite jį.

Jei atlikote visus šiuos veiksmus, galite patikrinti failą. Jei pirmą kartą klaida, pabandykite dar kartą. Jei tai pavyks, galite įkelti jį į savo arduino. Naudodami spartųjį klavišą ctrl+shift+m galite atidaryti nuoseklųjį monitorių. Failą galite išbandyti čia. Jei bandymas bus sėkmingas, galite atjungti „arduino“ir prijungti prie „Raspberry Pi“USB prievado

5 veiksmas: sukonfigūruokite „Raspberry Pi“

Atlikdami šiuos veiksmus, mes nustatysime aviečių pi kaip duomenų bazę ir žiniatinklio serverį.

ŠIAME PAVYZDYJE NAUDoju NAUDOTOJĄ „aš“, JEI NAUDOJATE KITĄ NAUDOTOJĄ, REIKIA PAKEISTI KONFIGUOJIMO FILLUS, TURĖKITE tai mintyje!

1. Sukurkite naudotoją:

Sukurkite kintamąjį

pieter@rpipieter: ~ $ user = aš

Padaryti vartotoją sudo ir pridėti prie visų grupių

grupės = $ (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}

Prisijunkite prie paskyros

pieter@rpipieter: ~ $ su - aš

Slaptažodis: aš@my-rpi: ~ $

2. Prisijunkite prie „WiFi“

me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Slaptažodis' | wpa_passphrase 'Tinklo pavadinimas' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 perkonfigūruoti root@rpipieter: ~# logout

Patikrinkite, ar internetas veikia

root@rpipieter: ~# wget google.com

3. „Raspberry pi“atnaujinimas ir reikalingų paketų įdiegimas

me@my-rpi: ~ $ sudo apt atnaujinimas

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 paleisk iš naujo -h dabar

4. Klonuoti mano „github“saugyklą

aš@rpipieter: ~ $ git klonas

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

5. Virtualios aplinkos kūrimas

Vykdant šias komandas bus įdiegta daug paketų, tai gali užtrukti.

me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m pip install-atnaujinti pip setuptools ratą virtualenv

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

6. Duomenų bazės ir vartotojų kūrimas

Mes naudojame mysql duomenų bazę

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

pieter@rpipieter: ~ $ sudo mysql

Tada nukopijuokite, įklijuokite

GRANT SELECT, INSERT, UPDATE, DELETE ON *. * Į 'som-data'@'localhost'; NUSTATYTI 'som-data'@'localhost' = PASSWORD ('sensor9810') PASSWORD pasirinkite * iš mysql.user; KURTI NAUDOTOJĄ 'som-admin'@'localhost', kurį identifikavo 'admin9810'; KURTI NAUDOTOJĄ „som-web“@“localhost“, IDENTIFIKUOTAS „web9810“; KURTI VARTOTOJĄ „som-sensor“@„localhost“, IDENTIFIKUOTAS „sensor9810“; CREATE DATABASE skateometerdb; SUTEIKITE VISAS privilegijas skateometerdb.* „Som-admin“@“localhost“SU GRANT OPTION; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* Į 'som-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb.* Į 'som-sensor'@'localhost'; PLŪŠIMO PRIVILEGIJOS;

Toliau pridėsime esamą duomenų bazės schemą su ryšiais.

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

7. Paslaugos

Čia nukopijuojame savo konfigūracijos failus ir iš naujo įkeliame aplanką, kad galėtume įjungti paslaugas

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

Dabar ketiname įgalinti paslaugas, kad kiekvieną kartą, kai paleisime aviečių pi, jos automatiškai prasidėtų.

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

Sukurta 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 Sukurta 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 -įjungta/numatytasis aš@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

6 žingsnis: Būstas + salė

Būstas + salė
Būstas + salė

Būstas

Pirmiausia riedlentėje padariau skylę skystųjų kristalų ekranui, potenciometrui ir garso signalui. Po to litavau LCD, potenciometrą ir garso signalą ant PCB. Tada RPI naudoju jungiamąjį laidą, kuris turi 40 kaiščių. Aš įdėjau vieną pusę į aviečių pi, o kitą pusę supjaustiau, šią pusę ketiname naudoti lituoti. Faile „rpi-cable“galite pamatyti, kur reikia lituoti, kurį laidą.

Korpusui panaudojau seną kreivės dėžutę, į ją įdėjau keletą skylių eterneto kabeliui ir, kad dėžutėje būtų jungiamasis laidas.

Dėžę laikau po riedlente kažkokiu varžtu. Viduje dėžutėje viską sutvarkiau, kad tilptų, taip pat naudoju varžtus ir kai kurias gumas, kad viskas būtų vietoje. Tai palengvina daiktų išvežimą.

RFID yra sumontuotas prie dėžutės apšvietimo ir laikomas vietoje su užtrauktukais. Viena problema, su kuria susidūriau, buvo ta, kad kartais ji nebuvo nuskaityta, tačiau su kai kuriais pakeitimais tai pavyko.

Halės efekto jutiklis

Pirmiausia aš išgręžiau skylę savo rate ir įdėjau į jį magnetą.

Salėje naudojami 3 jungiamieji laidai (nuo vyrų iki vyrų), juos lituodavau ant savo PCB ir pačioje salėje. Aš pritvirtinau salės jutiklį ant savo sunkvežimio su keliais užtrauktukais. Įsitikinkite, kad magnetas ir jutiklis yra gerai sulygiuoti, kitaip jis ne visada užregistruos impulsą.

7 veiksmas: paleiskite programą

1 žingsnis:

Įjunkite aviečių ir maitinimo bloką.

2 žingsnis:

Palaukite, kol programa prasidės, tai galite sekti LCD ekrane. Pamatysite IP adresą, eikite į šį IP adresą.

3 žingsnis:

Sukurkite vartotoją, tai galite padaryti užsiregistravę. Turite nuskaityti ženklelį, kad LCD ekrane pamatytumėte ženklelio UID.

4 žingsnis:

Jei sukūrėte naudotoją, galite nuskaityti savo ženklelį ir prasidės seansas.

5 žingsnis:

Eikite kruizu

6 žingsnis:

Dar kartą nuskaitykite ženklelį, kad sustabdytumėte seansą

7 žingsnis:

Prisijunkite, kad pamatytumėte savo sesiją ir išsamius sesijos duomenis

Rekomenduojamas: