ttn mapper
1.0.0
OLEDフェザーウィングを備えたLora Radio Moduleを備えたAdafruit Feather M0ラジオでTTNマッパーノードを実行する小さなスケッチ。


TTN Mapperプロジェクトの詳細については、https://ttnmapper.org/を参照してください。
RFM95 DIO1をM0に露出させるには、 IO1からデジタル#11 (またはその他のフリーポート)にブリッジをはんだ付けします。
最も簡単なのは、フェザーウィングのこの橋をはんだ付けすることです。
Adafruit SAMDサポートは別として、次のライブラリが必要になります。
ttn_secrets_template.hをttn_secrets.hにコピーし、アプリケーションキーとアプリEUIを設定します。
また、ユニークなデバイスEUIを定義する必要があります。AdafruitFeatherにはシリアル番号がないため、TTNコンソールで自動的に生成されたものを使用します。
デフォルトでは、ノードは1分ごとにペイロードとして*でメッセージを送信します。
ttn_mapper.cppでsend_packet_interval変更できます(敬意を払うサイクル!)*の代わりにcayenne lppとして送信するには、 ttn_mapper.cppで#define CAYENNE_LPP uncommentに送信するにはコンパイル、アップロードすれば、行ってください!
トラッカーの場所をTTNマッパー統合に直接送信するには、GPSモジュールを追加してttn-mapper-gpsスクリプトを使用できます。
必要になります:
と次のライブラリ:
TTNコンソールのアプリケーションにTTNマッパー統合を追加し、次のようなペイロードデコーダーを構成します。
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 ;
}