Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Som študentom Howest Kortrijk. Aby som ukázal lektorom svoje schopnosti, ktoré sme potrebovali na zostavenie projektu, rozhodol som sa vytvoriť počítadlo kilometrov a rýchlomer pre svoj skateboard so skenerom RFID. V tomto návode vám poviem, ako som urobil tento projekt.
Prišiel som na tento nápad, pretože rád korčuľujem a plavím sa. Pri plavbe by bolo užitočné zistiť, akú vzdialenosť som prešiel, a zistiť moju rýchlosť.
Pamätajte si, že toto je prototyp.
Krok 1: Komponenty
Komponenty
Na vytvorenie tohto projektu som použil nasledujúce komponenty:
- Skateboard
- Potenciometer
- LCD
- Senzor Hallovho efektu
- Rezistor 10 kOhm
- Malinový koláč
- Arduino Nano
- Prepojovací kábel (zo zásuvky na muž)
- Prepojovací kábel (Raspberry Pi)
- Prepojovací kábel (muž - muž)
- DPS
- RFID skener
- RFID odznak
- Externá batéria
Odkazy a ceny nájdete v BillOfMaterials
Krok 2: Zapojenie
Sála má 3 kolíky: VCC, GND a výstup. Uzemnenie smeruje do GND. VCC až 3,3 V a výstup v tomto prípade ide na GPIO 26. Rezistor 10K Ohm ťahá výstup vysoko.
Na čítanie odznakov používam sériovú komunikáciu cez USB medzi malinami pi a arduino nano. Toto nie je na obrázku, ale je to nevyhnutné!
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
Krok 3: Databázová schéma
Moja databáza obsahuje 3 tabuľky:
- Používatelia
- Relácia
- Údaje
Každý používateľ môže údaje sledovať oddelene. Relácia obsahuje údaje, takže viete, ako rýchlo ste v určitých bodoch pokračovali.
Krok 4: Konfigurujte Arduino Nano
Najprv vložte arduino nano do počítača pomocou kábla USB. Vyberte správne arduino a správny port USB, ktoré chcete nahrať.
Ďalej musíme pridať knižnicu, ktorú používam na čítanie odznaku RFID. Stiahnite si „rfid-master“a choďte na náčrt, zahrňte knižnicu a potom pridajte knižnicu. ZIP. Prejdite na zip, ktorý ste práve stiahli, a použite tento, nainštaluje sa automaticky. Potom stiahnite moje upravené „RFID_Read.ino“, stlačte ctrl + O a pridajte rovnaký čas, prejdite na tento súbor a otvorte ho.
Ak ste vykonali všetky tieto kroky vyššie, môžete súbor overiť. Ak sa chyba vyskytne prvýkrát, skúste to ešte raz. Ak sa to podarí, môžete ho nahrať do svojho arduina. Pomocou skratky ctrl+shift+m môžete otvoriť sériový monitor. Súbor môžete otestovať tu. Ak je test úspešný, môžete arduino odpojiť a zapojiť do USB portu Raspberry Pi
Krok 5: Konfigurujte Raspberry Pi
V týchto krokoch nastavíme malinový pi ako databázu a webový server.
V TOMTO PRÍKLADE POUŽÍVAM UŽÍVATEĽA „ja“, AK POUŽÍVATE INÉHO UŽÍVATEĽA, KTORÉ POTREBUJETE ZMENIŤ KONFIGURAČNÉ SÚBORY, Majte TO NA pamäti!
1. Vytvorte používateľa:
Vytvorte premennú
pieter@rpipieter: ~ $ user = ja
Vytvorenie používateľa sudo a pridanie do všetkých skupín
skupiny = $ (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}
Prihláste sa do účtu
pieter@rpipieter: ~ $ su - me
Heslo: ja@my-rpi: ~ $
2. Pripojte sa k sieti Wi -Fi
me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Heslo' | wpa_passphrase 'Názov siete' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 prekonfigurovať root@rpipieter: ~# odhlásenie
Skontrolujte, či funguje internet
root@rpipieter: ~# wget google.com
3. Aktualizácia malinového pi a inštalácia potrebných balíkov
ja@my-rpi: ~ $ sudo apt update
me@my-rpi: ~ $ sudo apt upgraduj ma@rpipieter: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme@my-rpi: ~ $ sudo reštart -h teraz
4. Klonujte moje úložisko github
ja@rpipieter: ~ $ git clone
ja@rpipieter: ~ $ cd skate-o-meter/skateometer/
5. Vytváranie virtuálneho prostredia
Aj keď pri vykonávaní týchto príkazov bude nainštalovaných veľa balíkov, môže to chvíľu trvať.
ja@rpipieter: ~/skate-o-meter/skateometer $ python3 -m pip install-upgrade pip setuptools wheel 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. Vytvorenie databázy a užívateľov
Používame databázu mysql
pieter@rpipieter: ~/skate-o-meter/skateometer $ cd
pieter@rpipieter: ~ $ sudo mysql
Potom skopírujte a prilepte toto
UDELIŤ VÝBER, VLOŽIŤ, AKTUALIZOVAŤ, VYMAZAŤ ZAPNUTÉ *. * DO „som-data“@„localhost“; NASTAVTE HESLO PRE „som-data“@„localhost“= HESLO ('sensor9810'); vyberte * z mysql.user; VYTVORIŤ UŽÍVATEĽA 'som-admin'@'localhost' IDENTIFIKOVANÝ 'admin9810'; VYTVORIŤ UŽÍVATEĽA 'som-web'@'localhost' IDENTIFIKOVANÝ 'web9810'; VYTVORIŤ UŽÍVATEĽA „som-senzor“@„localhost“IDENTIFIKOVANÝ „senzorom 9810“; VYTVORIŤ DATABÁZU skateometerdb; UDELTE VŠETKY VÝHODY NA skateometerdb.* „Som-admin“@„localhost“S MOŽNOSŤOU GRANTU; VYBERTE, VLOŽTE, AKTUALIZUJTE, VYMAZAJTE NA skateometerdb.* DO 'som-web'@'localhost'; VYBERTE, VLOŽTE, AKTUALIZUJTE, VYMAZAJTE NA skateometerdb.* DO 'som-senzora'@'localhost'; FLUSH PRIVILEGES;
Ďalej pridáme existujúcu databázovú schému so vzťahmi.
ja@rpipieter: ~/skate-o-meter/skateometer $ sudo mysql <sql/skateometerdb_dump-withoutdata.sql
7. Služby
Tu skopírujeme naše konfiguračné súbory a znova načítame priečinok, aby sme mohli povoliť služby
me@rpipieter: ~/skate-o-meter/skateometer $ sudo cp conf/som-*. service/etc/systemd/systemme@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl daemon-reload
Teraz povolíme služby, aby sa zakaždým, keď spustíme malinový pi, automaticky spustili.
ja@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl enable som-flask.service
Bol vytvorený symbolický odkaz /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 Vytvorený symbolický odkaz /etc/systemd/system/multi-user.target.wants/som-data.service →/etc/systemd/ systém/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
ja@rpipieter: ~/skate-o-meter/skateometer $ sudo cp conf/nginx/etc/nginx/sites-available/skateometerme@rpipieter: ~/skate-o-meter/skateometer $ sudo rm/etc/nginx/sites -povolené/predvolené ja@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 reštartujte službu nginx.service
Krok 6: Bývanie + hala
Bývanie
Najprv som do skateboardu urobil dieru pre LCD, potenciometer a bzučiak. Potom som spájkoval LCD, potenciometer a bzučiak na doske plošných spojov. Potom som použil prepojovací drôt pre RPI, ten so 40 pinmi. Jednu stranu som vložil do malinového pi a druhú polovicu som nakrájal, túto stranu použijeme na spájkovanie. V súbore „rpi-cable“vidíte, kde je potrebné spájkovať ktorý drôt.
Na puzdro som použil starú skrinku s krivkami, dal som do nej niekoľko otvorov pre ethernetový kábel a prepojovací kábel, aby prišli do škatule.
Krabicu držím pod skateboardom pomocou nejakej skrutky. Vnútri škatule som usporiadal všetko, takže sa to zmestilo a tiež som použil skrutky a nejaké gumy, aby všetko zostalo na svojom mieste. Vďaka tomu je vynášanie vecí jednoduchšie.
RFID je pripevnený k osvetleniu skrinky a drží na mieste pomocou zipsov. Jeden problém, s ktorým som sa stretol, bol ten, že niekedy sa neskenoval, ale s určitými zmenami som ho nechal fungovať.
Senzor Hallovho efektu
Najprv som do kolesa vyvŕtal dieru a vložil do nej magnet.
Na chodbu sú použité 3 prepojovacie vodiče (mužské až mužské), ktoré som spájkoval na svojej DPS aj na samotnej hale. Na svoj nákladný automobil som namontoval snímač haly pomocou niekoľkých pneumatík. Uistite sa, že magnet a senzor sú dobre zarovnané, inak nebude vždy zaznamenávať impulz.
Krok 7: Spustenie aplikácie
Krok 1:
Pripojte malinu a napájaciu banku.
Krok 2:
Počkajte, kým sa program nespustí, môžete to sledovať na LCD displeji. Uvidíte adresu IP, prejdite na túto adresu IP.
Krok 3:
Vytvorte si užívateľa, môžete to urobiť registráciou. Odznak musíte naskenovať, aby ste na LCD zobrazili jeho UID odznaku.
Krok 4:
Ak ste vytvorili používateľa, môžete odznak naskenovať a spustí sa relácia.
Krok 5:
Choďte okolo
Krok 6:
Reláciu zastavíte opätovným skenovaním odznaku
Krok 7:
Ak chcete vidieť svoju reláciu a podrobné údaje z relácie, prihláste sa