This project implements a comprehensive multi-sensor hub using the ESP32-C5 microcontroller. It integrates data from various sensors (temperature, humidity, IMU, ambient light), transmits this data over a CAN bus (with optional encryption using Ascon-128), and provides Bluetooth Low Energy (BLE) connectivity for remote access. The system also includes an LED strip for visual feedback.
- Multi-Sensor Integration: Reads data from AHT20 (temperature/humidity), LSM6DSO32 (IMU), and VEML7700 (ambient light) sensors. π‘οΈ
- CAN Bus Communication: Transmits sensor data over a CAN bus using the TWAI controller. π
- Encryption Options: Supports CAN bus message encryption using Ascon-128 algorithms for secure communication. π
- Bluetooth Low Energy (BLE): Enables remote access to sensor data via BLE using the NimBLE stack. π±
- LED Strip Control: Provides visual feedback through an LED strip, indicating system status or sensor readings. π‘
- User-Friendly Flashing: Includes a bash script for easy flashing and monitoring of ESP32 devices. β‘
- Microcontroller: ESP32-C5
- Real-Time Operating System (RTOS): FreeRTOS
- Wireless Communication:
- Bluetooth: NimBLE
- Serial Communication:
- CAN: TWAI (Two-Wire Automotive Interface)
- Sensors:
- AHT20 (Temperature & Humidity)
- LSM6DSO32 (IMU - Accelerometer & Gyroscope)
- VEML7700 (Ambient Light)
- Encryption:
- AES-CCM (using mbedtls)
- Ascon-128
- Programming Language: C
- Build System: CMake, ESP-IDF
- Component Manager: ESP-IDF Component Manager
- LED Strip Library:
espressif/led_strip - Bash Scripting: For device flashing and monitoring.
βββ CMakeLists.txt
βββ main
β βββ canaes
β β βββ canaes.c
β β βββ canaes.h
β βββ canascon
β β βββ canascon.c
β β βββ canascon.h
β βββ esp32_ascon
β β βββ ascon.h
β β βββ core.c
β β βββ decrypt.c
β β βββ encrypt.c
β β βββ constants.h
β βββ bluetooth
β β βββ ble_fdcan_sens.h
β β βββ gatt_svr.c
| | βββ esp_ble.c
β βββ i2c_devices
β β βββ AHT20.h
β β βββ lsm6d.h
β β βββ veml.h
β βββ grad_proj.c
β βββ idf_component.yml
βββ device_selector.sh
βββ README.md
This project is licensed under the MIT License - see the LICENSE file for details.

