TTGO T-Beam V1.0 / V1.1
Go to file
2019-08-23 10:22:03 -04:00
img Add images 2019-02-10 13:56:18 -05:00
main Update to version 1.1.0 2019-08-23 10:22:03 -04:00
LICENSE Push all files 2019-02-10 13:35:12 -05:00
README.md Update to version 1.1.0 2019-08-23 10:22:03 -04:00

TTGO T-Beam Tracker for The Things Network

Based on the code from xoseperez/ttgo-beam-tracker, with excerpts from dermatthias/Lora-TTNMapper-T-Beam to fix an issue with incorrect GPS data being transmitted to The Things Network. I also added support for the 915 MHz frequency (North and South America).

This is a LoRaWAN node based on the TTGO T-Beam development platform using the SSD1306 I2C OLED display. It uses a RFM95 by HopeRF and the MCCI LoRaWAN LMIC stack. This sample code is configured to connect to The Things Network using the US 915 MHz frequency by default, but can be changed to EU 868 MHz.

To start, install the dependencies and board, below, to your Arduino IDE. Then edit src/credentials.h to use either USE_ABP or USE_OTAA and add the Keys/EUIs for your Application's Device from The Things Network. Add the TTN Mapper integration to your Application (and optionally the Data Storage integration if you want to access the GPS location information yourself), then add the Decoder code, below, if using . Compile the Arduino code and upload it to your TTGO T-Beam. Turn on the device and once a GPS lock is acquired, the device will start sending data.

Arduino IDE Board

Follow the directions at espressif/arduino-esp32 and use board 'Heltec_WIFI_LoRa_32'.

Arduino IDE Library Dependencies

TTN Decoder

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;
}

The TTGO T-Beam development platform

TTGO T-Beam 01

TTGO T-Beam 02

TTGO T-Beam 03