31 lines
1.8 KiB
Markdown
31 lines
1.8 KiB
Markdown
ESP32-S3 vehicle telemetry and GPS tracker streaming location and vehicle status over Cat-M/NB-IoT cellular networks.
|
|
|
|

|
|
|
|
**Status: in progress**
|
|
|
|
### What it does
|
|
* Tracks real-time GNSS location and reports vehicle coordinates over Cat-M / NB-IoT cellular data
|
|
* Manages power and deep sleep based on car ignition status to preserve vehicle battery
|
|
* Processes remote configuration and trigger commands via SMS and HTTP polling
|
|
* Supports over-the-air (OTA) firmware updates, geofencing, and ESP-NOW local fallbacks
|
|
|
|
### Bill of Materials
|
|
| Part | Quantity | Purpose |
|
|
| :--- | :---: | :--- |
|
|
| ESP32-S3 Development Board | 1 | Microcontroller running modular C++ telemetry firmware |
|
|
| Waveshare Pico SIM7080G Module | 1 | Cat-M / NB-IoT cellular modem & GNSS positioning engine |
|
|
| Hologram SIM Card | 1 | Global IoT cellular data connectivity |
|
|
| 12V-to-5V Buck Converter | 1 | Steps down car 12V DC power to 5V DC circuit power |
|
|
| LiPo Battery Charge Controller | 1 | Manages backup LiPo battery during vehicle power loss |
|
|
|
|
### How it works
|
|
Firmware isolates hardware control into dedicated C++ modules (`GNSS`, `Modem`, `PowerMgr`). Cellular communication uses AT commands over UART (Serial2, 9600 baud on pins 16/17) with dedicated power control on GPIO 4. Telemetry payloads are packaged into JSON and pushed via HTTP POST to the Laravel backend.
|
|
|
|
### What broke
|
|
* SIM7080G cold-boot PDP context attach required exact pulse timing on the PWR pin (GPIO 4) to ensure modem initialization before issuing `AT+CGNSPWR=1` for GNSS power.
|
|
|
|
### Links
|
|
* Web Dashboard: [CAR_GPS_REACT](https://gitea.lab.audasmedia.com.au/sam/CAR_GPS_REACT)
|
|
* Backend API: [Laravel-GPS-API](https://gitea.lab.audasmedia.com.au/sam/Laravel-GPS-API)
|