Kleine Skizze, um einen TTN -Mapper -Knoten auf einem Adafruit Feather M0 -Radio mit Lora -Radio -Modul mit einem OLED -Federwing auszuführen.


Weitere Informationen zum TTN -Mapper -Projekt finden Sie unter https://ttnmapper.org/.
Um den RFM95 DIO1 dem M0 auszusetzen, löten Sie eine Brücke vom IO1 auf Digital Nr. 11 (oder einen anderen freien Port).
Am einfachsten ist es, diese Brücke auf dem Federwing zu löten.
Neben dem Adafruit SAMD -Support benötigen Sie die folgenden Bibliotheken:
Kopieren Sie ttn_secrets_template.h in ttn_secrets.h und setzen Sie Ihren Anwendungsschlüssel und App EUI.
Sie müssen auch ein eindeutiges Gerät EUI definieren - da die Adafruit -Feder keine Seriennummer hat, nehmen Sie die automatisch in der TTN -Konsole generierte.
Standardmäßig sendet der Knoten eine Nachricht mit * als Nutzlast pro Minute.
send_packet_interval in ttn_mapper.cpp ändern (Respektdienstzyklus!)* zu senden, kann #define CAYENNE_LPP in ttn_mapper.cpp definierenKompilieren, hochladen und Sie sollten gut gehen!
Um den Tracker-Speicherort direkt an die TTN-Mapper- Integration zu senden, können Sie ein GPS-Modul hinzufügen und das Skript ttn-mapper-gps verwenden.
Sie brauchen:
Und die folgenden Bibliotheken:
Fügen Sie die TTN -Mapper -Integration Ihrer Anwendung in der TTN -Konsole hinzu und konfigurieren Sie den Nutzlast -Decoder mit:
function Decoder ( bytes , port ) {
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
var decoded = { } ;
if ( port === 2 ) {
// The port should match the port configured in `ttn_mapper.cpp`
var i = 0 ;
decoded . latitude = ( bytes [ i ++ ] << 24 ) + ( bytes [ i ++ ] << 16 ) + ( bytes [ i ++ ] << 8 ) + bytes [ i ++ ] ;
decoded . latitude = ( decoded . latitude / 1e7 ) - 90 ;
decoded . longitude = ( bytes [ i ++ ] << 24 ) + ( bytes [ i ++ ] << 16 ) + ( bytes [ i ++ ] << 8 ) + bytes [ i ++ ] ;
decoded . longitude = ( decoded . longitude / 1e7 ) - 180 ;
decoded . altitude = ( bytes [ i ++ ] << 8 ) + bytes [ i ++ ] ;
decoded . altitude = decoded . altitude - 0x7fff ;
decoded . hdop = ( bytes [ i ++ ] << 8 ) + bytes [ i ++ ] ;
decoded . hdop = decoded . hdop / 10.0 ;
if ( bytes . length >= 14 ) {
decoded . voltage = ( ( bytes [ i ++ ] << 8 ) >>> 0 ) + bytes [ i ++ ] ;
decoded . voltage /= 100.0 ;
}
}
return decoded ;
}