Мазмуну:

Скейт-о-метр: 7 кадам (Сүрөттөр менен)
Скейт-о-метр: 7 кадам (Сүрөттөр менен)

Video: Скейт-о-метр: 7 кадам (Сүрөттөр менен)

Video: Скейт-о-метр: 7 кадам (Сүрөттөр менен)
Video: Каныбек 2024, Июль
Anonim
Skate-o-Meter
Skate-o-Meter

Мен Howest Kortrijk студентимин. Проектти куруу үчүн керек болгон лекторлорго өз жөндөмүбүздү көрсөтүү үчүн, мен RFID сканери менен скейтбордум үчүн одометр менен спидометрди түзүүнү чечтим. Бул нускамада мен бул долбоорду кантип жасаганымды айтып берейин.

Мен коньки тебүүнү жана круизде жүргөндү жакшы көргөндүктөн ушундай идеяга келдим. Мен круизде жүргөнүмдө канча аралыкты басып өткөнүмдү жана ылдамдыгымды көрүүгө ыңгайлуу болмок.

Бул прототип экенин унутпа.

1 -кадам: Компоненттер

Компоненттер

Мен бул долбоорду түзүү үчүн төмөнкү компоненттерди колдондум:

  • Skateboard
  • Потенциометр
  • LCD
  • Холл эффекти сенсору
  • 10k Ohm резистору
  • Raspberry pi
  • Arduino Nano
  • Өткөргүч зым (Аялдан эркекке)
  • Jumper зымы (Raspberry Pi)
  • Өткөргүч зым (Эркектен эркекке)
  • ПХБ
  • RFID сканери
  • RFID бейджиги
  • Powerbank

Шилтемелер жана баа үчүн BillOfMaterials караңыз

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү

Залда 3 казык бар: VCC, GND жана чыгаруу. Жер GNDге барат. VCC 3.3Vга чейин жана бул мисалда өндүрүш GPIO 26га барат. 10K Ohm резистору өндүрүштү жогору тартат.

Мен бейджиктерди окуу үчүн малина pi менен arduino нанонун ортосундагы USB аркылуу сериялык байланышты колдоном. Бул сүрөттө жок, бирок талап кылынат!

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 конфигурациялаңыз

Ардуино Нанону конфигурациялоо
Ардуино Нанону конфигурациялоо
Ардуино Нанону конфигурациялоо
Ардуино Нанону конфигурациялоо
Ардуино Нанону конфигурациялоо
Ардуино Нанону конфигурациялоо

Алгач USB кабели аркылуу компьютериңизге arduino наноңузду салыңыз. Жүктөө үчүн туура arduino жана туура USB портун тандаңыз.

Андан кийин биз RFID бейджигин окуу үчүн колдонгон китепкананы кошушубуз керек. 'Rfid-master'ди жүктөп алып, эскизге өтүңүз, китепкананы кошуп, анан. ZIP китепканасын кошуңуз. Жаңы эле түшүрүлгөн zipке өтүңүз жана муну колдонуңуз, ал автоматтык түрдө орнотулат. Бул жүктөлгөндөн кийин менин түзөтүлгөн 'RFID_Read.ino' баскычын басыңыз ctrl + O ошол эле убакытты кошуп, бул файлга өтүп, аны ачыңыз.

Эгерде сиз жогоруда айтылган бардык кадамдарды аткарсаңыз, файлды текшере аласыз. Биринчи ката кетирсе, дагы бир жолу аракет кылып көрүңүз. Эгер бул ийгиликтүү болсо, аны ардуиного жүктөй аласыз. Ctrl+shift+m жарлыктарын колдонуу менен сериялык мониторду ача аласыз. Файлды бул жерден сынап көрсөңүз болот. Эгерде сыноо ийгиликтүү болсо, анда ардуинону сууруп, аны малина пиинин USB портуна туташтырсаңыз болот.

5 -кадам: Raspberry Pi конфигурациялаңыз

Бул кадамдарда биз малина пи базасы жана веб -сервер катары орнотобуз.

БУЛ МИСАЛДАН КОЛДОНУЧУ 'Мени' КОЛДОНОМУН, ЭГЕР БАШКА КОЛДОНУЧТУ КОЛДОНСОҢУЗ, КОНФИГФИФИЛДЕРДИ ӨЗГӨРТҮШҮҢҮЗ КЕРЕК, МЫНА ЭСИҢИЗДЕ САКТАҢЫЗ!

1. Колдонуучу түзүү:

Өзгөрмө түзүү

pieter@rpipieter: ~ $ user = me

Колдонуучуну 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 'Password' | wpa_passphrase 'Networkname' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 root@rpipieter: ~# чыгуу

Интернет иштеп жаткандыгын текшериңиз

root@rpipieter: ~# wget google.com

3. Малина пи жаңыртып, керектүү пакеттерди орнотуу

me@my-rpi: ~ $ sudo ылайыктуу жаңыртуу

me@my-rpi: ~ $ sudo apt up me@rpipieter: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme@my-rpi: ~ $ sudo кайра жүктөө -h азыр

4. Менин github репозиторийимди клондоштуруу

me@rpipieter: ~ $ git клону

me@rpipieter: ~ $ cd коньки-о-метр/скейтометр/

5. Виртуалдык чөйрөнү түзүү

Бул буйруктарды аткарууда көп пакеттер орнотулат, бул бир аз убакытты талап кылышы мүмкүн.

me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m пип орнотуу-pip setuptools дөңгөлөгүнүн виртуалдык системасын жаңыртуу

me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m venv --system-site-packages env (env) me@rpipieter: ~/skate-o-meter/skateometer $ python -m pip 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

Андан кийин көчүрүңүз, муну чаптаңыз

ГРАНТ ТАНДОО, КИРГИЗҮҮ, ЖАҢЫРТУУ, ӨЧҮРҮҮ *. * TO 'som-data'@'localhost'; 'SOM-data'@'localhost' = PASSWORD ('sensor9810') ҮЧҮН ПАРОЛЬТУ ЖӨНДӨТҮҮ; mysql.userден * тандаңыз; CREATE USER 'som-admin'@'localhost' IDENTIFIED 'admin9810'; 'Som9-web'@'localhost' ИДЕНТИВАЛАНГАН 'web9810' КОЛДОНУУЧУСУН ЖАРАТЫҢЫЗ; CREATE USER 'som-sensor'@'localhost' IDENTIFIED 'sens9810'; DATABASE CREATE skateometerdb; Skateometerdb боюнча бардык артыкчылыктарды берүү.* To 'som-admin'@'localhost' ГРАНТ ОПЦИОНУ МЕНЕН; Грант ТАНДОО, КИРГИЗҮҮ, ЖАҢЫРТУУ, skateometerdb ЖОЮУ.* TO 'som-web'@'localhost'; ГРАНТ ТАНДОО, КИРГИЗҮҮ, ЖАҢЫРТУУ, skateometerdb ЖОЮУ.* TO 'som-sensor'@'localhost'; FLUSH артыкчылыктары;

Андан кийин биз мамилелер менен учурдагы маалымат базасынын схемасын кошобуз.

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

7. Кызматтар

Бул жерде биз конфигурация файлдарыбызды көчүрүп, папканы кайра жүктөө менен кызматтарды иштете алабыз

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 сом-колбаны иштетет.кызмат

Symetlink түзүлгөн /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service. me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl иштетүү som-data.service 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 -enabled/default 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 -кадам: Турак жай + Холл

Турак жай + зал
Турак жай + зал

Турак жай

Биринчиден, мен скейтборддо ЖК, потенциометр жана зумер үчүн тешик жасадым. Андан кийин мен ЖКны, потенциометрди жана ПЗБдагы зумурду ширеттим. Андан кийин мен RPI үчүн секиргич зымды колдондум, ал 40 казык менен. Мен бир жагын малина пи салып, экинчи жарымын кесип, бул жагын биз ширетүү үчүн колдонобуз. 'Rpi-cable' файлында кайсы зымды кайда ширетүү керек экенин көрө аласыз.

Корпус үчүн мен эски ийри кутучаны колдондум, ага ethernetcable жана секирүүчү зымдын кутуга кириши үчүн тешиктерди койдум.

Мен кутучаны скейтборддун астында бир аз бурам менен сактайм. Кутунун ичинде мен баарын иреттеп койгом, ошондуктан ал туура келет, ошондой эле бурамалар менен кээ бир каучуктарды колдонгон. Бул нерселерди чыгарууну жеңилдетет.

RFID кутунун жарыгына орнотулган жана ziptires менен кармалып турат, мен туш болгон бир көйгөй кээде сканерленбегени менен болгон, бирок кээ бир өзгөртүүлөр менен мен аны иштеттим.

Холл эффекти сенсору

Алгач дөңгөлөгүмө тешип, ичине магнит койдум.

Зал үчүн 3 jumperwire колдонулат (эркектен эркекке) Мен аларды ПКБда, ошондой эле залдын өзүндө ширеттим. Мен холл сенсорун жүк машинама бир нече сыдырма менен орноттум. Магнит менен сенсордун туура тегизделгенин текшериңиз, антпесе ал ар дайым импульсту каттабайт.

7 -кадам: Колдонмону баштоо

1 кадам:

Малинаны жана кубат банкын сайыңыз.

2-кадам:

Программа башталганга чейин күтө туруңуз, муну ЖКдан ээрчип алсаңыз болот. Сиз IP-дарегин көрөсүз, бул IP-дарекке өтүңүз.

3 -кадам:

Колдонуучу түзүңүз, каттоодон өтсөңүз болот. ЖКдагы бейджигиңиздин UIDин көрүү үчүн төш белгини сканерлөөңүз керек.

4 -кадам:

Эгер сиз колдонуучу жаратсаңыз, анда бейджигиңизди сканерлей аласыз жана сессия башталат.

5 -кадам:

Круизге барыңыз

6 -кадам:

Сеансты токтотуу үчүн бейджикти кайра скандаңыз

7 -кадам:

Сессияңызды жана сессиядагы деталдуу маалыматтарды көрүү үчүн кириңиз

Сунушталууда: