Files
2023-08-08 22:55:24 -04:00

70 lines
2.5 KiB
Markdown

# polaris
## _Path Reporting for Borrowed Goods_
_Currently in Pre-Pre-Alpha_
## Installation
### Necessary Software
- [Golang][go]
- [Arduino IDE][ard]
- [ESP plugin][esp]
- [TinyGPS++][tg+] library (Installing the TinyGPS++ Library section)
### Necessary Hardware
- Computer (I used a [Raspberry Pi Zero 2 W][vilros])
- [ESP8266][espbuy]
- [uBlox 6m GPS module][gps]
- External Power Supply
## Setup
### Serverside
Compile the recipient Golang program on the computer with
```sh
go build gps.go
```
### Nodeside
Open the sketch and use the Arduino IDE to upload to the ESP module
Connect the GPS module; pinout is given in Arduino sketch, must check against pinout image
## Running
### Serverside
Run the recipient with
```sh
./gps &
```
When the path is received, it will be stored in a file named with the received date. It can be viewed with
```sh
cat YYYYMMDDHHmmss.gps
```
### Nodeside
Compile and download the sketch to the ESP
## Usage
Connect the ESP and GPS to the external battery. Once the GPS warms up, it will get a location reading every 30 seconds. Power does not need to be continuously supplied, as the location is written to the EEPROM. To get the location data, reset/power cycle ESP.
## Plotting
#### _So now you have your GPS coordinates. Now what?_
For now, you have to search the GPS coordinates on Google Maps or something.
However, in the future, it would be nice to process the coordinates locally,
without having to copy/paste several sets of coords to a website. However, the
methods I have found to do this ([HERE][here] and [geoplot][geop]) have not
worked, even the examples. Eventually, I will find another solution, probably
in Python, but until then, copy/paste.
## TODO
- A whole lot
- Golang plotting
- ESP write to EEPROM
- Solve the Power Problem
- Solve the Housing Problem
- Solve the Attachment Problem
[go]: <https://go.dev/doc/install>
[ard]: <https://www.arduino.cc/en/software>
[esp]: <https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/>
[tg+]: <https://randomnerdtutorials.com/guide-to-neo-6m-gps-module-with-arduino/>
[vilros]: <https://www.amazon.com/Vilros-Raspberry-Kit-Premium-Essential-Accessories/dp/B0748M1Z1B>
[espbuy]: <https://www.amazon.com/HiLetgo-Internet-Development-Wireless-Micropython/dp/B081CSJV2V>
[gps]: <https://www.amazon.com/HiLetgo-GY-NEO6MV2-Controller-Ceramic-Antenna/dp/B01D1D0F5M>
[here]: <https://www.here.com/learn/blog/reverse-geocoding-a-location-using-golang>
[geop]: <https://github.com/morikuni/go-geoplot/tree/mai://github.com/morikuni/go-geoplot/tree/maini>