GeoLinker

GeoLinker GPS Visualizer

Real-time GPS tracking for IoT devices. Send location data from ESP32, Arduino, or any device and visualize on interactive maps.

10,000 waypoints storageView Docs

Get Started in Minutes

Start sending IoT notifications in just a few simple steps

1

Create Account

Sign up for free, no credit card required

2

Get API Key

Generate your API key from dashboard

3

Send GPS Data

Send location from ESP32, Arduino, or NodeMCU

4

View Your Map

See real-time data visualized on map

GPS Simulator

Simulate GPS data and send it to GeoLinker in real-time

Leaflet © OpenStreetMap contributors
API Key:
cd_xxxxxxxxxxxxxxxxxxxx
Sign in to select a device
11.010915, 77.013209

Key names: letters, digits, underscores only. Sent as payload[0].

POST /api/v1/geolinker Arduino / ESP32
1#include <WiFi.h>
2#include <HTTPClient.h>
3#include <TinyGPS++.h>
4#include <HardwareSerial.h>
5
6const char* ssid     = "YOUR_WIFI_SSID";
7const char* password = "YOUR_WIFI_PASSWORD";
8const char* apiKey   = "YOUR_API_KEY";
9const char* device   = "esp32_tracker";
10
11TinyGPSPlus gps;
12HardwareSerial SerialGPS(1);
13
14void setup() {
15  Serial.begin(115200);
16  SerialGPS.begin(9600, SERIAL_8N1, 16, 17);
17  WiFi.begin(ssid, password);
18  while (WiFi.status() != WL_CONNECTED) delay(500);
19  Serial.println("WiFi connected!");
20}
21
22void loop() {
23  while (SerialGPS.available()) gps.encode(SerialGPS.read());
24  if (gps.location.isUpdated()) {
25    sendLocation(gps.location.lat(), gps.location.lng(),
26                 gps.speed.kmph(), gps.altitude.meters());
27    delay(10000); // every 10 s
28  }
29}
30
31void sendLocation(float lat, float lng, float spd, float alt) {
32  HTTPClient http;
33  http.begin("https://circuitdigest.cloud/api/v1/geolinker");
34  http.addHeader("Content-Type", "application/json");
35  http.addHeader("Authorization", "Bearer " + String(apiKey));
36
37  String body = "{";
38  body += "\"device_id\":\"" + String(device) + "\",";
39  body += "\"timestamp\":[\"" + String(millis()) + "\"],";
40  body += "\"lat\":[" + String(lat, 6) + "],";
41  body += "\"long\":[" + String(lng, 6) + "],";
42  body += "\"speed\":[" + String(spd, 1) + "],";
43  body += "\"battery\":[100],";
44  body += "\"payload\":[{\"altitude\":" + String(alt, 1) + "}]";
45  body += "}";
46
47  int code = http.POST(body);
48  Serial.println(code == 200 ? "Sent!" : "Error: " + String(code));
49  http.end();
50}