Tabla de contenido:

Tablero de instrumentos de motocicleta Raspberry Pi: 9 pasos (con imágenes)
Tablero de instrumentos de motocicleta Raspberry Pi: 9 pasos (con imágenes)

Video: Tablero de instrumentos de motocicleta Raspberry Pi: 9 pasos (con imágenes)

Video: Tablero de instrumentos de motocicleta Raspberry Pi: 9 pasos (con imágenes)
Video: Control de un led RGB a través de Internet usando Raspberry Pi, Arduino y Processing 2024, Noviembre
Anonim
Tablero de la motocicleta Raspberry Pi
Tablero de la motocicleta Raspberry Pi

Como estudiante de tecnología multimedia y de comunicación en Howest Kortrijk, tuve que hacer mi propio proyecto de IoT. Esto combinaría todos los módulos seguidos en el primer año en un gran proyecto. Como conduzco mucho mi motocicleta en mi tiempo libre, decidí usar mis habilidades adquiridas en MCT para construir algo para mi motocicleta: un tablero inteligente.

MotoDash es un tablero con tecnología Raspberry Pi diseñado para motociclistas fanáticos que le da al conductor la capacidad de rastrear su desempeño.

¿Cuáles son las características de este panel?

  • Visualización del ángulo de inclinación actual
  • Ver la aceleración actual
  • Capacidad para controlar la temperatura del aceite
  • Cambia automáticamente al tema oscuro cuando conduces en la oscuridad
  • Registre los datos de sus viajes y vea sus propias estadísticas

Suministros

Unidad de computación principal:

Raspberry Pi Este es el controlador principal del sistema

Electrónica:

  • Cargador USB para motocicleta 12V-5V Fuente de alimentación principal para el RPi
  • Relé de 4 pines con fusible 12V Interruptor para encender / apagar el circuito de alimentación del RPi
  • Placa de pruebas con cables de puente (opcional) para pruebas y creación de prototipos

  • Un conjunto de resistencias

    Diferentes colores de alambre de 0,2 mm

  • Breakout Pi plus Esta es una placa de creación de prototipos donde puede soldar todos sus componentes. Está hecho para encajar directamente en la parte superior de la Raspberry Pi, por lo que las dimensiones del proyecto se mantienen al mínimo.

Sensores y módulos:

  • Sensor de temperatura de 1 cable resistente al agua DS18B20 Sensor de temperatura del aceite
  • Acelerómetro giroscópico de 3 ejes MPU6050 Sensor de inclinación / aceleración
  • Resistencia dependiente de la luz (LDR)
  • MCP3008 - ADC de 8 canales y 10 bits con interfaz SPI

    Pantalla TFT SPI (o cualquier otra pantalla lcd que se adapte a sus necesidades)

    LED RGB

Caja:

  • Caja de plástico
  • Estuche de frambuesa pi

Instrumentos:

  • Soldador y soldadura
  • Tornillos y espaciadores de 2,5 mm
  • Conectores de cable a prueba de agua
  • Super pegamento

Paso 1: creación de prototipos

Creación de prototipos
Creación de prototipos
Creación de prototipos
Creación de prototipos

Antes de hacer que todo sea permanente, juntaremos el proyecto en una placa de pruebas. Este paso se puede omitir si está absolutamente seguro de que no cometerá errores. El esquema eléctrico / de placa se puede encontrar en el PDF a continuación. Junte el circuito exactamente como se describe. Asegúrese de usar solo el pin de 3.3V y no el pin de 5V en el RPi. Además, antes de encender la Raspberry Pi, verifique su circuito. ¡Asegúrate de que no haya pantalones cortos!

Paso 2: preparación de la Raspberry Pi

Preparando la Raspberry Pi
Preparando la Raspberry Pi

En primer lugar, vamos a configurar la Raspberry Pi. La Raspberry Pi es una mini computadora capaz de ejecutar su propio sistema operativo. Para este proyecto, es responsable de procesar sensordata, alojar el sitio web, ejecutar el backend y la base de datos,…

1. Instale una imagen Raspbian personalizada

La imagen proporcionada ya contiene los paquetes de software necesarios para impulsar este proyecto:

  • Apache para la interfaz del sitio web
  • MariaDB para la base de datos
  • PhpMyAdmin para manipular la base de datos
  • Permisos personalizados para evitar problemas

La imagen personalizada se puede descargar desde aquí.

Puede encontrar un tutorial para instalar imágenes aquí:

Una vez instalada la imagen, conecte la Raspberry Pi a su PC con un cable Ethernet. Ahora puede usar un cliente SSH para conectarse a él en la dirección IP 169.254.10.1

Es una buena práctica establecer inmediatamente una nueva contraseña usando el comando passwd

2. Configuración de AP inalámbrico

Cuando el proyecto esté terminado, queremos poder conectarnos al RPi a través de wifi, así que vamos a convertirlo en un AP inalámbrico. Puede encontrar un tutorial para esto aquí.

Solo necesita seguir este tutorial hasta el paso 7. El paso 8 no es necesario, ya que no necesitamos unir una conexión a Internet, sino crear una red independiente.

3. Habilitación de interfaces

Dirígete a raspi-config

sudo raspi-config

Vaya a las opciones de interfaz y habilite 1-wire, SPI e I2C y reinicie el Pi

3. Configuración de controladores para la pantalla

Inicializando la pantalla

Edite el archivo / etc / modules

sudo nano / etc / modules

Agregue las siguientes 2 líneas

spi-bcm2835fbtft_device

Ahora edite /etc/modprobe.d/fbtft.conf

sudo nano /etc/modprobe.d/fbtft.conf

Agrega la siguiente línea

opciones fbtft_device name = tm022hdh26 gpios = reset: 25, dc: 24, led: 18 rotate = 90 speed = 80000000 fps = 60

Reinicia la Pi. Si ve que la luz de fondo de la pantalla se enciende, todo ha ido bien. Esto inicializará la pantalla cada vez que se inicie el Pi, sin embargo, ahora solo mostrará una pantalla negra. Para mostrar el contenido del Pi en la pantalla, debemos copiar el contenido de la pantalla principal en la pequeña pantalla LCD. Usaremos un servicio llamado 'fbcp' para esto.

Instalación del servicio fbcp

sudo apt-get install cmake

clon de git

cd rpi-fbcp

compilación de mkdir

construcción de cd /

cmake..

hacer

sudo instalar fbcp / usr / local / bin / fbcp

Ahora hemos instalado el servicio. Sin embargo, dado que estamos usando el Pi sin cabeza, no hay una pantalla disponible para copiar contenidos. Para forzar al Pi a mostrar el contenido de la pantalla, edite /boot/config.txt

sudo nano /boot/config.txt

Busque y descomente o agregue las siguientes líneas a este archivo:

hdmi_force_hotplug = 1

hdmi_cvt = 640480 60 0 0 0 0

display_rotate = 0

hdmi_group = 2

hdmi_mode = 87

Reinicie el RPi y pruebe el servicio fbcp escribiendo fbcp en la consola. Ahora debería ver el contenido de la pantalla en la pantalla LCD.

Ejecutando fbcp al inicio

Edite /etc/rc.local y agregue la siguiente línea entre la dirección IP y la línea de salida

fbcp y

Ahora la pantalla debería encenderse cada vez que se inicia el RPi

Paso 3: base de datos

Base de datos
Base de datos

Para registrar y almacenar sensordata he diseñado mi propia base de datos que contiene 4 tablas. El diagrama EER se muestra en la imagen de arriba.

1. Dispositivos

Esta tabla contiene todos los sensores. Describe el nombre del sensor, la descripción y la unidad de medida. Esta tabla tiene una relación de uno a muchos con las acciones de la tabla, ya que en mi caso, el sensor acelero puede realizar diferentes tareas.

2. Acciones

Esta tabla almacena acciones para diferentes sensores. Una acción siempre está vinculada a un sensor en particular. Por ejemplo: la acción 'TEMP' está vinculada al dispositivo que mide la temperatura. Este sería el sensor de temperatura de 1 cable.

3. Historia

Esta tabla contiene todos los registros de sensores. Cada registro tiene una identificación de acción, un valor, una marca de tiempo y una identificación de viaje.

4. Paseos

Esta tabla almacena diferentes atracciones. Cada vez que el usuario inicia un nuevo viaje, se realiza una nueva entrada en esta tabla.

Para obtener esta base de datos en su Raspberry Pi, diríjase a mi GitHub y clone / descargue el repositorio. En la base de datos encontrará 2 archivos.sql. Ejecútelos en PhpMyAdmin o MySQL workbench. Ahora la base de datos debería estar en tu RPi.

Paso 4: backend

Si aún no lo ha hecho, diríjase a mi GitHub y clone / descargue el repositorio. En la carpeta Backend encontrará el backend completo del proyecto.

La carpeta contiene clases para leer sensores en / helpers, archivos para comunicarse con la base de datos en / repositories, y la aplicación principal se encuentra en la raíz con el nombre app.py.

Instalación de paquetes de Python

Antes de intentar ejecutar algo, primero debemos instalar algunos paquetes para Python. Dirígete a la terminal de tu RPi y escribe los siguientes comandos:

pip3 instalar mysql-connector-python

pip3 instalar flask-socketio

pip3 instalar flask-cors

pip3 instalar gevent

pip3 instalar gevent-websocket

NOTA IMPORTANTE: si ha cambiado su contraseña Mariadb / Mysql, ¡cambie la contraseña en config.py!

¡Prueba el backend

Ejecute app.py con el intérprete de python3 (/ usr / bin / python3). Asegúrese de que no haya errores.

Ejecutando el backend en el arranque

Edite motoDash_backend.service y cambie YOURFILEPATH por la ruta donde se guarda el repositorio.

Ahora copie este archivo en / etc / systemd / system /

sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.

Ahora el backend se iniciará automáticamente cada vez que se inicie el RPi.

Paso 5: Frontend

Interfaz
Interfaz
Interfaz
Interfaz

Dirígete al repositorio de GitHub. Copie el contenido del directorio de Frontend en / var / www / html.

Esto es todo lo que debe hacer para que la interfaz funcione. Esta carpeta contiene todas las páginas web, estilos y scripts para la interfaz web. También se comunica con el backend. Para probar si todo funciona como debería, asegúrese de estar conectado a su RPi y escriba la dirección IP del RPi en un navegador. Debería ver la página de inicio de la interfaz web.

Nota: El sitio web es receptivo, por lo que puede usarlo tanto en dispositivos móviles como en computadoras de escritorio.

Paso 6: Visualización del tablero en la pantalla

Visualización del tablero en la pantalla
Visualización del tablero en la pantalla

La interfaz tiene su propia página web oculta que solo se utiliza para la pantalla pequeña. Haremos que el Pi arranque automáticamente en este sitio web en modo de pantalla completa.

Asegúrese de que el RPi esté configurado para iniciar sesión automáticamente en el escritorio en raspi-config en las opciones de arranque

sudo raspi-config

Ahora vaya a la carpeta de configuración oculta y cree un nuevo archivo allí

cd.config

sudo mkdir -p lxsession / LXDE-pi

sudo nano lxsession / LXDE-pi / inicio automático

Agregue las siguientes líneas en este archivo y guarde

@xscreensaver -no-splash

@xset s apagado

@xset -dpms

@xset s noblank

@ chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito

Ahora, el Pi debería arrancar en esta página web cada vez

Paso 7: soldar la electrónica

Soldar la electrónica
Soldar la electrónica
Soldar la electrónica
Soldar la electrónica
Soldar la electrónica
Soldar la electrónica
Soldar la electrónica
Soldar la electrónica

Tome la placa de ruptura y coloque sus componentes en ella de una manera estructurada. No discutiré el diseño de cómo soldé los componentes, ya que hice un trabajo bastante pobre. Usé encabezados de pines separados en la placa, de modo que solo necesitaba conectar los sensores y módulos al pin correcto. ¡Asegúrate de saber qué pin es para qué!

Algunos consejos al soldar:

  • Utilice cables aislados cuando cruce distancias más grandes. Lo último que quieres es cortocircuitos en tu circuito.
  • Después de soldar un componente o cable, verifique su continuidad con un multímetro. También verifique regularmente si hay cortocircuitos.
  • ¡No use demasiada o muy poca soldadura!
  • Si no sabe cómo soldar, practíquelo primero en otra placa de creación de prototipos. Puede encontrar un tutorial sobre soldadura aquí.

Ahora suelde los cables lo suficientemente largos a los sensores y coloque un poco de envoltura retráctil alrededor de ellos para asegurarse de que todo no esté en cortocircuito y limpio.

Cuando haya terminado, verifique dos veces si hay cortocircuitos o conexiones defectuosas, y verifique cada conexión con el esquema eléctrico si es la conexión correcta. Una vez que esté seguro de que todo está hecho correctamente, continúe y coloque la placa de ruptura en el RPi, atorníllela con algunos tornillos y separadores de 2.5 mm. Conecte los sensores a los pines correctos y pruébelos todos usando el sitio web.

Paso 8: fuente de alimentación

Para alimentar la Raspberry Pi vamos a utilizar un adaptador usb de 12V-5V. Este adaptador se conectará a la batería de la motocicleta. Para asegurarnos de que el RPi se enciende cuando se enciende el interruptor de encendido, vamos a usar un relé. El relé cerrará el circuito de alimentación del RPi cuando detecte un voltaje de la luz trasera (la luz trasera siempre se enciende al encender el encendido).

Para obtener un tutorial más detallado sobre esto, consulte esta página: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -controladores.16921 /

Paso 9: Vivienda

Alojamiento
Alojamiento
Alojamiento
Alojamiento
Alojamiento
Alojamiento

Vivienda de la exhibición

Para la pantalla, tome una caja de plástico duro del tamaño de la pantalla. Haga un orificio cuadrado del tamaño de la pantalla y orificios correspondientes para atornillar la pantalla. En la parte delantera, debe perforar 2 orificios más para el LED RGB y el LDR.

Monté esta caja en la parte superior de un soporte para teléfono inteligente con un perno.

Sensor de temperatura

Para alojar el sensor de temperatura, imprimí en 3D un indicador de aceite que se ajusta a mi motocicleta.

Frambuesa pi

Monte la propia Raspberry Pi en un lugar seguro dentro de la motocicleta, la coloqué debajo de uno de los guardabarros usando unas correas de velcro. Y lo protegí de los elementos usando una carcasa y algo de plástico.

Acelerómetro

Monte el acelerómetro en un lugar seguro, preferiblemente en el propio bastidor de la motocicleta.

Nota:

No necesitas tener exactamente la misma vivienda que yo, eres libre de terminarla como quieras. Solo asegúrese de que los componentes electrónicos estén protegidos de la lluvia y el polvo.

Recomendado: