This project has been sponsored by PCBWay!
You can order this project from PCBWay at a $5 discount by using my referal link
- Detailed user configuration (accessible by connecting to the ESP's hotspot and going to http://192.168.4.1)
- Advanced build configuration with verbose support (
platformio.ini) - OTA updates through a secure hotspot
- Cellular connectivity
- Automatically update the ESP's clock
- MQTT connection
- SD card support through an FTP server (set your connection mode to
Active (PORT)) - Dynamic CPU frequency scaling
- Report battery status (percentage, voltage, USB charging, solar charging & discharging)
- Report network details
- Report location status (latitude, longitude, speed, altitude, visible satellites, accuracy) with cellular fallback
- Report the uptime of the ESP in seconds
- Report your car's temperature, humidity and air pressure using a BME280 sensor
- Report the light level inside your car using a TSL2561 sensor
- Detect motion inside your car's cabin using a PIR sensor
- Report the CPU temperature and frequency
- Report the free RAM amount
- Report the ESP32's hall sensor value
- Recover from GPS failures automatically
- Recover from cellular failures automatically
- Reboot the ESP32 & Modem remotely over MQTT
- IDE of choise with PlatformIO (VSCode is recommended)
- USB <-> Serial driver (
macOS|Linux|Windows) - MQTT Broker
- Home Assistant server (optional. An example config can be found here)
- LilyGO® TTGO T-SIM7600E-L1C ESP32 (Other ESP32 TTGO models could also work)
- A Nano SIM Card with an active internet plan
- Cellular antenna
- GPS antenna
- 18650B battery
- BME280 sensor (optional)
- TSL2561 sensor (optional)
- PIR sensor (like the AM312) thats pulled low by default (optional)
- Micro SD Card formatted as FAT32 (optional)
- I2C1 - GPIO 21 & 22
- I2C2 - GPIO 21 & 22
- GPIO - GPIO 19 & 23
- With the hardware listed above & low power mode, I've been able to get 20 hours of battery life
More pictures can be found here
APN- The APN URL of your cellular providerUsername- The APN username of your cellular providerPassword- The APN password of your cellular providerSIM PIN- The PIN of your SIM card (leave blank if you don't have one)
Timezone- The UTC offset of your timezone (in seconds, e.g. UTC+2 = 7200)Daylight Saving Time- Enable or disable daylight saving time (will add 1 hour to the UTC offset)
SSID- The SSID of the WiFi AP that the ESP will createPassword- The password of the WiFi AP that the ESP will createDisable when on battery or stationary- Will disable the AP when running on battery or when stationary for about ~15 minutes
Address- The IP address / domain name of your MQTT brokerPort- The port of your MQTT brokerClient name- The name you want to give to the ESP on your MQTT brokerUsername- The username of your MQTT brokerPassword- The password of your MQTT broker
GNSS Mode- Constellations the modem should use (0 = GPS + GLONASS, 1 = GPS + BEIDOU, 2 = GPS + GALILEO, 3 = GPS + QZSS)DPO- Direct Platform Orientation (0 = Disable, 1 = Enable)
Enable- Enable or disable all the sensors
Enable- Enable or disable the BME280 sensorI2C Address- The I2C address of the BME280 sensor (0x76 or 0x77)MQTT Temp- The MQTT topic to publish the temperature toMQTT Pressure- The MQTT topic to publish the pressure toMQTT Humidity- The MQTT topic to publish the humidity to
Enable- Enable or disable the TSL2561 sensorI2C Address- The I2C address of the TSL2561 sensor (0x29, 0x39 or 0x49)Gain- The gain of the TSL2561 sensor (auto, 1x or 16x)MQTT- The MQTT topic to publish the light level to
Enable- Enable or disable the PIR sensorGPIO- The GPIO pin the PIR sensor is connected toMQTT- The MQTT topic to publish the motion status to
Enable- Enable or disable reporting the CPU temperature sensor valueMQTT- The MQTT topic to publish the CPU temperature to
Enable- Enable or disable reporting the CPU frequency valueMQTT- The MQTT topic to publish the CPU frequency to
Enable- Enable or disable reporting the free RAM valueMQTT- The MQTT topic to publish the free RAM value to
Enable- Enable or disable reporting the hall sensor valueMQTT- The MQTT topic to publish the hall sensor value to
Info- The MQTT topic to publish the modem info toCCID- The MQTT topic to publish the modem CCID toIMSI- The MQTT topic to publish the modem IMSI toOperator- The MQTT topic to publish the modem operator toSignal Quality- The MQTT topic to publish the modem signal quality toPublic IP- The MQTT topic to publish the modem public IP to
Percentage- The MQTT topic to publish the battery percentage toVoltage- The MQTT topic to publish the battery voltage toStatus- The MQTT topic to publish the battery charging status to (charging, USB charging or discharging)
Type- The MQTT topic to publish the location type to (GPS or cellular)Latitude- The MQTT topic to publish the location latitude toLongitude- The MQTT topic to publish the location longitude toSpeed- The MQTT topic to publish the location speed toAltitude- The MQTT topic to publish the location altitude toAccuracy- The MQTT topic to publish the location accuracy to
Enable- Enable or disable the FTP serverUsername- The username of the FTP serverPassword- The password of the FTP server
Uptime- The MQTT topic to publish the uptime toVersion- The MQTT topic to publish the version number to
Dynamic Frequency- Lower the CPU frequency to 160MHz when running on batteryLow Power mode on battery- Lower the CPU frequency to 80MHz (instead of 160MHz) and turn GPS off when running on battery (only works if Dynamic Frequency is enabled)
DEBUG- Enable or disable debug messages
UART_BAUD- The baud rate of the serial port & modemMODEM_TX- The TX pin of the modemMODEM_RX- The RX pin of the modemMODEM_PWRKEY- The PWRKEY pin of the modemMODEM_DTR- The DTR pin of the modemMODEM_RI- The RI pin of the modemMODEM_FLIGHT- The flight mode pin of the modemMODEM_STATUS- The status pin of the modem
LED_PIN- The pin of the status LED
USB_INDICATOR- Detect if the board is being powered by USBSOLAR_INDICATOR- Detect if the board is being powered by solar
TINY_GSM_MODEM_<MODEL>- The model of the modem (only SIM7600 has been tested)
- Xinyuan-LilyGO - Basic T-SIM7600X implementation
- Random Nerd Tutorials - Base webserver code
- vshymanskyy - TinyGSM & StreamDebugger libraries
- knolleary - PubSubClient library
- adafruit - Unified Sensor, BME280 & TSL2561 libraries
- ayushsharma82 - ElegantOTA library
- mathieucarbou - AsyncTCP & ESPAsyncWebServer libraries
- bblanchon - ArduinoJson library
- peterus - ESP-FTP-Server library

.jpeg)
.jpeg)