India mein LoRa Pet Tracker Kaise Banayein (No Monthly Fees)
Bina cellular network aur monthly subscription ke, apne pets ko kilometer door tak track karne ka apna system banayein.
Kyun Banayein Apna Tracker?
Agar aapne kabhi market mein milne wale commercial pet trackers dekhe hain, toh aap jante honge ki wo kitne mehenge hote hain. Unme har mahine subscription dena padta hai aur wo mobile network (SIM card) par chalte hain. Matlab agar aap trekking par gaye ya kisi gaon (rural area) mein hain jahan network nahi hai, toh wo tracker bekar ho jata hai.
Is guide mein, hum LoRa (Long Range) technology ka use karke ek private tracking system banayenge. Chahe aapke paas ek puppy ho ya poora pack, ye system sabke liye kaam karega—ek receiver kai saare pets ko ek saath track kar sakta hai.
1. Kharcha Kitna Aayega? (India Pricing)
Is project ki sabse achi baat ye hai ki "Base Station" (Receiver) ka kharcha bas ek baar hota hai. Aapko sirf "Tracker Node" (jo pet ke gale mein hoga) ko replicate karna hai. Yahan local suppliers (jaise Robu, RhydoLabz) ke hisaab se pricing di gayi hai.
Per-Pet Tracker (Transmitter)
| Component | Approx. Price (INR) | Notes |
|---|---|---|
| Heltec WiFi LoRa 32 V3 | ₹2,200 – ₹2,600 | Inbuilt OLED display aur LoRa radio ke saath. |
| GPS Module (NEO-6M) | ₹350 – ₹550 | Ceramic antenna included hota hai. |
| LiPo Battery (1000mAh) | ₹400 – ₹600 | Robu.in par "3.7V Lithium Polymer" check karein. |
| Casing (3D Printed) | ₹300 – ₹500 | Local printing service ya filament cost. |
| Total (Per Pet) | ~₹3,250 – ₹4,250 | |
Base Station (Receiver)
Aapko sirf ek receiver chahiye, chahe aapke paas kitne bhi pets hon.
- Heltec WiFi LoRa 32 V3: ~₹2,400
- High-Gain Antenna (Optional): ₹800 – ₹1,500 (Agar 5km+ range chahiye).
- Total Base Station: ~₹3,200
2. Tracking Multiple Pets (Ek Antenna se)
Jee haan, ye bilkul sach hai. LoRa WiFi ki tarah ek networking protocol hai. Jaise aapka WiFi router ghar ke 10 phones se connect ho sakta hai, waise hi aapka LoRa receiver multiple pet collars ko sun sakta hai.
Ye Kaise Kaam Karta Hai?
- Unique IDs: Hum har collar ko code mein ek alag naam dete hain (e.g., "PUPPY_1", "PUPPY_2").
- The "Party Line": Sabhi pets ek hi frequency (India ke liye 865-867MHz) par baat karte hain.
- Collision Avoidance: Do pets ek saath data bhejkar signal kharab na karein, isliye hum code mein ek chota sa "random delay" add karte hain data bhejne se pehle.
3. The Wiring (Universal)
Har collar ke liye wiring same rahegi. Connections bahut simple hain:
GPS GND → Heltec GND
GPS TX → Heltec GPIO 47
GPS RX → Heltec GPIO 48
4. The Code (Multi-Pet Ready)
A. Transmitter Code (The Collar)
Ye code pet ke board par upload karein. Zaruri: Har naye pet ke liye String deviceID change karna na bhulein!
#include
#include
// --- CONFIGURATION ---
String deviceID = "BUDDY_01"; // Pet 2 ke liye isse change kare (e.g., "DAISY_02")
// ---------------------
#define GPS_RX 47
#define GPS_TX 48
HardwareSerial gpsSerial(1);
TinyGPSPlus gps;
void setup() {
heltec_setup();
gpsSerial.begin(9600, SERIAL_8N1, GPS_RX, GPS_TX);
// LoRa Settings for Long Range
radio.setBandwidth(125.0);
radio.setSpreadingFactor(12);
radio.setCodingRate(8);
radio.setOutputPower(22);
}
void loop() {
heltec_loop();
while (gpsSerial.available() > 0) {
gps.encode(gpsSerial.read());
}
static unsigned long lastSend = 0;
// Send every 15 seconds + a random delay to avoid collision
int randomDelay = random(0, 2000);
if (millis() - lastSend > (15000 + randomDelay)) {
if (gps.location.isValid()) {
// Packet Format: "ID,Lat,Lng" -> "BUDDY_01,18.5204,73.8567"
String payload = deviceID + "," + String(gps.location.lat(), 6) + "," + String(gps.location.lng(), 6);
display.clear();
display.printf("Sending: %s", payload.c_str());
radio.transmit(payload.c_str());
} else {
display.clear();
display.println("Waiting for GPS...");
}
lastSend = millis();
}
}
B. Receiver Code (The Base Station)
Ye Python script aapke Debian PC ya Laptop par chalegi. Ye ab multiple pets ko handle karti hai aur sabko ek hi log file mein save karti hai.
import serial
import csv
import time
SERIAL_PORT = '/dev/ttyACM0'
LOG_FILE = "/home/user/tracker_logs.csv"
def main():
ser = serial.Serial(SERIAL_PORT, 115200, timeout=1)
print(f"Tracking System Active on {SERIAL_PORT}...")
with open(LOG_FILE, mode='a', newline='') as file:
writer = csv.writer(file)
# Add "Pet_ID" to the header if file is empty
if file.tell() == 0:
writer.writerow(["Timestamp", "Pet_ID", "Latitude", "Longitude", "RSSI"])
while True:
if ser.in_available():
try:
# Expecting: "BUDDY_01,18.5204,73.8567"
line = ser.readline().decode('utf-8').strip()
if "," in line:
parts = line.split(",")
if len(parts) >= 3:
pet_id = parts[0]
lat = parts[1]
lng = parts[2]
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
print(f"[{timestamp}] {pet_id} is at {lat}, {lng}")
writer.writerow([timestamp, pet_id, lat, lng])
file.flush()
except Exception as e:
print(f"Signal Glitch: {e}")
if __name__ == "__main__":
main()
5. Summary & Tips for Indian Users
- Frequency: India mein license-free band 865-867 MHz hai. Jab aap boards kharidein, toh koshish karein ki 868MHz version lein. Ye India mein easily milte hain aur software se tune ho jate hain (hobby use ke liye 868MHz bhi theek kaam karta hai par legal compliance ke liye tune karna behtar hai).
- Battery Safety: LiPo batteries ko puncture hone se bachana zaruri hai. Apne 3D printed case ko mazboot banayein taaki pet khelte waqt use damage na kare.
- Antenna: Base station ko jitna uncha rakhenge (roof par), utni achi range milegi. Ek achi 5dBi antenna 2km ki range ko 8km tak badha sakti hai.