Բովանդակություն:

Skate-o-Meter: 7 քայլ (նկարներով)
Skate-o-Meter: 7 քայլ (նկարներով)

Video: Skate-o-Meter: 7 քայլ (նկարներով)

Video: Skate-o-Meter: 7 քայլ (նկարներով)
Video: 🇧🇷 ДНЕВНЫЕ БОРДЕЛИ РИО // ЗАБРАЛ ЛЬВИЦУ С ПЛЯЖА ДОМОЙ 🇧🇷 БРАЗИЛИЯ РИО ДЕ ЖАНЕЙРО 2024, Հուլիսի
Anonim
Skate-o-Meter
Skate-o-Meter

Ես Howest Kortrijk- ի ուսանող եմ: Մեր հմտությունները դասախոսներին ցույց տալու համար, որոնք մեզ անհրաժեշտ էին նախագիծ կառուցելու համար, ես, իրոք, նախընտրեցի RKID սկաների միջոցով իմ skateboard- ի համար չափել արագաչափ և արագաչափ: Այս ուսանելի ուսուցման մեջ ես ուզում եմ ասել, թե ինչպես եմ կազմել այս նախագիծը:

Այս միտքն ինձ մոտ եկավ, քանի որ սիրում եմ չմուշկներով սահել և շրջել նավարկությամբ: Մինչ ես նավարկում եմ, հարմար կլինի տեսնել, թե որքան հեռավորություն եմ անցել և տեսնել իմ արագությունը:

Հիշեք, որ սա նախատիպ է:

Քայլ 1: Բաղադրիչներ

Բաղադրիչներ

Այս նախագիծը ստեղծելու համար ես օգտագործեցի հետևյալ բաղադրիչները.

  • Սքեյթբորդ
  • Պոտենցիոմետր
  • LCD
  • Hall ազդեցության ցուցիչ
  • 10k Օմ դիմադրություն
  • Ազնվամորի պի
  • Արդուինո Նանո
  • Jumper մետաղալար (էգից արու)
  • Jumper մետաղալար (Raspberry Pi)
  • Jumper մետաղալար (արականից արական)
  • PCB
  • RFID սկաներ
  • RFID կրծքանշան
  • Powerbank

Հղումների և գների համար տես BillOfMaterials- ը

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր

Դահլիճն ունի 3 կապում `VCC, GND և ելք: Հողը գնում է GND: VCC- ն 3.3 Վ -ի նկատմամբ, և այս օրինակում թողարկված արդյունքը գնում է GPIO 26 -ին: 10K Օմ դիմադրիչը բարձր է ձգում ելքը:

Նշանակները կարդալու համար ես օգտագործում եմ սերիական հաղորդակցություն USB- ի միջոցով ազնվամորու pi- ի և arduino nano- ի միջև: Սա նկարում չէ, բայց պարտադիր է:

D9 RST (Վերակայել) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND3.3V 3.3V

Քայլ 3: Տվյալների բազայի սխեմա

Տվյալների բազայի սխեմա
Տվյալների բազայի սխեմա

Իմ տվյալների բազան ունի 3 աղյուսակ.

  • Օգտվողներ
  • Նիստ
  • Տվյալներ

Յուրաքանչյուր օգտվող կարող է մասնակիորեն հետևել տվյալներին: Նիստը պարունակում է տվյալներ, որպեսզի իմանաք, թե ինչ արագությամբ եք ընթացել որոշակի կետերի ընթացքում, մինչ նիստը շարունակվում էր:

Քայլ 4. Կարգավորեք Arduino Nano- ն

Կարգավորեք Arduino Nano- ն
Կարգավորեք Arduino Nano- ն
Կարգավորեք Arduino Nano- ն
Կարգավորեք Arduino Nano- ն
Կարգավորեք Arduino Nano- ն
Կարգավորեք Arduino Nano- ն

Նախ տեղադրեք ձեր arduino nano- ն ձեր համակարգչում `USB մալուխի միջոցով: Ընտրեք ճիշտ arduino- ն և ճիշտ USB պորտը ՝ վերբեռնման համար:

Հաջորդը, մենք պետք է ավելացնենք այն գրադարանը, որն օգտագործում եմ RFID կրծքանշանը կարդալու համար: Ներբեռնեք 'rfid-master' և գնացեք ուրվագիծ, ներառեք գրադարանը, այնուհետև ավելացրեք. ZIP գրադարան: Գնացեք ձեր ներբեռնած zip և օգտագործեք այս մեկը, այն ինքնաբերաբար կտեղադրվի: Դրանից հետո ներբեռնեք իմ խմբագրված 'RFID_Read.ino' սեղմեք ctrl + O միաժամանակ ավելացրեք և գնացեք այս ֆայլը և բացեք այն:

Եթե դուք կատարել եք վերը նշված բոլոր քայլերը, կարող եք ստուգել ֆայլը: Եթե առաջին անգամ սխալ է առաջացել, պարզապես փորձեք ևս մեկ անգամ: Եթե դա հաջողվի, կարող եք այն վերբեռնել ձեր arduino- ում: Օգտագործելով դյուրանցումը ctrl+shift+m, կարող եք բացել սերիական մոնիտորը: Դուք կարող եք ստուգել ֆայլը այստեղ: Եթե թեստը հաջողվի, կարող եք անջատել arduino- ն և միացնել այն ազնվամորի pi- ի USB պորտին

Քայլ 5: Կարգավորեք Raspberry Pi- ն

Այս քայլերում մենք ազնվամորի pi- ն կդնենք որպես տվյալների բազա և վեբ սերվեր:

Այս ՕՐԻՆԱԿՈ IՄ ԵՍ ՕԳՏԱԳՈՐՈՄ ԵՄ ՕԳՏԱԳՈՐՈԸ «ԵՍ», ԵԹԵ ՕԳՆՈՄ ԵՔ ՄԵԿ ՕԳՏԱԳՈՐԻՉ, ՈՐ ՊԵՏՔ Է ՓՈՓՈԽԵԼ ԿԱՄԿԻIG ՖԱՅԼԵՐԸ, ԱՅՍ ՊԱՀԵՔ:

1. Ստեղծել օգտվող

Ստեղծեք փոփոխական

pieter@rpipieter: ~ $ user = ես

Օգտվողին դարձնել sudo և ավելացնել բոլոր խմբերին

խմբեր = $ (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}

Մուտք գործեք հաշիվ

pieter@rpipieter: ~ $ su - ես

Գաղտնաբառ ՝ me@my-rpi: ~ $

2. Միացեք WiFi- ին

me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Գաղտնաբառ' | wpa_passphrase 'Networkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 վերաձեւակերպել արմատը@rpipieter: ~# դուրս գալ

Ստուգեք, արդյոք ինտերնետն աշխատում է

root@rpipieter: ~# wget google.com

3. Ազնվամորու պիի արդիականացում և անհրաժեշտ փաթեթների տեղադրում

me@my-rpi: ~ $ sudo տեղին թարմացում

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 վերագործարկել -հ հիմա

4. Կլոնավորեք իմ github պահոցը

me@rpipieter: ~ $ git clone

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

5. Վիրտուալ միջավայրի ստեղծում

Այս հրամանները կատարելիս կտեղադրվեն բազմաթիվ փաթեթներ, դա կարող է որոշ ժամանակ տևել:

me@rpipieter:/skate-o-meter/skateometer $ python 3 -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. Տվյալների բազայի և օգտվողների ստեղծում

Մենք օգտագործում ենք mysql տվյալների բազան

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

pieter@rpipieter: ~ $ sudo mysql

Այնուհետեւ պատճենեք, տեղադրեք սա

ՏՐԱՄԱԴՐԵԼ ԸՆՏՐՈԹՅՈՆ, ՆԵՐԿԱՅԱՆԵԼ, ԹԱՐՄԱՆԵԼ, DEՆTEԵԼ *: * 'som-data'@'localhost'; SASS PASSWORD FOR 'som-data'@'localhost' = PASSWORD ('sensor9810'); ընտրեք * mysql.user- ից; Ստեղծել օգտվողի 'som-admin'@'localhost' IDENTIFIED BY 'admin9810'; ՍՏԵԵԼ Օգտվողի 'som-web'@'localhost' IDENTIFIED BY 'web9810'; Ստեղծել օգտվողի 'som-sensor'@'localhost' IDENTIFIED BY 'sensor9810'; Ստեղծել տվյալների շտեմարան skateometerdb; ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ՊՐՈՎԻԼՅՈԹՅՈ skՆՆԵՐԸ skateometerdb.*-ին 'som-admin'@'localhost' ԳՐԱՆԹԱԿԱՅԻՆ ԸՆՏՐՈԹՅՈՆՈՎ; ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆ, ՏԵSԱԴՐՈՄ, ԹԱՐՄԱՆԵԼ, DEՆTEԵԼ skateometerdb- ով:* Դեպի 'som-web'@'localhost'; ՏՐԱՄԱԴՐՈԹՅԱՆ ԸՆՏՐՈԹՅՈՆ, ՆԵՐԿԱՅԱՆԵԼ, ԹԱՐՄԱՆԵԼ, DEՆTEԵԼ skateometerdb- ով:* Դեպի 'som-sensor'@'localhost'; FLԱՌԱՅԻՆ ԱՌԱIՆՈԹՅՈՆՆԵՐ;

Հաջորդը մենք կավելացնենք առկա տվյալների բազայի սխեման հարաբերություններով:

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

7. Servicesառայություններ

Այստեղ մենք պատճենում ենք մեր կազմաձևման ֆայլերը և վերաբեռնում թղթապանակը, որպեսզի կարողանանք միացնել ծառայությունները

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

Այժմ մենք մտադիր ենք միացնել ծառայությունները, որպեսզի ամեն անգամ, երբ սկսում ենք ազնվամորու պի, դրանք ինքնաբերաբար սկսվեն դրանից:

me@rpipieter:/skate-o-meter/skateometer $ sudo systemctl միացնել som-flask.service

Ստեղծվել է symlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service: me@rpipieter. 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 -Միացված/կանխադրված 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 վերագործարկել nginx.service

Քայլ 6: Բնակարան + դահլիճ

Բնակարան + սրահ
Բնակարան + սրահ

Բնակարանաշինություն

Սկզբում ես սքեյթբորդի վրա փոս բացեցի LCD- ի, պոտենցիոմետրի և ազդանշանի համար: Դրանից հետո ես զոդեցի LCD- ը, պոտենցիոմետրը և ազդանշանը PCB- ի վրա: Հետո ես օգտագործեցի jumperwire- ը RPI- ի համար, որը 40 կապում էր: Ես մի կողմը դնում եմ ազնվամորի պիի մեջ, իսկ մյուս կեսը կտրում եմ, այս կողմը մենք պատրաստվում ենք զոդել: 'Rpi-cable' ֆայլում կարող եք տեսնել, թե որ մետաղալարն է պետք զոդել:

Պարկուճի համար ես օգտագործել եմ հին կորի տուփ, դրա մեջ մի քանի անցք եմ դրել `ցանցի համար և jumperwire- ի համար:

Տուփը սքեյթբորդի տակ եմ պահում ինչ -որ պտուտակով: Տուփի ներսում ես ամեն ինչ դասավորեցի, այնպես որ այն կտեղավորվեր, ինչպես նաև օգտագործեցի պտուտակներ և որոշ ռետիններ `ամեն ինչ տեղում պահելու համար: Սա հեշտացնում է իրերը դուրս հանելը:

RFID- ը տեղադրված է տուփի լուսավորության վրա և պահվում է ziptires- ով:

Hall ազդեցության ցուցիչ

Սկզբում ես անիվիս անցք բացեցի և դրա մեջ մագնիս դրեցի:

Դահլիճի համար օգտագործվում է 3 թռչկոտիկ (արականից արական), ես դրանք զոդել եմ իմ PCB- ի վրա, ինչպես նաև հենց սրահի վրա: Ես դահլիճի սենսորը տեղադրեցի իմ բեռնատարի վրա `որոշ ziptires- ով: Համոզվեք, որ մագնիսը և տվիչը լավ են հավասարեցված, հակառակ դեպքում միշտ չէ, որ գրանցում է զարկերակը:

Քայլ 7: ingրագիրը գործարկելը

Քայլ 1:

Միացրեք ազնվամորու և սնուցման բանկը:

Քայլ 2:

Սպասեք, մինչև ծրագիրը սկսվի, սա կարող եք հետևել LCD- ով: Դուք կտեսնեք IP հասցեն, գնացեք այս IP հասցեով:

Քայլ 3:

Ստեղծեք օգտվող, դա կարող եք անել գրանցվելով: Նշանը ձեր UID- ը LCD- ում տեսնելու համար անհրաժեշտ է սկանավորել կրծքանշանը:

Քայլ 4:

Եթե օգտվող եք ստեղծել, կարող եք սկանավորել ձեր նշանը, և նիստը կսկսվի:

Քայլ 5:

Գնացեք նավարկության շուրջը

Քայլ 6:

Նորից սկանավորեք կրծքանշանը ՝ նիստը դադարեցնելու համար

Քայլ 7:

Մուտք գործեք ՝ ձեր նիստը և նիստի մանրամասն տվյալները տեսնելու համար

Խորհուրդ ենք տալիս: