Saha çekicileri için hız ve yön: hesaplama takipçide mi yapılsın yoksa veri ulaştıktan sonra mı?
Yapay zekâ tarafından English dilinden çevrildi ·
Fabrika sahasında treyler taşıyan 14 saha çekicisi işletiyoruz. Her birinde benim yaptırdığım bir kutu var: Arduino Mega, SIM800L, u-blox NEO-6M. Her 30 saniyede bir enlem ve boylamı GPRS üzerinden Hermetry’ye gönderiyor ve harita kartı çok iyi görünüyor.Şimdi lojistik ekibi hız (saha limitimiz 15 km/s) ve hareket yönünü istiyor. Birinci yüklenicim “ardışık noktalardan bulutta hesaplayın” diyor. Diğer yüklenici “kutuda yapın” diyor. İkisinden birine ödeme yapmak zorundayım. Hangisi doğru?
We run 14 yard tractors moving trailers around the plant. Each has a box I had built: Arduino Mega, SIM800L, u-blox NEO-6M. It sends lat and lng every 30 seconds over GPRS to Hermetry and the map card looks great.
Now logistics wants speed (we have a 15 km/h yard limit) and direction of travel. My contractor says “do it in the cloud from consecutive points”. The other contractor says “do it on the box”. I have to pay one of them. Which is right?
Yapay zekâ tarafından English dilinden çevrildi ·
İki noktadan yola çıkarak bu sadece zamana bölünmüş mesafe değil mi? Haversine formülü, 30 sn arayla. Her yerde kolayca yapılabilir gibi görünüyor.
From two points it’s just distance over time? Haversine formula, 30 s apart. Seems easy to do anywhere.
Yapay zekâ tarafından English dilinden çevrildi ·
Daha fazla değer göndermek daha fazla veri maliyeti getirir mi? Park sensörlerimiz için kullandığımız SIM planı çok küçük.
Does sending more values cost more data? Our SIM plan for the parking sensors is tiny.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
İkisini de ödemedim, bakım teknisyenim sizin kod parçacığınızla bir öğleden sonra içinde halletti. 2 km/s altında yön verisi oynak olduğu için yalnızca speed_kmh > 2 olduğunda gösteriyoruz. İlk hafta: 6 alarm, hepsi aynı sürücü. Lojistik ekibi memnun.
Paid neither, my maintenance tech did it in an afternoon with your snippet. Course is jumpy below 2 km/h so we only show it when speed_kmh > 2. First week: 6 alarms, all the same driver. Logistics is happy.
Yapay zekâ tarafından English dilinden çevrildi ·
Meğer GPS Doppler ölçümü yapıyormuş. Benim haversine fikrimden çok daha akıllıca.
TIL the GPS does Doppler. Way smarter than my haversine idea.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

