Tabla de contenido:

Skate-o-Meter: 7 pasos (con imágenes)
Skate-o-Meter: 7 pasos (con imágenes)

Video: Skate-o-Meter: 7 pasos (con imágenes)

Video: Skate-o-Meter: 7 pasos (con imágenes)
Video: Como girar #skate #short #patineta #skateboard 2024, Mes de julio
Anonim
Skate-o-Meter
Skate-o-Meter

Soy estudiante en Howest Kortrijk. Para mostrar nuestras habilidades a los lectores que necesitábamos construir un proyecto, elegí crear un odómetro y un velocímetro para mi patineta con un escáner RFID. En este instructivo, voy a decir cómo hice este proyecto.

Se me ocurrió esta idea porque me gusta patinar y navegar. Mientras navego, sería útil ver cuánta distancia he recorrido y ver mi velocidad.

Tenga en cuenta que este es un prototipo.

Paso 1: componentes

Componentes

Usé los siguientes componentes para crear este proyecto:

  • Patineta
  • Potenciómetro
  • LCD
  • Sensor de efecto Hall
  • Resistencia de 10k ohmios
  • Frambuesa pi
  • Arduino Nano
  • Cable de puente (hembra a macho)
  • Cable de puente (Raspberry Pi)
  • Cable de puente (macho a macho)
  • tarjeta de circuito impreso
  • Escáner RFID
  • Insignia RFID
  • Banco de energía

Consulte BillOfMaterials para obtener enlaces y precios

Paso 2: cableado

Alambrado
Alambrado

La sala tiene 3 pines: un VCC, un GND y una salida. La tierra va a un GND. El VCC a 3.3V y la salida en este ejemplo va a GPIO 26. Una resistencia de 10K Ohm eleva la salida.

Utilizo la comunicación en serie a través del USB entre la raspberry pi y el arduino nano para leer las insignias. Esto no está en la imagen, ¡pero es obligatorio!

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

Paso 3: esquema de la base de datos

Esquema de base de datos
Esquema de base de datos

Mi base de datos tiene 3 tablas:

  • Usuarios
  • Sesión
  • Datos

Cada usuario puede realizar un seguimiento de los datos por separado. Una sesión tiene datos para que sepa qué tan rápido avanzó en ciertos puntos mientras se desarrollaba la sesión.

Paso 4: configurar Arduino Nano

Configurar Arduino Nano
Configurar Arduino Nano
Configurar Arduino Nano
Configurar Arduino Nano
Configurar Arduino Nano
Configurar Arduino Nano

Primero coloque su arduino nano en su PC a través del cable USB. Seleccione el arduino correcto y el puerto usb correcto para cargar.

A continuación, debemos agregar la biblioteca que uso para leer la tarjeta RFID. Descargue 'rfid-master' y vaya al boceto, incluya la biblioteca y luego agregue la biblioteca. ZIP. Vaya al zip que acaba de descargar y use este, se instalará automáticamente. Después de eso, descargue mi 'RFID_Read.ino' editado, presione ctrl + O agregue el mismo tiempo y vaya a este archivo y ábralo.

Si realizó todos estos pasos anteriores, puede verificar el archivo. Si falla la primera vez, inténtelo una vez más. Si tiene éxito, puede cargarlo en su arduino. Usando el atajo ctrl + shift + m puede abrir el monitor serial. Puede probar el archivo aquí. Si la prueba tiene éxito, puede desenchufar el arduino y enchufarlo en un puerto usb de la raspberry pi

Paso 5: configura la Raspberry Pi

En estos pasos, configuraremos el raspberry pi como base de datos y servidor web.

EN ESTE EJEMPLO, UTILIZO EL USUARIO 'yo' SI USTED UTILIZA OTRO USUARIO QUE NECESITA CAMBIAR LOS ARCHIVOS DE CONFIGURACIÓN, ¡TENGA ESTO EN MENTE!

1. Cree un usuario:

Crea una variable

pieter @ rpipieter: ~ $ usuario = yo

Haciendo que el usuario sudo y agregando a todos los grupos

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

Iniciar sesión en la cuenta

pieter @ rpipieter: ~ $ su - yo

Contraseña: me @ my-rpi: ~ $

2. Conéctese con el WiFi

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

Comprueba si Internet funciona

root @ rpipieter: ~ # wget google.com

3. Actualización de la Raspberry Pi e instalación de los paquetes necesarios

yo @ my-rpi: ~ $ sudo apt update

yo @ 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 reiniciar -h ahora

4. Clonar mi repositorio de github

yo @ rpipieter: ~ $ git clone

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

5. Creando el entorno virtual

Mientras se ejecutan estos comandos, se instalarán muchos paquetes, esto puede llevar algún tiempo.

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 pyserial pyjwt RPi. GPIO

6. Creación de la base de datos y los usuarios

Estamos usando la base de datos mysql

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

pieter @ rpipieter: ~ $ sudo mysql

Luego copia, pega esto

GRANT SELECT, INSERT, UPDATE, DELETE ON *. * TO 'som-data' @ 'localhost'; ESTABLECER CONTRASEÑA PARA 'som-data' @ 'localhost' = PASSWORD ('sensor9810'); seleccione * de mysql.user; CREAR USUARIO 'som-admin' @ 'localhost' IDENTIFICADO POR 'admin9810'; CREAR USUARIO 'som-web' @ 'localhost' IDENTIFICADO POR 'web9810'; CREAR USUARIO 'som-sensor' @ 'localhost' IDENTIFICADO POR 'sensor9810'; CREAR BASE DE DATOS skateometerdb; OTORGAR TODOS LOS PRIVILEGIOS EN skateometerdb. * A 'som-admin' @ 'localhost' CON OPCIÓN DE OTORGAMIENTO; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb. * TO 'som-web' @ 'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON skateometerdb. * TO 'som-sensor' @ 'localhost'; PRIVILEGIOS DE FLUSH;

A continuación, agregaremos el esquema de base de datos existente con relaciones.

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

7. Servicios

Aquí copiamos nuestros archivos de configuración y recargamos la carpeta para que podamos habilitar los servicios

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

Ahora vamos a habilitar los servicios para que cada vez que iniciemos el raspberry pi estos se inicien automáticamente con él.

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

Enlace simbólico creado /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 Enlace simbólico creado /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 restart nginx.service

Paso 6: Vivienda + Hall

Vivienda + Hall
Vivienda + Hall

Alojamiento

Primero hice un agujero en mi patineta para la pantalla LCD, el potenciómetro y el timbre. Después de eso, soldé la pantalla LCD, el potenciómetro y el zumbador en la PCB. Luego utilicé un cable de puente para el RPI, el que tiene 40 pines. Pongo un lado en la frambuesa pi y la otra mitad lo corto, este lado lo vamos a usar para soldar. En el archivo 'rpi-cable' puede ver dónde necesita soldar qué cable.

Para la carcasa utilicé una vieja caja curver, le puse algunos agujeros para un cable ethernet y para que el cable de puente venga en la caja.

Guardo la caja debajo de la patineta con un tornillo. Dentro de la caja arreglé todo, para que encajara y también usé tornillos y algunas gomas para mantener todo en su lugar. Esto hace que sacar cosas sea más fácil.

La RFID está montada en la luz de la caja y se mantiene en su lugar con neumáticos de cremallera, un problema que encontré fue que a veces no escaneaba, pero con algunos cambios lo hice funcionar.

Sensor de efecto Hall

Primero hice un agujero en mi rueda y le puse un imán.

Para la sala se utilizan 3 cables de puente (macho a macho). Los solté en mi PCB también en la propia sala. Monté el sensor de pasillo en mi camión con algunos neumáticos. Asegúrese de que el imán y el sensor estén bien alineados, de lo contrario, no siempre registrará el pulso.

Paso 7: iniciar la aplicación

Paso 1:

Enchufa la frambuesa y el banco de energía.

Paso 2:

Espere hasta que comience el programa, puede seguir esto en la pantalla LCD. Verá la dirección IP, vaya a esta dirección IP.

Paso 3:

Crea un usuario, puedes hacerlo registrándote. Debe escanear la placa para ver su UID de la placa en la pantalla LCD.

Paso 4:

Si creó un usuario, puede escanear su credencial y se iniciará una sesión.

Paso 5:

Ir de crucero

Paso 6:

Escanee la insignia nuevamente para detener la sesión

Paso 7:

Inicie sesión para ver su sesión y los datos detallados de la sesión

Recomendado: