Turinys:
- 1 žingsnis: komponentai
- 2 žingsnis: laidų prijungimas
- 3 žingsnis: duomenų bazės schema
- 4 veiksmas: sukonfigūruokite „Arduino Nano“
- 5 veiksmas: sukonfigūruokite „Raspberry Pi“
- 6 žingsnis: Būstas + salė
- Būstas
- Halės efekto jutiklis
- 7 veiksmas: paleiskite programą
Video: Skate-o-Meter: 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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
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
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“
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
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:
„Pasidaryk pats“„Leds Arduino“ruletės žaidimas: 3 žingsniai (su nuotraukomis)
„Pasidaryk pats“37 „Leds Arduino“ruletės žaidimas: Ruletė yra kazino žaidimas, pavadintas prancūziško žodžio, reiškiančio mažą ratą, vardu
„BOSEBerry Pi“interneto radijas: 4 žingsniai (su nuotraukomis)
„BOSEBerry Pi“interneto radijas: man patinka klausytis radijo! Savo namuose naudojau DAB radiją, tačiau radimas buvo šiek tiek nevienodas, o garsas nuolat nutrūko, todėl nusprendžiau sukurti savo interneto radiją. Aplink mano namus ir skaitmeninį brolį turiu stiprų „Wi -Fi“signalą
Kaip pasigaminti LED ledinį skate: 6 žingsniai (su nuotraukomis)
Kaip pasigaminti ledinę ledinę skate: ant savo pačiūžų uždėjau neopikselinius šviesos diodus. Kiekvieną kartą, kai mikrofonas, prijungtas prie „Arduino“plokštės, girdi bet kokį triukšmingą garsą. Jis siunčia įvairius signalus į šviesos diodus. Tai lengva padaryti, net pradedantiesiems. Pasidalinau kodais ir instrukcijomis. Pabandykime
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Varžtas - „pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): 6 žingsniai (su nuotraukomis)
Varžtas - „Pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): Indukcinis įkrovimas (taip pat žinomas kaip belaidis įkrovimas arba belaidis įkrovimas) yra belaidžio energijos perdavimo tipas. Jis naudoja elektromagnetinę indukciją tiekti elektros energiją nešiojamiesiems įrenginiams. Dažniausia programa yra „Qi“belaidžio įkrovimo st