Cuprins:

Skate-o-Meter: 7 pași (cu imagini)
Skate-o-Meter: 7 pași (cu imagini)

Video: Skate-o-Meter: 7 pași (cu imagini)

Video: Skate-o-Meter: 7 pași (cu imagini)
Video: ⛸️ Cu PATINE de ZĂPADĂ în CONGELATOR * Cel mai mare din lume! 2024, Noiembrie
Anonim
Skate-o-Meter
Skate-o-Meter

Sunt student la Howest Kortrijk. Pentru a le arăta abilităților lectorilor de care aveam nevoie pentru a construi un proiect, am ales să creez un contor și vitezometru pentru skateboard-ul meu cu un scaner RFID. În acest instructiv, sunt de acord să spun cum am făcut acest proiect.

Mi-a venit această idee pentru că îmi place să patinez și să fac o croazieră. În timp ce navighez, ar fi util să văd câtă distanță am parcurs și să vă văd viteza.

Rețineți că acesta este un prototip.

Pasul 1: Componente

Componente

Am folosit următoarele componente pentru a crea acest proiect:

  • Skateboard
  • Potențiometru
  • LCD
  • Senzor efect Hall
  • Rezistor 10k Ohm
  • Raspberry pi
  • Arduino Nano
  • Sârmă jumper (de la femeie la bărbat)
  • Sârmă jumper (Raspberry Pi)
  • Sârmă jumper (de la bărbat la bărbat)
  • PCB
  • Scaner RFID
  • Insignă RFID
  • Powerbank

Consultați BillOfMaterials pentru linkuri și preț

Pasul 2: Cablare

Cablare
Cablare

Sala are 3 pini: un VCC, un GND și o ieșire. Pământul merge la un GND. VCC la 3,3V și ieșirea din acest exemplu merge la GPIO 26. Un rezistor de 10K Ohm trage ieșirea la mare.

Folosesc comunicarea serială prin USB între raspberry pi și arduino nano pentru a citi insignele. Acest lucru nu este în imagine, dar este necesar!

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

Pasul 3: Schema bazei de date

Schema bazei de date
Schema bazei de date

Baza mea de date are 3 tabele:

  • Utilizatori
  • Sesiune
  • Date

Fiecare utilizator poate urmări datele separat. O sesiune are date, astfel încât să știți cât de repede ați parcurs anumite puncte în timp ce sesiunea se desfășura.

Pasul 4: Configurați Arduino Nano

Configurați Arduino Nano
Configurați Arduino Nano
Configurați Arduino Nano
Configurați Arduino Nano
Configurați Arduino Nano
Configurați Arduino Nano

Mai întâi introduceți arduino nano în computer prin intermediul cablului USB. Selectați arduino-ul potrivit și portul USB potrivit pentru încărcare.

În continuare trebuie să adăugăm biblioteca pe care o folosesc pentru citirea insignei RFID. Descărcați „rfid-master” și mergeți la schiță, includeți biblioteca și apoi adăugați biblioteca. ZIP. Accesați fișierul zip pe care tocmai l-ați descărcat și utilizați-l, acesta se va instala automat. După aceea, descărcați „RFID_Read.ino” editat, apăsați ctrl + O adăugați același timp și accesați acest fișier și deschideți-l.

Dacă ați făcut toți acești pași de mai sus, puteți verifica fișierul. Dacă bug-uri prima dată, încercați încă o dată. Dacă acest lucru este reușit, îl puteți încărca pe arduino. Utilizând comanda rapidă ctrl + shift + m puteți deschide monitorul serial. Puteți testa fișierul aici. Dacă testul este reușit, puteți deconecta arduino-ul și îl puteți conecta la un port USB al raspberry pi

Pasul 5: Configurați Raspberry Pi

În acești pași vom configura raspberry pi ca bază de date și server web.

ÎN ACEST EXEMPLU FOLOSESC UTILIZATORUL „eu” DACĂ UTILIZAȚI ALTUI UTILIZATOR TREBUIE SĂ SCHIMBAȚI CONFIGURĂRI, PĂSTRAȚI ACESTA!

1. Creați un utilizator:

Creați o variabilă

pieter @ rpipieter: ~ $ user = me

Făcând utilizatorul sudo și adăugând la toate grupurile

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

Conectați-vă la cont

pieter @ rpipieter: ~ $ su - me

Parola: eu @ my-rpi: ~ $

2. Conectați-vă cu WiFi

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

Verificați dacă internetul funcționează

root @ rpipieter: ~ # wget google.com

3. Actualizarea raspberry pi și instalarea pachetelor necesare

me @ my-rpi: ~ $ sudo apt update

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 reporniți -h acum

4. Clonați depozitul meu github

me @ rpipieter: ~ $ git clone

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

5. Realizarea mediului virtual

În timp ce efectuați aceste comenzi, vor fi instalate o mulțime de pachete, acest lucru poate dura ceva timp.

me @ 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- conector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib pyjwt pyserial RPi. GPIO

6. Crearea bazei de date și a utilizatorilor

Folosim baza de date mysql

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

pieter @ rpipieter: ~ $ sudo mysql

Apoi copiați, lipiți acest lucru

GRANT SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data' @ 'localhost'; SET PASSWORD FOR 'som-data' @ 'localhost' = PASSWORD ('sensor9810'); selectați * din mysql.user; CREAȚI UTILIZATOR 'som-admin' @ 'localhost' IDENTIFICAT DE 'admin9810'; CREAȚI UTILIZATOR „som-web” @ „localhost” IDENTIFICAT DE „web9810”; CREAȚI UTILIZATOR „som-sensor” @ „localhost” IDENTIFICAT DE „sensor9810”; CREATE DATABASE skateometerdb; ACORDAȚI TOATE PRIVILEGIILE PE skateometerdb. * Către „som-admin” @ „localhost” CU OPȚIUNE DE ACORDARE; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb. * TO 'som-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb. * TO 'som-sensor' @ 'localhost'; PRIVILEGII DE FLUSH;

Apoi vom adăuga schema de baze de date existentă cu relații.

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

7. Servicii

Aici copiem fișierele noastre de configurare și reîncărcăm folderul, astfel încât să putem activa serviciile

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

Acum vom activa serviciile, astfel încât, de fiecare dată când pornim raspberry pi, acestea să pornească automat cu el.

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

A fost creat linkul simbolic /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 Created 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 reporniți nginx.service

Pasul 6: Locuință + hol

Locuință + hol
Locuință + hol

Locuințe

Mai întâi am făcut o gaură în skateboard-ul meu pentru LCD, potențiometru și buzzer. După aceea am lipit LCD-ul, potențiometrul și buzzer-ul de pe PCB. Apoi am folosit un jumperwire pentru RPI, cel cu 40 de pini. Am pus o parte în zmeura pi și cealaltă jumătate am tăiat-o, pe această latură pe care o vom folosi să o lipim. În fișierul „rpi-cable” puteți vedea unde trebuie să lipiți ce fir.

Pentru carcasă am folosit o cutie curveră veche, am pus câteva găuri în ea pentru un cablu ethernet și pentru ca jumperwire să intre în cutie.

Țin cutia sub skateboard cu niște șuruburi. În interiorul cutiei am aranjat totul, astfel încât să se potrivească și am folosit și șuruburi și câteva cauciucuri pentru a menține totul la locul său. Acest lucru face ca scoaterea lucrurilor să fie mai ușoară.

RFID este montat la lumina cutiei și este ținut în loc cu ziptires, o problemă pe care am întâlnit-o a fost că uneori nu a scanat, dar cu unele modificări am făcut să funcționeze.

Senzor de efect Hall

Mai întâi am făcut o gaură în roată și am pus un magnet în ea.

Pentru hol se folosesc 3 fire jumper (de la bărbat la bărbat), le-am lipit și pe PCB-ul meu, precum și pe hol în sine. Am montat senzorul de hol pe camioneta mea cu niște ziptire. Asigurați-vă că magnetul și senzorul sunt aliniate bine, altfel nu va înregistra întotdeauna pulsul.

Pasul 7: Pornirea aplicației

Pasul 1:

Conectați zmeura și banca de alimentare.

Pasul 2:

Așteptați până când programul începe, puteți urmări acest lucru pe ecranul LCD. Veți vedea adresa IP, accesați această adresă IP.

Pasul 3:

Creați un utilizator, puteți face acest lucru înregistrându-vă. Trebuie să scanați insigna pentru a vedea UID-ul insignei pe ecranul LCD.

Pasul 4:

Dacă ați creat un utilizator, vă puteți scana insigna și va începe o sesiune.

Pasul 5:

Mergeți în croazieră

Pasul 6:

Scanați din nou insigna pentru a opri sesiunea

Pasul 7:

Conectați-vă pentru a vedea sesiunea și datele detaliate din sesiune

Recomandat: