LoraWAN TTGO T-Beam

Einstig in die LoraWeldt mit mehreen NODS und Gatways

Für unterwegs und Mobile mit GPS NEO-6M und ESP32 dadurch auch Bluetooth und WLAN. Habe ich mich für den TTGO T-beam esp32 endschieden. Es gibt unterschiedliche Versionen ich habe die V1.1 bekomme die hat an Anderen Pinbelegung dazu komme ich gleich noch Abbildung unten V1.1 . Posetiv an diesen Model es ist auf der rückseite ein 18650 Battery Halter Verbaut. Genuaso wie eine Ladeschaltung auf der Platine verbaut ist.

Software
Meine ersten versuche die ich benutze habe um eine TTnmapper aufzubauen ist von DeuxVis

GitHub Archiv von DeuxVis

Configs angepast config.h ABP daten von The Things Network eingetragen
genauso die daten zu OTAA nd hochladen.

Nur leide passierte nix auser stundenlang
„No GPS fix“

nun habe ich mich auf die suche gemacht. Hatte schon fast gedacht man wieder Pech gehabt Modul defekt. Nein nach genauen hinsehen auf die Platine konnte ich es ja schon sehen da stand es ja drauf. Die TX Leitung ist nicht wie in der Vorigen Version auf Pin 15 sondern auf Pin 34 TX und Gleichgeblieben auf bin 12 RX. Nach ändern in der Config endliche GPS Daten Empfangen und er hat seine Daten gesendet.

Quellcode angepast und schwups das war der Fehler. Einmal richtung fester gehalte und schon fing an die GPS led an zu blinken da die ersten Pakete rein trudeln.
Bis nach ca 1-2 minute das erste packet an ttn gesendet worde war.

Da nun alles Leuft dachte ich mir nun noch ein Display dran einmal in die grabbelkiste geschaut und wie der zufall so will habe ein richtiges noch da. Wichtig hierbei es mus eines sein wo auf pin1 vxx ist auf bin 2 gnd 3 und 4 daten

dazu habe ich eine buchse angelötet so das ich das display auch mal wider abmachen kann oder wechseln.

nun muste ich nur noch beim display scl scm umdrehen in der display config und alles leuft

Wichtig ist jetzt noch den decod auf the things network anzupassen weil sonst werden die daten nicht richtig verarbeitet

Configure den Payload decoder mit:

function Decoder(bytes, port) {
    var decoded = {};

    decoded.latitude = ((bytes[0]<<16)>>>0) + ((bytes[1]<<8)>>>0) + bytes[2];
    decoded.latitude = (decoded.latitude / 16777215.0 * 180) - 90;

    decoded.longitude = ((bytes[3]<<16)>>>0) + ((bytes[4]<<8)>>>0) + bytes[5];
    decoded.longitude = (decoded.longitude / 16777215.0 * 360) - 180;

    var altValue = ((bytes[6]<<8)>>>0) + bytes[7];
    var sign = bytes[6] & (1 << 7);
    if(sign)
    {
        decoded.altitude = 0xFFFF0000 | altValue;
    }
    else
    {
        decoded.altitude = altValue;
    }

    decoded.hdop = bytes[8] / 10.0;

    return decoded;
}