Mundarija:

Skate-o-metr: 7 qadam (rasmlar bilan)
Skate-o-metr: 7 qadam (rasmlar bilan)

Video: Skate-o-metr: 7 qadam (rasmlar bilan)

Video: Skate-o-metr: 7 qadam (rasmlar bilan)
Video: Pubgchila bormi? #appleuzb #pubg #shorts 2024, Noyabr
Anonim
Skate-o-metr
Skate-o-metr

Men Howest Kortrijk talabasiman. Loyihani tuzishimiz kerak bo'lgan o'qituvchilarga o'z mahoratimizni ko'rsatish uchun men skeytbordim uchun RFID skaneri bilan odometr va tezlik o'lchagichni yaratishni tanladim. Men bu loyihani qanday amalga oshirganimni aytib beraman.

Men konkida uchishni va sayr qilishni yaxshi ko'rganim uchun shunday fikrga keldim. Men sayohat qilayotganimda, qancha masofani bosib o'tganimni va tezligimni ko'rish juda qulay bo'lardi.

Shuni yodda tutingki, bu prototip.

1 -qadam: komponentlar

Komponentlar

Men ushbu loyihani yaratish uchun quyidagi komponentlardan foydalandim:

  • Skeytbord
  • Potentsiometr
  • LCD
  • Zal effekti sensori
  • 10k Ohm qarshilik
  • Malinali pi
  • Arduino Nano
  • Jumper sim (urg'ochi - erkak)
  • Jumper sim (Raspberry Pi)
  • Jumper sim (erkakdan erkakgacha)
  • PCB
  • RFID skaneri
  • RFID belgisi
  • Powerbank

Havolalar va narxlar uchun BillOfMaterials -ga qarang

2 -qadam: simlarni ulash

Ulanish
Ulanish

Zalda 3 ta pin bor: VCC, GND va chiqish, er GND ga o'tadi. VCC 3.3V ga va bu misoldagi chiqish GPIO 26 ga o'tadi. 10K Ohmli rezistor chiqishni yuqori tortadi.

Nishonlarni o'qish uchun men malina pi va arduino nano o'rtasida USB orqali ketma -ket muloqotdan foydalanaman. Bu rasmda emas, lekin kerak!

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

3 -qadam: ma'lumotlar bazasi sxemasi

Ma'lumotlar bazasi sxemasi
Ma'lumotlar bazasi sxemasi

Mening ma'lumotlar bazamda 3 ta jadval mavjud:

  • Foydalanuvchilar
  • Sessiya
  • Ma'lumotlar

Har bir foydalanuvchi ma'lumotlarni alohida kuzatishi mumkin. Sessiyada ma'lumotlar bor, shuning uchun sessiya davom etayotgan vaqtda siz qanday tezliklarga erishganingizni bilasiz.

4 -qadam: Arduino Nano -ni sozlang

Arduino Nano -ni sozlang
Arduino Nano -ni sozlang
Arduino Nano -ni sozlang
Arduino Nano -ni sozlang
Arduino Nano -ni sozlang
Arduino Nano -ni sozlang

Avval arduino nano -ni USB kabeli orqali kompyuteringizga qo'ying. Yuklash uchun to'g'ri arduino va to'g'ri USB portini tanlang.

Keyin RFID nishonini o'qish uchun foydalanadigan kutubxonani qo'shishimiz kerak. "Rfid-master" ni yuklab oling va eskizga o'ting, kutubxonani qo'shing va keyin. ZIP kutubxonasini qo'shing. Yangi yuklab olingan zip -ga o'ting va uni ishlating, u avtomatik ravishda o'rnatiladi. Shundan so'ng, mening "RFID_Read.ino" tahririni yuklayman, bir vaqtning o'zida ctrl + O tugmachasini bosing va ushbu faylga o'ting va uni oching.

Agar siz yuqorida ko'rsatilgan barcha amallarni bajargan bo'lsangiz, faylni tekshirishingiz mumkin. Agar u birinchi marta xato qilsa, yana bir bor urinib ko'ring. Agar bu muvaffaqiyatli bo'lsa, uni arduino -ga yuklashingiz mumkin. Ctrl+shift+m yorliqlaridan foydalanib, ketma -ket monitorni ochishingiz mumkin. Siz bu erda faylni sinab ko'rishingiz mumkin. Agar test muvaffaqiyatli bo'lsa, arduino -ni ajratib, uni malina pi -ning USB portiga ulashingiz mumkin.

5 -qadam: Raspberry Pi -ni sozlang

Ushbu bosqichlarda biz malina pi ni ma'lumotlar bazasi va veb -server sifatida o'rnatamiz.

Bu misolda men "men" foydalanuvchisini ishlataman, agar siz boshqa foydalanuvchidan foydalansangiz, konfiguratsiya fayllarini o'zgartirish kerak, buni yodda saqlang!

1. Foydalanuvchi yarating:

O'zgaruvchini yarating

pieter@rpipieter: ~ $ user = men

Foydalanuvchini sudo qilish va barcha guruhlarga qo'shish

guruhlar = $ (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}

Hisobga kiring

pieter@rpipieter: ~ $ su - men

Parol: men@my-rpi: ~ $

2. Wi -Fi tarmog'iga ulaning

me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Parol' | wpa_passphrase 'Tarmoq nomi' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 root@rpipieter -ni qayta sozlang: ~# chiqish

Internet ishlayotganligini tekshiring

root@rpipieter: ~# wget google.com

3. Malina pi ni dolzarb qilish va kerakli paketlarni o'rnatish

me@my-rpi: ~ $ sudo apt yangilanishi

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 qayta ishga tushiring -h

4. Mening github omborini klonlash

men@rpipieter: ~ $ git klon

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

5. Virtual muhitni yaratish

Bu buyruqlar bajarilganda, ko'plab paketlar o'rnatiladi, bunga biroz vaqt ketishi mumkin.

me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m pip o'rnatish-pip setuptools g'ildiragini virtualizatsiya qilish

me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m venv --system-site-packages env (env) me@rpipieter: ~/skate-o-meter/skateometer $ python -m pip mysql- ni o'rnatish ulagich-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-ulagich-python passlib pyserial pyjwt RPi. GPIO

6. Ma'lumotlar bazasini va foydalanuvchilarni yaratish

Biz MySQL ma'lumotlar bazasidan foydalanmoqdamiz

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

pieter@rpipieter: ~ $ sudo mysql

Keyin nusxa ko'chiring, joylashtiring

GRANT SELECT, INSERT, UPDATE, O'CHIRISH *. * TO 'som-data'@'localhost' ga; 'som-data'@'localhost' = PASSWORD ('sensor9810') uchun parolni o'rnating; mysql.user -dan * ni tanlang; 'Som9-admin'@'localhost' Foydalanuvchisini 'admin9810' tomonidan aniqlang; 'Som9-web'@'localhost' USET 'WEB9810' BILAN ISHLAB CHIQARING; "Som-sensor"@'localhost' identifikatori 'sensor9810' foydalanuvchisini yarating; Ma'lumotlar bazasini yaratish skateometerdb; Skateometerdb-dagi barcha imtiyozlarni berish.* Dan 'som-admin'@'localhost' ga GRANT OPSIYASI BILAN; GRANT SELECT, INSERT, UPDATE, O'chirish skateometerdb.* TO 'som-web'@'localhost' ga; GRANT SELECT, INSERT, UPDATE, O'chirish skateometerdb.* TO 'som-sensor'@'localhost'; YUQARISH IMKONIYATLARI;

Keyin biz aloqalar bilan mavjud ma'lumotlar bazasi sxemasini qo'shamiz.

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

7. Xizmatlar

Bu erda biz konfiguratsiya fayllarimizdan nusxa ko'chiramiz va xizmatlarni yoqish uchun papkani qayta yuklaymiz

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

Endi biz malina pi ni har safar boshlaganimizda, u avtomatik ravishda ishga tushishi uchun xizmatlarni yoqamiz.

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

Symetlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service yaratildi. me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl som-data.service-ni yoqish 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 -metr/skateometer $ sudo systemctl nginx.service -ni qayta ishga tushiring

6 -qadam: Uy -joy + zal

Uy -joy + zal
Uy -joy + zal

Uy -joy

Birinchidan, men skeytbordda LCD, potansiometr va buzzer uchun teshik qildim. Shundan so'ng, men LCD, potentsiometr va tenglikni lehim qildim. Keyin men 40 pinli RPI uchun o'tish simidan foydalanardim. Men bir tomonini malina pi ga qo'ydim, ikkinchi yarmini kesib tashladim, biz bu tomonni lehimlash uchun ishlatamiz. "Rpi-kabel" faylida siz qaysi simni lehimlashingiz kerakligini ko'rishingiz mumkin.

Qopqoq uchun men eski burilish qutisini ishlatardim, unga chekilgan kabel va qutiga o'tish simlari kirishi uchun teshiklar qo'ydim.

Men qutini skeytbord ostidagi vint bilan ushlab turaman. Qutiga men hamma narsani joylashtirdim, shuning uchun hammasi joyida bo'lishi uchun vintlardek va kauchuklardan foydalanardim. Bu narsalarni olib tashlashni osonlashtiradi.

RFID qutining yoritilgan joyiga o'rnatiladi va uni ziptirlar bilan ushlab turadi, men duch kelgan muammo shundaki, ba'zida u skaner qilmagan, lekin ba'zi o'zgarishlar bilan men uni ishlaganman.

Zal effekti sensori

Avval g'ildiragimni teshib, ichiga magnit qo'ydim.

Zal uchun 3 ta o'tish simlari ishlatiladi (erkakdan erkakgacha), men ularni tenglikni lehimlab qo'ydim, shuningdek zalning o'zida. Men yuk mashinamga ziptirlar bilan zal sensori o'rnatdim. Magnit va sensorning to'g'ri hizalanganligiga ishonch hosil qiling, aks holda u har doim ham pulsni qayd etmaydi.

7 -qadam: dasturni ishga tushirish

1 -qadam:

Malinani va quvvat bankini ulang.

2 -qadam:

Dastur boshlanishini kuting, buni LCD displeyda kuzatishingiz mumkin. Siz IP-manzilni ko'rasiz, bu IP-manzilga o'ting.

3 -qadam:

Foydalanuvchi yarating, buni ro'yxatdan o'tish orqali qilishingiz mumkin. Belgining UIDini LCD displeyda ko'rish uchun siz nishonni skanerlashingiz kerak.

4 -qadam:

Agar siz foydalanuvchi yaratgan bo'lsangiz, nishoningizni skanerlashingiz mumkin va sessiya boshlanadi.

5 -qadam:

Atrofda sayohat qiling

6 -qadam:

Seansni to'xtatish uchun nishonni qayta skanerlang

7 -qadam:

Sessiya va batafsil ma'lumotlarni ko'rish uchun tizimga kiring

Tavsiya: