This project was developed to track the movement and position of a person or object and can fit in a wristwatch-sized case. It includes the following components:
- GPS: Provides accurate location data.
- 3 Axis Accelerometer: Measures acceleration in three dimensions.
- Temperature, Pressure, and Altitude Sensor: Monitors environmental conditions.
- Battery Management: Ensures efficient power usage.
- SD Card Slot: Stores data locally.
- ESP32: Microcontroller for data processing and connectivity.
The provided code will read the sensors, print in the serial output, and also save to file.
To get started with this project, follow these steps:
- Hardware: You can use development modules for each sensor and the microcontroller, or assemble the PCB yourself.
- Software:
- Compilation: This code is for Arduino IDE and requires the following extra libraries to be installed:
- TinyGPS++ | Arduino NMEA parsing library | https://github.com/mikalhart/TinyGPSPlus
- Adafruit BME280 | Adafruit BME280 Humidity, Barometric Pressure + Temp sensor | https://github.com/adafruit/Adafruit_BME280_Library
- MPU 9250 | Arduino library for MPU9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS MotionTracking™ Device | https://github.com/hideakitai/MPU9250
-
Deploying:
- To burn the code in the circuit is straightforward if you are using a commercial ESP32 module.
- For the suggested circuit, an external USB-to-TTL module is required, with a 3.3V operational level, and the battery connected.
- Connect the USB-to-TTL in the unpopulated header in the board, using with the following pinout:
TX and RX are from the USB-to-TTL, no inversion required. - To start the ESP32 in upload mode connect the Flash pin to GND and press SW1 to restart the micro-controller.
- Start burning on Arduino IDE.
- Restart the ESP manually pressing SW1 when the upload is complete.
- Connect the USB-to-TTL in the unpopulated header in the board, using with the following pinout:
Once the datalogger is set up and configured, it can be used for various tracking applications, such as:
- Person Tracking: Attach the datalogger to a person to track their movements and location.
- Object Tracking: Attach it to an object to monitor its position and environmental conditions.
- Data Logging: The datalogger can record data over time, which can be later analyzed.
In case of indoor testing, an external GPS antenna can be used.
Battery should be a single cell Li-ion, for example 303035, 3.7V 300mAh.
- Connectivity: An 2.4Ghz antenna should be added to the ESP32 to allow connecting by WiFi and/or Bluetooth.
- Memory: Instead of the micro-sd card a SD NAND can be used if wireless connectivity is added.
- EOL parts: Most of the sensors used are reaching or already passed its End-Of-Life, but they are still widely available. In any case, newer recommended substitutes should be used in future versions
- Charging: Add wireless charging capability.
If you want to contribute to this project, please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and test them thoroughly.
- Create a pull request to submit your changes.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
For questions or support, please contact us at [email protected].