|
6 jaren geleden | |
---|---|---|
.vscode | 6 jaren geleden | |
src | 6 jaren geleden | |
.editorconfig | 7 jaren geleden | |
.gitignore | 6 jaren geleden | |
LICENSE.md | 6 jaren geleden | |
README.md | 6 jaren geleden | |
gpstracker.code-workspace | 6 jaren geleden |
This project aims to provides an autonomous GPS tracker based on an Arduino Pro mini as the central unit. Battery saving has been incorporated into every step of the design. A custom designed circuit board is available to avoid using poorly power efficient boards.
The project has been build on a ATMega328p for its ease of use, low power consumption and wide support, being at the core of the Arduino UNO.
Appart from the main ATMega328p, several chips are needed :
This project can be build using standard Arduino boards and shields. For instance, you can start from an Arduino UNO with an Adafruit FONA shield. This should only be done for testing and debugging purpose though, as both are not designed with energy saving in mind, and will rapidly consumes all your battery life.
For optimum energy management and maximum autonomy, a double-sided, surface mounted circuit board has been engineered. Taking that path requires either using soldering paste or some fine soldering skills : the SIM808 package can be quite hard to solder by hand.
The project has been build using Arduino 1.8.5. Ditching Arduino IDE in favor of an advanced IDE (VS Code, Visual Micro) is strongly recommended.
To fully use the project, you will need to adjust some values based on your needs. Each file under src/config can be modified, but the one you’ll be most likely interested in are :
Each traditional loop
execution procedes through the following phases :
Each one of these phases requires long waits (acquiring GPS signal, registering to the networks, etc). To preserve battery during those waits, all non-essentials devices are turned off, including the main ATMega328p. An interrupt coming from the RTC DS3231 chip (powered by & 3V coin battery) is used to woke up the main unit.
As positions backup can take quite some time, they’re only backup in two cases :
This behaviour prevent the backup from distrupting the rate at which positions will be acquired.
The downside of using an ATMega328p is a relativly limited space. That space gets filled almost completly by the project in its current state, leaving very few possibilities for further improvments and features. Even adding Serial debugging statements can sometimes be impossible.
An SD card was firt intended to be used for logging, data saving and configuration purposes. Due to the limited space available on an ATMega328p (32k), it has been removed early in the development process. Parts of the intended code (using SdFat) is still in the repository, buts its use has been disabled.