📍
Location
27.66655, 85.4131
🏎️
Speed
45 km/h
🏔️
Altitude
—
🛰️
Satellites
—
📶
Signal
—
🔋
Battery
—
🗺️ Route Playback
Live View
⛽ Fuel Level
Volt: —
Resolving address...
Resolving address...
📊 Data History (Last 50 Records)
| # | Lat | Lng | Speed | Fuel | Sats | Signal | Batt | Device Time | Server Time |
|---|---|---|---|---|---|---|---|---|---|
| 17 | 27.66655 | 85.4131 | 45 | 85% | — | — | — | 2026-03-24 09:56:31 | 2026-03-24 09:56:32 |
| 16 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:27 | 2026-03-24 09:56:27 |
| 15 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:26 | 2026-03-24 09:56:26 |
| 14 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:24 | 2026-03-24 09:56:25 |
| 13 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:24 | 2026-03-24 09:56:24 |
| 12 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:23 | 2026-03-24 09:56:23 |
| 11 | 27.66619 | 85.43493 | 45 | 85% | — | — | — | 2026-03-24 09:56:16 | 2026-03-24 09:56:17 |
| 10 | 27.67418 | 85.42321 | 45 | 85% | — | — | — | 2026-03-24 09:52:33 | 2026-03-24 09:52:34 |
| 9 | 27.66715 | 85.41681 | 45 | 85% | — | — | — | 2026-03-24 09:52:29 | 2026-03-24 09:52:31 |
| 8 | 27.66715 | 85.41681 | 45 | 85% | — | — | — | 2026-03-24 09:52:25 | 2026-03-24 09:52:26 |
| 7 | 27.67137 | 85.4084 | 0 | 75% | 8 | -67 dBm | 12V | 2026-03-24 09:17:46 | 2026-03-24 09:17:48 |
| 6 | 27.67897 | 85.34969 | 72 | 93.5% | 16 | -83 dBm | 5V | 2026-03-24 09:17:19 | 2026-03-24 09:17:20 |
| 5 | 27.71681 | 85.3466 | 163 | 4.5% | 13 | -43 dBm | 5V | 2026-03-24 09:16:06 | 2026-03-24 09:16:08 |
| 4 | 27.68398 | 85.34866 | 71 | 75% | 8 | -67 dBm | 12V | 2026-03-24 09:12:33 | 2026-03-24 09:12:34 |
| 3 | 27.68398 | 85.34866 | 71 | 75% | 8 | -67 dBm | 12V | 2026-03-24 09:12:30 | 2026-03-24 09:12:31 |
| 2 | 27.71301 | 85.3454 | 71 | 75% | 8 | -67 dBm | 12V | 2026-03-24 09:12:23 | 2026-03-24 09:12:25 |
| 1 | 27.72487 | 85.34489 | 0 | 75% | 8 | -67 dBm | 12V | 2026-03-24 09:12:13 | 2026-03-24 09:12:14 |
🧪 Test This Device
Send Data
curl -X POST https://gps.aitalim.com/api/post_data.php \
-H "Content-Type: application/json" \
-d '{"device_id": "DUMMY_DEVICE", "latitude": 27.72, "longitude": 85.33, "speed": 50.0, "fuel_level": 60.0}'
Fetch Data
curl "https://gps.aitalim.com/api/get_data.php?device_id=DUMMY_DEVICE&limit=10"
🔌 ESP32 Firmware (TTGO T-Call SIM800)
Copy this Arduino sketch. DEVICE_ID is pre-filled with
DUMMY_DEVICE.
firmware_DUMMY_DEVICE.ino
/**
* TTGO T-Call SIM800L v1.4 — GPS + Fuel Tracker
* Device: DUMMY_DEVICE
* Server: https://gps.aitalim.com
*
* Pinout (FIXED for TTGO T-Call):
* SIM800 TX→GPIO26, RX→GPIO27, PWR→GPIO4, RST→GPIO5
* Battery ADC→GPIO35, LED→GPIO13
* External GPS: TX→GPIO16, RX→GPIO17
* Fuel sensor: GPIO34
*/
#define TINY_GSM_MODEM_SIM800
#define MODEM_TX 27
#define MODEM_RX 26
#define MODEM_PWR 4
#define LED_PIN 13
#include <TinyGsmClient.h>
#include <ArduinoHttpClient.h>
#include <TinyGPSPlus.h>
#include <ArduinoJson.h>
const char* DEVICE_ID = "DUMMY_DEVICE";
const char* DEVICE_NAME = "Simulator";
const char* SERVER_HOST = "gps.aitalim.com";
const int SERVER_PORT = 80;
const char* SERVER_PATH = "/api/post_data.php";
const char* APN = "ntc"; // Change: Ncell="ncellgprs"
HardwareSerial gpsSerial(1);
TinyGPSPlus gps;
TinyGsm modem(Serial1);
TinyGsmClient client(modem);
HttpClient http(client, SERVER_HOST, SERVER_PORT);
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(MODEM_PWR, OUTPUT);
pinMode(23, OUTPUT); // POWER_ON
pinMode(5, OUTPUT); // RST
digitalWrite(23, HIGH);
digitalWrite(5, HIGH);
digitalWrite(MODEM_PWR, LOW);
delay(1000);
digitalWrite(MODEM_PWR, HIGH);
delay(2000);
Serial1.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
gpsSerial.begin(9600, SERIAL_8N1, 16, 17);
modem.restart();
modem.waitForNetwork(60000);
modem.gprsConnect(APN, "", "");
}
void loop() {
while (gpsSerial.available()) gps.encode(gpsSerial.read());
static unsigned long last = 0;
if (millis() - last > 300000 || last == 0) {
sendData(); last = millis();
}
delay(100);
}
void sendData() {
digitalWrite(LED_PIN, HIGH);
float fuelV = (analogRead(34)/4095.0)*3.3;
float fuel = constrain(((fuelV-0.5)/(3.0-0.5))*100, 0, 100);
float batt = (analogRead(35)/4095.0)*3.3*2;
DynamicJsonDocument doc(512);
doc["device_id"] = DEVICE_ID;
doc["device_name"] = DEVICE_NAME;
if (gps.location.isValid()) {
doc["latitude"] = gps.location.lat();
doc["longitude"] = gps.location.lng();
doc["speed"] = gps.speed.kmph();
doc["altitude"] = gps.altitude.meters();
doc["satellites"]= gps.satellites.value();
}
doc["fuel_level"] = fuel;
doc["fuel_voltage"] = fuelV;
doc["battery_voltage"] = batt;
doc["signal_strength"] = modem.getSignalQuality();
String p; serializeJson(doc, p);
http.beginRequest();
http.post(SERVER_PATH);
http.sendHeader("Content-Type","application/json");
http.sendHeader("Content-Length", p.length());
http.beginBody(); http.print(p);
http.endRequest();
Serial.printf("[%d] %s\n", http.responseStatusCode(), http.responseBody().c_str());
digitalWrite(LED_PIN, LOW);
}