www.elektronik.si
Lora omrežje omogoča tudi sledenje

www.elektronik.si -> Navigacija in sledenje

Avtor: mosqito PrispevekObjavljeno: Sob Sep 22, 2018 12:22 am    Naslov sporočila:  Lora omrežje omogoča tudi sledenje
----------------------------------------------------------------------------
TheThingsNetwork omogoča mapiranje pokritosti. V ta namen je spletna aplikacija TTN Mapper. Obstaja tudi namenska aplikacija za android, s katero lahko sproti spremljamo na kateri gateway se je naš tracker povezal in to v realnem času.

Kaj je potrebno?

Najbolje je imeti eno LoRa napravico z GPS. Jaz uporabljam kar breakout board z RAK811. TTN ima direktno integracijo s TTN mapperjem. Trenutno GPS lokacijo se da preko TTN potem tudi spremljati na naslovu:
https://ttnmapper.org/

Takole se potem lahko spremlja tudi individualno (poznati je potrebno le ime napravice)... glej priponko spodaj.

Naredil sem pa tudi pretvornik iz lokacije v TTN na APRS. Pogoj je seveda veljaven radioamaterski klicni znak. APRS se shranjuje za nazaj in tako lahko pogledam npr. da sem npr. v zadnjem tednu bicikliral po Gorjancih, se peljal na šiht in vsak dan v LJ Smile

Avtor: eboc PrispevekObjavljeno: Sob Sep 22, 2018 9:11 pm    Naslov sporočila:  
----------------------------------------------------------------------------
No, da ti bomo verjeli nam zaupaj ime tvoje napravice Smile

LoRa postaja vedno bolj zanimiva.

Sicer pa zakaj nisi uporabil breakout board, ki si ga sam razvil: http://e.pavlin.si/2018/05/07/lora-module-in-dil-form/
Kaj si uporabil za GPS? Koliko je vse skupaj veliko?

Avtor: mosqito PrispevekObjavljeno: Sob Sep 22, 2018 10:13 pm    Naslov sporočila:  
----------------------------------------------------------------------------
eboc je napisal/a:
No, da ti bomo verjeli nam zaupaj ime tvoje napravice Smile

LoRa postaja vedno bolj zanimiva.

Sicer pa zakaj nisi uporabil breakout board, ki si ga sam razvil: http://e.pavlin.si/2018/05/07/lora-module-in-dil-form/
Kaj si uporabil za GPS? Koliko je vse skupaj veliko?


V času, ko sem že dobil tracker, še nisem imel svojega do konca razvitega. Na omenjenem boradu je uBlox-ov sprejemnik, ki dela zelo dobro. Ponavadi ima okrog 10s za "cold start".

Sicer pa je potrebno prenesti geografsko širino, dolžino in višino, ter hdop oz. napako. Lahko pa se beleži še kakšen drug odčitzek, npr. akcelerometer. Sicer pa je v "meta" podatkih vsakega paketa še zapisano preko katerega gatewaya je paket prispel, koliko je bilo signala in šuma, frekvenca, paramteri modulacije, ter čas "poleta" podatkov po zraku

Primer paketa na gatewayu:
Koda:
{
  "gw_id": "s54mtb-experimental-gateway",
  "payload": "QJMcASYAcEoCQLmAhb+6IO91DWFZ",
  "f_cnt": 19056,
  "lora": {
    "spreading_factor": 7,
    "bandwidth": 125,
    "air_time": 56576000
  },
  "coding_rate": "4/5",
  "timestamp": "2018-09-22T20:04:49.072Z",
  "rssi": -94,
  "snr": 4.25,
  "dev_addr": "26011C93",
  "frequency": 868100000
}


Sami podatki (payload) pa so kodirani in jih prepozna le aplikativni del oblaka, tam kjer registriraš napravice in kjer se podatki razkodirajo v (avtorju) razumljiv paket bajtov.

Sam strežnik naredi tudi konverzijo. Za tracking je recimo takole:

Koda:
function Decoder(b, port) {
var decoded = {};
    switch (port) {
        case 1:
        case 2:
            decoded.lat = ((b[0]<<16)>>>0) + ((b[1]<<8)>>>0) + b[2];
            decoded.lat = (decoded.lat / 16777215.0 * 180) - 90;
            decoded.lon = ((b[3]<<16)>>>0) + ((b[4]<<8)>>>0) + b[5];
            decoded.lon = (decoded.lon / 16777215.0 * 360) - 180;
     
            var altValue = ((b[6]<<8)>>>0) + b[7];
            var sign = b[6] & (1 << 7);
            if(sign)
            {
                decoded.alt = 0xFFFF0000 | altValue;
            }
            else
            {
                decoded.alt = altValue;
             }
            decoded.hdop = b[8] / 10.0;
       
        break;
       
        case 3:
            decoded.bat = (b[0] | b[1]<<8 | (b[1] & 0x80 ? 0xFF<<16 : 0)) * 10.0;

        break;
   
        case 4:
            decoded.aX = (b[0] | b[1]<<8 | (b[1] & 0x80 ? 0xFF<<16 : 0));
            decoded.aY = (b[2] | b[3]<<8 | (b[3] & 0x80 ? 0xFF<<16 : 0));
            decoded.aZ = (b[4] | b[5]<<8 | (b[5] & 0x80 ? 0xFF<<16 : 0));

        break;
}

return decoded;
}


Sama oblika paketa podatkov vsebuje tudi port (8 bitov). Nekaj je rezerviranih, sicer pa nimajo posebnega pravila izbire. V gornjem primeru je na portih 1 in 2 prenašana lokacija, na portu 3 stanje baterije in na portu 4 odčitek pospeškometra.

To potem v json notaciji prejme strežnik ttnmapper in shrani v bazo, od koder se izrisuje karta z vseni grafikoni.

Čar tega je, da če imaš na dosegu odprto omrežje, kot je TTN, ne rabiš drugega kot eno programirljivo napravico, ki se zna povezat v LoraWAN in že lahko pošiljaš podatke v svet. Gre tudi obratno (da se sprejemat), vendar je malo več omejitev, predvsem časovnih. Ni ravno primerno za recimo upravljanje kakega letalnika v realnem času. Je pa lahko uporabno za prižgat luč ali sprožiti kak alarm in podobno.

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group