← Fleet 📡

Je

Hdjd
tracker ⟳ 30s
📍
Location
27.61856, 85.56753
🏎️
Speed
45 km/h
🏔️
Altitude
🛰️
Satellites
📶
Signal
🔋
Battery

🗺️ Route Playback

Live View

⛽ Fuel Level

85% Diesel
Volt:
Resolving address...

📊 Data History (Last 50 Records)

#LatLngSpeed FuelSatsSignal BattDevice TimeServer Time
15 27.61856 85.56753 45 85% 2026-03-24 11:00:54 2026-03-24 11:00:54
14 27.61825 85.5669 45 85% 2026-03-24 11:00:44 2026-03-24 11:00:44
13 27.61794 85.56628 45 85% 2026-03-24 11:00:34 2026-03-24 11:00:34
12 27.61763 85.56565 45 85% 2026-03-24 11:00:24 2026-03-24 11:00:24
11 27.61731 85.56503 45 85% 2026-03-24 11:00:14 2026-03-24 11:00:14
10 27.617 85.5644 45 85% 2026-03-24 11:00:04 2026-03-24 11:00:04
9 27.61669 85.56378 45 85% 2026-03-24 10:59:54 2026-03-24 10:59:54
8 27.61638 85.56315 45 85% 2026-03-24 10:59:44 2026-03-24 10:59:44
7 27.61606 85.56253 45 85% 2026-03-24 10:59:01 2026-03-24 10:59:01
6 27.61575 85.5619 45 85% 2026-03-24 10:58:51 2026-03-24 10:58:51
5 27.61544 85.56128 45 85% 2026-03-24 10:58:41 2026-03-24 10:58:41
4 27.61513 85.56065 45 85% 2026-03-24 10:58:31 2026-03-24 10:58:31
3 27.61481 85.56003 45 85% 2026-03-24 10:58:21 2026-03-24 10:58:21
2 27.6145 85.5594 45 85% 2026-03-24 10:58:11 2026-03-24 10:58:12
1 27.71399 85.32137 45 85% 2026-03-24 10:07:30 2026-03-24 10:07:32

🧪 Test This Device

Send Data

curl -X POST https://gps.aitalim.com/api/post_data.php \
  -H "Content-Type: application/json" \
  -d '{"device_id": "Hdjd", "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=Hdjd&limit=10"

🔌 ESP32 Firmware (TTGO T-Call SIM800)

Copy this Arduino sketch. DEVICE_ID is pre-filled with Hdjd.

firmware_Hdjd.ino

/**
 *  TTGO T-Call SIM800L v1.4 — GPS + Fuel Tracker
 *  Device: Hdjd
 *  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   = "Hdjd";
const char* DEVICE_NAME = "Je";
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);
}