Yapay zekâ tarafından English dilinden çevrildi ·
Ne yüklenici, ne de tam olarak. NEO-6M zaten ikisini de veriyor. $GPRMC cümlesi yere göre hızı (knot cinsinden) ve yere göre rotayı içerir; alıcı hızı Doppler etkisinden hesaplar, bu da 30 sn arayla alınan iki konumun farkını almaktan çok daha iyidir. 30 sn arayla alınan iki konum, bir koridorda ileri geri giden bir traktörü duruyormuş gibi gösterecektir.TinyGPS++ ile bu iki satırda yapılır:
float kmh = gps.speed.kmph(); // already converted from knots
float hdg = gps.course.deg();
snprintf(buf, sizeof buf,
"{"lat":%.6f,"lng":%.6f,"speed_kmh":%.1f,"course_deg":%.0f}",
gps.location.lat(), gps.location.lng(), kmh, hdg);
Bunları lat/lng ile aynı mesajda sayı olarak gönderin. Aynı mesaj, aynı maliyet; dolayısıyla @roberts.r birkaç bayt daha eklenir, ayrı bir mesaj olmaz. Ardından speed_kmh > 15 üzerine, tek bir GPS sıçramasının alarmı tetiklememesi için 2 okumalık debounce ile bir alarm kuralı tanımlayın.Sonradan hesaplanması gereken bir şey olursa (örneğin vardiya başına mesafe), bu, Save telemetry adımından önce kök akışta türetilmiş bir anahtar olarak eklenmelidir.
Neither contractor, sort of. The NEO-6M already gives you both. The $GPRMC sentence has speed over ground (in knots) and course over ground, and the receiver gets speed from Doppler, which is far better than differencing two fixes 30 s apart. Two fixes 30 s apart will show a tractor that went down and back an aisle as standing still.
With TinyGPS++ it’s two lines:
float kmh = gps.speed.kmph(); // already converted from knots
float hdg = gps.course.deg();
snprintf(buf, sizeof buf,
"{"lat":%.6f,"lng":%.6f,"speed_kmh":%.1f,"course_deg":%.0f}",
gps.location.lat(), gps.location.lng(), kmh, hdg);
Send them as numbers in the same message as lat/lng. Same message, same cost, so @roberts.r it’s a few bytes more, not another message. Then an alarm rule on speed_kmh > 15 with a debounce of 2 readings so one GPS jump doesn’t fire it.
If you ever do need something computed after the fact (distance per shift, say), that goes in the root flow before Save telemetry as a derived key.

