ร่างเล็ก ๆ เพื่อเรียกใช้โหนด Mapper TTN บนวิทยุ Adafruit Feather M0 ด้วยโมดูลวิทยุ Lora ที่มีขนนก OLED


ดู https://ttnmapper.org/ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงการ TTN Mapper
ในการเปิดเผย RFM95 DIO1 ไปยัง M0 ให้ประสานสะพานจาก IO1 ถึง Digital #11 (หรือพอร์ตฟรีอื่น ๆ )
วิธีที่ง่ายที่สุดคือการประสานสะพานนี้บน Featherwing
นอกเหนือจากการสนับสนุน Adafruit SAMD คุณจะต้องมีไลบรารีต่อไปนี้:
คัดลอก ttn_secrets_template.h ไปยัง ttn_secrets.h และตั้งค่าคีย์แอปพลิเคชันและแอป EUI
คุณต้องกำหนดอุปกรณ์ที่ไม่ซ้ำกัน EUI - เนื่องจาก Adafruit Feather ไม่มีหมายเลขซีเรียลให้ใช้งานที่สร้างขึ้นโดยอัตโนมัติในคอนโซล TTN
โดยค่าเริ่มต้นโหนดจะส่งข้อความด้วย * เป็น payload ทุกนาที
send_packet_interval ใน ttn_mapper.cpp (Respect Duty Cycle!)* , Unabment #define CAYENNE_LPP ใน ttn_mapper.cppคอมไพล์อัปโหลดและคุณควรจะไปได้ดี!
ในการส่งตำแหน่งตัวติดตามโดยตรงไปยังการรวม TTN Mapper คุณสามารถเพิ่มโมดูล GPS และใช้สคริปต์ ttn-mapper-gps
คุณจะต้อง:
และห้องสมุดต่อไปนี้:
เพิ่มการรวม TTN Mapper ลงในแอปพลิเคชันของคุณใน คอนโซล 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 ;
}