ردیاب LoRa GFSK برای حیوانات چیست؟ (مبتدی)
گم شدن دام در مزارع بزرگ یک مشکل واقعی است. یک ردیاب LoRa کوچک زیر ۱۸ دلار میتوان روی گردن گاو یا گوسفند قرار داد که موقعیت GPS را هر ۵ دقیقه با LoRa 433MHz ارسال میکند. برد ۳-۵km و مصرف بسیار کم (باتری ۳ ماهه با AA) این راهحل را برای کشاورزان عملی میکند.
مدولاسیون GFSK (Gaussian Frequency Shift Keying) در SX1278 کارایی طیفی خوبی دارد — بستههای کوچک GPS را در چند میلیثانیه ارسال میکند و بقیه وقت در Deep Sleep میماند. حتی میتوان از مد OOK (On-Off Keying) برای مصرف کمتر استفاده کرد.
محصولی که میسازید
یک ردیاب LoRa GFSK برای گله — نقشه زنده روی موبایل.
- هزینه هر ردیاب: SX1278+Mini GPS+ATmega = ۱۸ دلار
- باتری: ۳ ماه با ۴× AA (Deep Sleep)
- برد: ۳-۵km در مزرعه باز
سیمبندی ردیاب کوچک
Arduino Pro Mini 3.3V + SX1278 + L80 GPS Mini
// SX1278 به Pro Mini:
MOSI → Pin 11, MISO → Pin 12, SCK → Pin 13
CS → Pin 10, RST → Pin 9, DIO0 → Pin 2
// GPS L80 به Pro Mini (SoftwareSerial):
GPS_TX → Pin 4 (RX), GPS_RX → Pin 5 (TX)
// باتری:
4× AA → قبل از Pro Mini یک MCP1700 3.3V LDO
(از 6V باتری به 3.3V تنظیم شده)
// LED اندیکاتور (اختیاری):
LED → Pin 8 از طریق 330Ω
کد ردیاب با Deep Sleep
#include <LoRa.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <avr/sleep.h>
#include <avr/wdt.h>
SoftwareSerial gpsSerial(4,5);
TinyGPSPlus gps;
volatile int wdtCount=0;
ISR(WDT_vect) { wdtCount++; }
void sleep8s() {
wdt_enable(WDTO_8S);
WDTCSR |= (1 << WDIE);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable(); sleep_mode(); sleep_disable();
wdt_disable();
}
void setup() {
gpsSerial.begin(9600);
LoRa.begin(433.175E6);
LoRa.setSpreadingFactor(9); // SF9 GFSK-like tradeoff
LoRa.setSignalBandwidth(125E3);
LoRa.setTxPower(17);
}
void loop() {
// بیدار شدن و GPS Fix گرفتن (حداکثر ۶۰ ثانیه):
unsigned long t=millis();
while(millis()-t < 60000) {
while(gpsSerial.available()) gps.encode(gpsSerial.read());
if(gps.location.isUpdated()) break;
}
if(gps.location.isValid()) {
char buf[50];
snprintf(buf,50,"%.6f,%.6f,%.1f",
gps.location.lat(), gps.location.lng(),
gps.altitude.meters());
LoRa.beginPacket();
LoRa.print("ID:01,"); // شناسه حیوان
LoRa.print(buf);
LoRa.endPacket();
}
// خواب ۵ دقیقه (38 × 8 ثانیه ≈ ۵ دقیقه):
LoRa.sleep();
for(int i=0;i<38;i++) sleep8s();
LoRa.begin(433.175E6);
}
چکلیست ردیاب گله
| بررسی | نتیجه |
|---|---|
| مصرف Sleep زیر ۵μA؟ | با آمپرمتر دقیق |
| GPS Fix در مزرعه در ۶۰s؟ | ☐ |
| پکت در ۳km دریافت میشود؟ | ☐ |
| Geofence Alert در خروج از مزرعه؟ | در نرمافزار GCS |