Tabla de contenido:

TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo: 11 pasos (con imágenes)
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo: 11 pasos (con imágenes)

Video: TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo: 11 pasos (con imágenes)

Video: TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo: 11 pasos (con imágenes)
Video: EP11 - Plotter low cost para el barco, TUTORIAL con la Raspberry Pi y Open Plotter 2024, Noviembre
Anonim
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo
TripComputer - Computadora de viaje con GPS y módulo meteorológico para su vehículo

Un proyecto de frambuesa pi genial que utiliza el módulo de conexión de GPS y 2 pequeñas pantallas Digole para tener una computadora de navegación en su tablero.

Paso 1: flashear el disco duro RaspberriPi / instalar el software requerido (usando Ubuntu Linux)

Descarga "RASPBIAN JESSIE LITE VERSION"

Cree su nuevo disco duro para DashboardPI

Inserte la microSD en su computadora a través del adaptador USB y cree la imagen del disco usando el comando dd

Localice su tarjeta microSD insertada a través del comando df -h, desmóntela y cree la imagen del disco con el comando disk copy dd

$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678

$ umount / dev / sdb1

Precaución: asegúrese de que el comando sea completamente preciso, puede dañar otros discos con este comando

if = ubicación del archivo de imagen RASPBIAN JESSIE FULL VERSION de = ubicación de su tarjeta microSD

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (nota: en este caso, es / dev / sdb, / dev / sdb1 era una partición de fábrica existente en el microSD)

Configuración de su RaspberriPi

Inserte su nueva tarjeta microSD en el raspberrypi y enciéndalo con un monitor conectado al puerto HDMI

Acceso

usuario: pi pass: frambuesa

Cambie la contraseña de su cuenta por seguridad (desde la terminal)

sudo passwd pi

Habilite las opciones avanzadas de RaspberriPi (desde la terminal)

sudo raspi-config

Elija: 1 Expandir sistema de archivos

9 Opciones avanzadas

A2 Nombre de host cámbielo a "TripComputer"

A4 SSH Habilitar servidor SSH

A7 I2C Habilitar interfaz i2c

Habilitar el teclado inglés / estadounidense

sudo nano / etc / default / keyboard

Cambie la siguiente línea: XKBLAYOUT = "us"

Reinicie PI para que los cambios en la distribución del teclado o el cambio de tamaño del sistema de archivos surtan efecto

$ sudo shutdown -r ahora

Conéctese automáticamente a su WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Agregue las siguientes líneas para que su raspberrypi se conecte automáticamente al WiFi de su hogar (si su red inalámbrica se llama "linksys", por ejemplo, en el siguiente ejemplo)

network = {ssid = "linksys" psk = "CONTRASEÑA INALÁMBRICA AQUÍ"} Reinicie PI para conectarse a la red WiFi

$ sudo shutdown -r ahora

Ahora que su PI finalmente está en la red local, puede iniciar sesión de forma remota a través de SSH. Pero primero debe obtener la dirección IP que tiene actualmente.

$ ifconfig Busque "inet addr: 192.168. XXX. XXX" en la siguiente salida del comando para la dirección IP de su PI

Vaya a otra máquina e inicie sesión en su raspberrypi a través de ssh

$ ssh [email protected]. XXX. XXX

Comience a instalar los paquetes requeridos

$ sudo apt-get update && sudo apt-get upgrade

$ sudo apt-get install build-essential git gpsd gpsd-clients i2c-tools libi2c-dev python3 python3-pip python-dev python-gps python-Imaging python-pip python-smbus rpi.gpio vim python-psutil

$ sudo pip instalar RPi. GPIO

Actualizar la configuración de la zona horaria local

$ sudo dpkg-reconfigure tzdata

seleccione su zona horaria usando la interfaz

Configure el comando l del directorio simple [opcional]

vi ~ /.bashrc

agregue la siguiente línea:

alias l = 'ls -lh'

fuente ~ /.bashrc

Corregir el resaltado de sintaxis predeterminado de VIM [opcional]

sudo vi / etc / vim / vimrc

descomente la siguiente línea:

sintaxis activada

Paso 2: Suministrado necesario

Suministrado Necesario
Suministrado Necesario
Suministrado Necesario
Suministrado Necesario
Suministrado Necesario
Suministrado Necesario

Pantalla Digole LCD TFT de 2 320x240 (x2)

Humidistato DHT11

RaspberriPi Zero

Desglose GPS Adafruit

Medidores de 52 mm y 2 pulgadas: se utilizan para el vidrio y los bordes de la pantalla.

Contenedor de montaje de calibre 2

Paso 3: imprima el gabinete

En la carpeta "3DPrint /" de este proyecto, imprima el archivo gauges-final.stl que producirá los marcos de pantalla Digole necesarios para montar las 2 pantallas dentro del contenedor de montaje del medidor.

Paso 4: creación de la computadora de viaje

Construyendo la computadora de viaje
Construyendo la computadora de viaje

Conecte los siguientes dispositivos a los pines del Pi Zero

Digole (cada uno): 3v / GND / SDA / SCL

DHT11: 5v / GPIO 16 (36) / GND

Conecte el módulo USB GPS a RaspberriPi a través de conexiones HW UART El uso de HW UART para el módulo GPS requiere lo siguiente para liberar la conexión UART en su Pi.

"Cruzado": conecta los pines TX y RX del módulo GPS al RPi TX (GPIO 14/8 pines) y RX (GPIO 15/10 pines) - [TX va a RX en el dispositivo y viceversa.] Conectar RPi 5V al pin VIN y el pin GND del módulo GPS a un pin RPi GND disponible.

Paso 5: Ensamblaje final

Montaje final
Montaje final
Montaje final
Montaje final

Corte un trozo de madera para la parte inferior para sostener los componentes dentro de la carcasa del medidor.

Tome los 2 medidores de 52 mm y 2 pulgadas y corte la parte superior, solo estamos usando el vidrio y el marco para montar nuestras propias pantallas, las pantallas Digole. Pégalos en su lugar con pegamento termofusible.

Paso 6: Ensamblaje final (cont…)

Ensamblaje final (cont…)
Ensamblaje final (cont…)
Ensamblaje final (cont…)
Ensamblaje final (cont…)

Usando el esquema anterior, conecte los componentes con soldadura para hacer que todo sea fuerte y permanente.

Monte los componentes dentro de la carcasa de doble indicador, use los bordes impresos en 3D para que las pantallas Digole de forma cuadrada se ajusten a las ventanas de los indicadores circulares.

Paso 7: Configuración / instalación del software

Configure su Pi para usar el módulo GPS en UART

sudo vi /boot/cmdline.txt

cambio:

dwc_otg.lpm_enable = 0 consola = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200 consola = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 ascensor = fecha límite rootwait

para:

dwc_otg.lpm_enable = 0 consola = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 ascensor = fecha límite rootwait

(por ejemplo, elimine console = ttyAMA0, 115200 y, si está allí, kgdboc = ttyAMA0, 115200)

Tenga en cuenta que puede ver console = serial0, 115200 o console = ttyS0, 115200 y debe eliminar esas partes de la línea si están presentes.

Ejecute los siguientes comandos:

sudo systemctl detener [email protected]

sudo systemctl deshabilitar [email protected]

Instalación del módulo GPS Para realizar pruebas, fuerce su dispositivo USB para que se conecte a gpsd

sudo gpsd / dev / ttyS0 -F /var/run/gpsd.sock

sudo systemctl detener gpsd.socket

sudo killall gpsd

sudo dpkg-reconfigure gpsd

sudo vi / etc / default / gpsd

# Configuración predeterminada para gpsd. START_DAEMON = "true" GPSD_OPTIONS = "- n" DEVICES = "/ dev / ttyS0" USBAUTO = "false" GPSD_SOCKET = "/ var / run / gpsd.sock"

Asegúrese de que el comando esté funcionando

cgps -s

DHT11 Instalar cd ~

clon de git

cd Adafruit_Python_DHT /

instalación de sudo python setup.py

sudo python ez_setup.py

ejemplos de cd /

vi simpletest.py

Cambie la siguiente línea:

sensor = Adafruit_DHT. DHT11

Comenta la línea

pin = 'P8_11'

Descomente la línea y cambie el número de pin a 16

pin = 16

Ejecutar la prueba

python simpletest.py

Debería ver una lectura métrica de temperatura y humedad en la línea de comando.

Configure y ejecute el cd de scripts ~

clon de git

Paso 8: Instale las herramientas de monitoreo de conducción y el registro de la base de datos

sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

sudo vi /etc/postgresql/9.4/main/pg_hba.conf

Agregue la siguiente línea al final del archivo:

contraseña local all pi

sudo -i -u postgres

psql

cree la contraseña del rol pi 'contraseña aquí';

alterar el inicio de sesión de pi de rol;

alterar el rol de superusuario pi;

du

(debería ver a su usuario PI con los permisos otorgados)

crear una base de datos de estadísticas de conducción;

q

Salida

psql -d estadísticas_conducción

Ejecute las siguientes consultas:

CREAR TABLA driving_stats (id serial, marca de tiempo sin zona horaria NOT NULL, new_trip_start marca de tiempo sin zona horaria NULL, gps_latitude doble precisión, gps_longitude doble precisión, gps_altitude real, gps_speed real, gps_climb real, gps_track real, locale_adress text text, locale_track texto, texto de locale_county, texto de locale_country, texto de locale_zipcode, inside_temp real, inside_hmidty real, weather_time timestamp, weather_summary text, weather_icon text, weather_apparentTemperature real, weather_humidity real, weather_precipIntensity real, weather_precipProbability real, weather_windSpeedSpeed

CREAR ÍNDICE ÚNICO time_idx ON driving_stats (tiempo);

Se requiere pirateo para que GPSD funcione con la conexión UART al reiniciar sudo su

crontab -e

@reboot / bin / sleep 5; killall gpsd

@reboot / bin / sleep 10; / usr / sbin / gpsd / dev / ttyS0 -F /var/run/gpsd.sock

Cree la carpeta de registros para guardar los datos mkdir / home / pi / TripComputer / computer / logs

Paso 9: Scripts de inicio de Crontab - Pi y raíz

Configurar los scripts para que se ejecuten en el arranque

crontab -e

Agrega las siguientes líneas

@reboot / bin / sleep 15; nohup python /home/pi/TripComputer/computer/mtk3339.py> /home/pi/TripComputer/computer/mtk3339.log 2> & 1

@reboot / bin / sleep 18; nohup python /home/pi/TripComputer/computer/driving.py> /home/pi/TripComputer/computer/driving.log 2> & 1

@reboot / bin / sleep 19; nohup python /home/pi/TripComputer/computer/address.py> /home/pi/TripComputer/computer/address.log 2> & 1

@reboot / bin / sleep 30; nohup python /home/pi/TripComputer/computer/gauges.py> /home/pi/TripComputer/computer/gauges.log 2> & 1

@reboot / bin / sleep 21; nohup python /home/pi/TripComputer/computer/locale.py> /home/pi/TripComputer/computer/locale.log 2> & 1

@reboot / bin / sleep 22; nohup python /home/pi/TripComputer/computer/notification.py> /home/pi/TripComputer/computer/notification.log 2> & 1

@reboot / bin / sleep 24; nohup python /home/pi/TripComputer/computer/temperature.py> /home/pi/TripComputer/computer/temperature.log 2> & 1

@reboot / bin / sleep 25; nohup python /home/pi/TripComputer/computer/upload.py> /home/pi/TripComputer/computer/upload.log 2> & 1

@reboot / bin / sleep 26; nohup python /home/pi/TripComputer/computer/weather.py> /home/pi/TripComputer/computer/weather.log 2> & 1

@reboot / bin / sleep 30; nohup python /home/pi/TripComputer/computer/stats.py> /home/pi/TripComputer/computer/stats.log 2> & 1

Configure el crontab del usuario raíz para asegurarse de que el módulo GPS se conecte correctamente

sudo su

crontab -e

Agrega las siguientes líneas

@reboot / bin / sleep 5; systemctl detener gpsd.socket

@reboot / bin / sleep 8; killall gpsd

@reboot / bin / sleep 12; / usr / sbin / gpsd / dev / ttyS0 -F /var/run/gpsd.sock

Paso 10: Configurar para conectarse a Weather y Dashboard (opcional)

Finalmente, cree la configuración local necesaria para ejecutar la computadora de viaje

Busque el archivo /computer/includes/settings.shadow.py

Cree su propia versión del archivo de configuración llamado simplemente settings.py

Forecast.io API clave para información meteorológica local weatherAPIURL = 'https://api.forecast.io/forecast/'

weatherAPIKey = 'CLAVE API AQUÍ'

si tiene el proyecto del concentrador de dispositivos en ejecución (https://github.com/khinds10/DeviceHub) devicesServer = 'https://my.server.com'

si tiene el proyecto del teléfono del tablero en ejecución (https://github.com/khinds10/RetroDashboard) dashboardServer = 'https://my.server.com'

Paso 11: Móntelo en el humidistato de tablero / soporte y ¡listo

¡Montar en el humidistato de tablero / montaje y terminado!
¡Montar en el humidistato de tablero / montaje y terminado!
¡Montar en el humidistato de tablero / montaje y terminado!
¡Montar en el humidistato de tablero / montaje y terminado!

Montar en Dash

Monte el humidistato lejos del sol directo

Reinicie su RPi y debería estar listo para comenzar.

Recomendado: