Tabla de contenido:
- Suministros
- Paso 1: creación de prototipos
- Paso 2: preparación de la Raspberry Pi
- Paso 3: base de datos
- Paso 4: backend
- Paso 5: Frontend
- Paso 6: Visualización del tablero en la pantalla
- Paso 7: soldar la electrónica
- Paso 8: fuente de alimentación
- Paso 9: Vivienda
Video: Tablero de instrumentos de motocicleta Raspberry Pi: 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
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
- 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.
Un conjunto de resistencias
Diferentes colores de alambre de 0,2 mm
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
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
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
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
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
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
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
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:
Amplificador impreso en 3D para instrumentos musicales eléctricos: 11 pasos (con imágenes)
Un amplificador impreso en 3D para instrumentos musicales eléctricos .: Definición del proyecto. Espero hacer un amplificador imprimible para usar con un violín eléctrico o cualquier otro instrumento eléctrico. amplificador activo y manténgalo pequeño
Tablero de instrumentos COVID-19 (simple y fácil): 4 pasos
Panel de control COVID-19 (simple y fácil): en todas partes hay un gran brote del nuevo virus COVID-19. Se hizo necesario vigilar el escenario actual del COVID-19 en el país. Entonces, estando en casa, este fue el proyecto en el que pensé: " Un panel de información " - A Da
Tablero MXY - Tablero de robot de dibujo de trazador XY de bajo presupuesto: 8 pasos (con imágenes)
Tablero MXY - Tablero de robot de dibujo de plotter XY de bajo presupuesto: Mi objetivo era diseñar el tablero mXY para hacer que la máquina de dibujo del plotter XY sea de bajo presupuesto. Así que diseñé una placa que se lo pone más fácil a quienes quieran realizar este proyecto. En el proyecto anterior, mientras usaba 2 motores paso a paso Nema17, esta placa u
HAGA SU PROPIO TABLERO DIGITAL BASADO EN GPS PARA MOTOCICLETA ELÉCTRICA O EBIKE: 13 Pasos
HAGA SU PROPIO TABLERO DIGITAL BASADO EN GPS PARA EBIKE O MOTOCICLETA ELÉCTRICA: HOLA A TODOS Esta vez se me ocurrió un nuevo instructable con pantalla independiente y registrador usando arduino mega 2560 y pantalla Lcd Nextion. en sdcardand por supuesto projec
Tablero de instrumentos de bicicleta eléctrica (EBike) y monitor de batería: 12 pasos (con imágenes)
Tablero de instrumentos de bicicleta eléctrica (EBike) y monitor de batería: este proyecto es un circuito Arduino que monitorea el voltaje y la corriente de la batería con un módulo ACS 712. Las medidas se comunican a través de Bluetooth con un módulo HC-05 a un dispositivo Android. Básicamente, vuelves a cablear la conexión negativa entre y