Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telemetría IoT para vehículo eléctrico

Sistema de telemetría en tiempo real para un vehículo eléctrico (batería, corriente, temperatura del motor, RPM de motor y rueda, acelerador y freno), con tres implementaciones equivalentes sobre distinto hardware. Cada nodo lee los sensores analógicos/digitales del vehículo y publica un mensaje JSON por MQTT sobre TLS mutuo (mTLS) a AWS IoT Core.

Proyecto desarrollado como parte de un Trabajo Fin de Máster (TFM).

Arquitectura

Sensores del vehículo → [nodo embebido] → MQTT sobre mTLS (TLS 1.2, cert. X.509) → AWS IoT Core

Cada nodo se autentica con su propio certificado de dispositivo (mTLS), no con usuario/contraseña. Los tres nodos implementan la misma lógica de lectura de sensores y publicación, adaptada a las capacidades de cada plataforma:

Carpeta Placa Lenguaje Notas
nanoesp32/ Arduino Nano ESP32 MicroPython ADC interno de la placa
pipico-code/ Raspberry Pi Pico W MicroPython ADC externo (ADC Pi); dos variantes: main.py y main_python.py (mismo hardware, publican en topics MQTT distintos)
pi_zerowh_code/ Raspberry Pi Zero W Python 3 ADC externo (ADC Pi), usa el SDK oficial de AWS IoT

Configuración (obligatoria antes de ejecutar)

Ningún secreto (contraseña WiFi, certificados, claves privadas) está en el repositorio. Antes de usar cualquiera de los nodos:

  1. Credenciales de conexión — en nanoesp32/ y pipico-code/, copia config.example.py como config.py y rellena tu SSID/contraseña de WiFi y el endpoint de AWS IoT (Consola AWS IoT → Configuración). En pi_zerowh_code/, copia igualmente config.example.py como config.py.
  2. Certificados del dispositivo — crea una "Thing" (dispositivo) por nodo en AWS IoT Core, genera su certificado X.509 y su clave privada, adjúntale una policy (ver pi_zerowh_code/iot-policy.example.json como plantilla), y coloca los ficheros donde indica el README.md de cada subcarpeta de certificados (cert_n/, cert_rpipico/, certs_n/, pi_zerowh_code/).

Ninguno de estos ficheros (config.py, certificados, claves privadas) se sube a git — están excluidos vía .gitignore.

Ejecución

  • nanoesp32 / pipico-code (MicroPython): copia todos los ficheros de la carpeta (incluido tu config.py y tus certificados) a la placa, por ejemplo con mpremote o rshell. Al arrancar, boot.py conecta el WiFi y main.py publica telemetría por MQTT cada segundo.
  • pi_zerowh_code (Python 3):
    pip install -r requirements.txt
    python3 main.py
    start.sh es un script auxiliar (basado en el ejemplo oficial de AWS) para probar la conectividad pub/sub contra AWS IoT antes de lanzar main.py; requiere la variable de entorno AWS_IOT_ENDPOINT.

Firmware

Para flashear MicroPython en la Raspberry Pi Pico W, descarga el .uf2 oficial desde micropython.org/download.

Licencia

MIT — ver LICENSE.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages