Sketsa kecil untuk menjalankan node mapper TTN pada radio Feather M0 Adafruit dengan modul radio Lora dengan oled featherwing.


Lihat https://ttnmapper.org/ untuk informasi lebih lanjut tentang proyek TTN Mapper.
Untuk mengekspos RFM95 DiO1 ke M0, Solder A Bridge dari IO1 ke Digital #11 (atau port gratis lainnya).
Yang termudah adalah menyolder jembatan ini di featherwing.
Selain dukungan SAMD Adafruit Anda akan membutuhkan perpustakaan berikut:
Salin ttn_secrets_template.h ke ttn_secrets.h dan atur kunci aplikasi Anda dan aplikasi eUI.
Anda juga perlu mendefinisikan perangkat unik EUI - karena bulu Adafruit tidak memiliki nomor seri, ambil yang secara otomatis dihasilkan di konsol TTN.
Secara default, node mengirim pesan dengan * sebagai muatan setiap menit.
send_packet_interval di ttn_mapper.cpp (hormat siklus tugas!)* , uncomment #define CAYENNE_LPP di ttn_mapper.cppKompilasi, unggah dan Anda harus baik untuk pergi!
Untuk secara langsung mengirim lokasi pelacak ke integrasi TTN Mapper , Anda dapat menambahkan modul GPS dan menggunakan skrip ttn-mapper-gps .
Anda akan membutuhkan:
Dan perpustakaan berikut:
Tambahkan integrasi TTN Mapper ke aplikasi Anda di konsol TTN dan konfigurasikan decoder payload dengan:
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 ;
}