Talaan ng mga Nilalaman:

Skate-o-Meter: 7 Hakbang (na may Mga Larawan)
Skate-o-Meter: 7 Hakbang (na may Mga Larawan)

Video: Skate-o-Meter: 7 Hakbang (na may Mga Larawan)

Video: Skate-o-Meter: 7 Hakbang (na may Mga Larawan)
Video: United States Worst Prisons 2024, Nobyembre
Anonim
Skate-o-Meter
Skate-o-Meter

Ako ay isang mag-aaral sa Howest Kortrijk. Upang maipakita ang aming mga kasanayan sa mga lektor na kailangan namin upang makabuo ng isang proyekto, pinili kong lumikha ng isang odometer at speedometer para sa aking skateboard gamit ang isang RFID scanner. Sa itinuturo na ito, sinabi kong goig kung paano ko ginawa ang proyektong ito.

Naisip ko ang ideyang ito dahil gusto kong mag-skate at mag-cruise sa paligid. Habang namamasyal ako ay magiging madaling gamitin upang makita kung gaano kalayo ang distansya ko at nakita ang aking bilis.

Tandaan na ito ay isang prototype.

Hakbang 1: Mga Bahagi

Mga Bahagi

Ginamit ko ang mga sumusunod na sangkap upang likhain ang proyektong ito:

  • Skateboard
  • Potensyomiter
  • LCD
  • Hall effect sensor
  • 10k Ohm Resistor
  • Raspberry pi
  • Arduino Nano
  • Jumper wire (Babae hanggang lalaki)
  • Jumper wire (Raspberry Pi)
  • Jumper wire (Lalaki hanggang lalaki)
  • PCB
  • Scanner ng RFID
  • Badge ng RFID
  • Powerbank

Tingnan ang BillOfMaterial para sa mga link at presyo

Hakbang 2: Mga kable

Kable
Kable

Ang bulwagan ay may 3 mga pin: isang VCC, isang GND at isang output. Ang lupa ay napupunta sa isang GND. Ang VCC sa 3.3V at ang output sa halimbawang ito ay napupunta sa GPIO 26. Ang isang 10K Ohm risistor ay hinihila ang output na mataas.

Gumagamit ako ng serial na komunikasyon sa USB sa pagitan ng raspberry pi at arduino nano upang mabasa ang mga badge. Wala ito sa larawan, ngunit kinakailangan!

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

Hakbang 3: Database Scheme

Database Scheme
Database Scheme

Ang aking database ay may 3 mga talahanayan:

  • Mga gumagamit
  • Session
  • Data

Maaaring subaybayan ng bawat gumagamit nang magkahiwalay ang data. Ang isang session ay mayroong data upang malaman mo kung gaano kabilis ka nagpunta sa ilang mga punto habang nangyayari ang session.

Hakbang 4: I-configure ang Arduino Nano

I-configure ang Arduino Nano
I-configure ang Arduino Nano
I-configure ang Arduino Nano
I-configure ang Arduino Nano
I-configure ang Arduino Nano
I-configure ang Arduino Nano

Una ilagay ang iyong arduino nano sa iyong pc sa pamamagitan ng usb cable. Piliin ang tamang arduino at ang tamang usb port upang mai-upload.

Susunod na kailangan namin upang idagdag ang ginagamit kong library para sa pagbabasa ng RFID badge. Mag-download ng 'rfid-master' at pumunta sa sketch, isama ang library at pagkatapos ay magdagdag ng. ZIP library. Pumunta sa zip na na-download mo lamang at gamitin ang isang ito, awtomatiko itong mai-install. Pagkatapos nito i-download ang aking na-edit na 'RFID_Read.ino' pindutin ang ctrl + O idagdag ang parehong oras at pumunta sa file na ito at buksan ito.

Kung nagawa mo ang lahat ng mga hakbang na ito sa itaas maaari mong i-verify ang file. Kung nag-bug ito sa unang pagkakataon, subukan lamang ito ulit. Kung ito ay magtagumpay maaari mong i-upload ito sa iyong arduino. Sa pamamagitan ng paggamit ng shortcut ctrl + shift + m maaari mong buksan ang serial monitor. Maaari mong subukan ang file dito. Kung magtagumpay ang pagsubok maaari mong i-unplug ang arduino at i-plug ito sa isang usb port ng raspberry pi

Hakbang 5: I-configure ang Raspberry Pi

Sa mga hakbang na ito ay i-set up namin ang raspberry pi bilang database at webserver.

SA HALIMBONG ITO GINAGAMIT KO ANG USER na 'ako' KUNG GAGAMITIN MO ANG IBA PANG GAMIT KAILANGAN KANG PALITAN ANG MGA CONFIG FILES, PANITININ ITO!

1. Lumikha ng isang gumagamit:

Lumikha ng isang variable

pieter @ rpipieter: ~ $ user = ako

Paggawa ng gumagamit ng sudo at pagdaragdag sa lahat ng mga pangkat

mga grupo = $ (id pi -Gn | sed 's / ^ pi // g' | sed 's / /, / g') sudo useradd $ {user} -s / bin / bash -m -G $ {group} sudo sed "s / ^ pi / $ {user} /" /etc/sudoers.d/010_pi-nopasswd | sudo tee "/etc/sudoers.d/011_${user}-nopasswd" sudo passwd $ {user}

Mag-login sa account

pieter @ rpipieter: ~ $ su - ako

Password: ako @ my-rpi: ~ $

2. Kumonekta sa WiFi

ako @ rpipieter: ~ $ sudo -iroot @ rpipieter: ~ # echo 'Password' | wpa_passphrase 'Networkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root @ rpipieter: ~ # wpa_cli -i wlan0 reconfigure root @ rpipieter: ~ # logout

Suriin kung gumagana ang internet

root @ rpipieter: ~ # wget google.com

3. Paggawa ng pinakabagong raspberry pi at pag-install ng mga kinakailangang package

ako @ my-rpi: ~ $ sudo apt update

ako @ 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 reboot -h ngayon

4. I-clone ang aking github repository

ako @ rpipieter: ~ $ git clone

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

5. Paggawa ng virtual na kapaligiran

Habang ginagawa ang mga utos na ito doon mai-install ang maraming mga pakete, maaaring magtagal ito.

ako @ rpipieter: ~ / skate-o-meter / skateometer $ python3 -m pip install - i-upgrade ang 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- konektor-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-konektor-python passlib pyserial pyjwt RPi. GPIO

6. Lumilikha ng database at mga gumagamit

Gumagamit kami ng MySQL database

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

pieter @ rpipieter: ~ $ sudo MySQL

Pagkatapos kopyahin, i-paste ito

GRANT SELECT, INSERT, UPDATE, Delete ON *. * TO 'som-data' @ 'localhost'; SET PASSWORD FOR 'som-data' @ 'localhost' = PASSWORD ('sensor9810'); piliin ang * mula sa mysql.user; GUMAWA NG Gumagamit na 'som-admin' @ 'localhost' KILALA NG 'admin9810'; GUMAWA NG Gumagamit na 'som-web' @ 'localhost' KILALA NG 'web9810'; GUMAWA NG USER 'som-sensor' @ 'localhost' NAILALA NG 'sensor9810'; GUMAWA NG DATABASE skateometerdb; IPAGBIGAY ANG LAHAT NG PRIVILEGES SA skateometerdb. * Sa 'som-admin' @ 'localhost' MAY GRANT OPTION; PUMILI NG PILI, INSERT, I-UPDATE, TANGGAL SA skateometerdb. * SA 'som-web' @ 'localhost'; PUMILI NG PILI, INSERT, I-UPDATE, TANGGAL SA skateometerdb. * SA 'som-sensor' @ 'localhost'; FLUSH PRIVILEGES;

Susunod na idaragdag namin ang umiiral na database scheme na may mga relasyon.

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

7. Mga serbisyo

Dito kinokopya namin ang aming mga config file at muling nai-reload ang folder upang maaari naming paganahin ang mga serbisyo

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

Ngayon ay paganahin namin ang mga serbisyo upang sa tuwing sinisimulan namin ang raspberry pi ay awtomatiko itong magsisisimula dito.

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

Nilikha 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 paganahin ang som-data.service Nilikha 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 -enified / default me @ rpipieter: ~ / skate-o-meter / skateometer $ sudo ln -s / etc / nginx / sites-magagamit / skateometer / etc / nginx / mga site-pinagana / skateometerme @ rpipieter: ~ / skate-o -meter / skateometer $ sudo systemctl restart nginx.service

Hakbang 6: Pabahay + Hall

Pabahay + Hall
Pabahay + Hall

Pabahay

Una gumawa ako ng isang butas sa aking skateboard para sa LCD, potentiometer at buzzer. Pagkatapos nito ay naghinang ako ng LCD, potentiometer at buzzer sa PCB. Pagkatapos ay gumamit ako ng isang jumperwire para sa RPI, ang isa na may 40 mga pin. Inilagay ko ang isang gilid sa raspberry pi at ang kalahati ay pinutol ko, ang panig na ito na gagamitin namin upang maghinang. Sa file na 'rpi-cable' maaari mong makita kung saan kailangan mong maghinang aling kawad.

Para sa pambalot na ginamit ko ang isang lumang kahon ng curver, naglagay ako ng ilang mga butas dito para sa isang ethernetcable at para sa jumperwire na dumating sa kahon.

Itinatago ko ang kahon sa ilalim ng skateboard na may ilang tornilyo. Sa loob ng kahon ay inayos ko ang lahat, kaya't magkasya ito at gumamit din ng mga turnilyo at ilang mga rubber upang mapanatili ang lahat sa lugar. Ginagawa nitong mas madali ang paglabas ng mga bagay-bagay.

Ang RFID ay naka-mount sa naiilawan ng kahon at gaganapin sa mga ziptires, isang problema na nakasalamuha ko ay kung minsan hindi ito nai-scan, ngunit sa ilang mga pagbabago ay pinapagana ko ito.

Hall effect sensor

Una ay nag-drill ako ng isang butas sa aking gulong at naglagay ng isang magnet sa loob nito.

Para sa bulwagan ay ginagamit ang 3 jumperwires (lalaki hanggang lalaki) Ginawa ko ang mga ito sa aking PCB pati na rin sa mismong hall. Inilagay ko ang sensor ng hall sa aking trak na may ilang mga ziptire. Siguraduhin na ang magnet at sensor ay nakahanay nang maayos, kung hindi man ay hindi palaging ipaparehistro ang pulso.

Hakbang 7: Simula sa App

Hakbang 1:

I-plug in ang raspberry at power bank.

Hakbang 2:

Maghintay hanggang magsimula ang programa, maaari mong sundin ito sa LCD. Makikita mo ang IP-address, pumunta sa IP-address na ito.

Hakbang 3:

Lumikha ng isang gumagamit, magagawa mo ito sa pamamagitan ng pagrehistro. Kailangan mong i-scan ang badge upang makita ang iyong UID ng badge sa LCD.

Hakbang 4:

Kung lumikha ka ng isang gumagamit maaari mong i-scan ang iyong badge at magsisimula ang isang session.

Hakbang 5:

Pumunta cruise sa paligid

Hakbang 6:

Muling i-scan ang badge upang ihinto ang session

Hakbang 7:

Pag-login upang makita ang iyong session at detalyadong data mula sa session

Inirerekumendang: