คลาส micropython สำหรับโมดูล LORA ซีรีส์ EBYTE E22
โมดูล EBYTE E22 ที่รองรับจะขึ้นอยู่กับชิปเซ็ต SEMTECH SX1262/SX1286 และพร้อมใช้งานสำหรับ 400 MHz (410.125 ... 493.125) และ 900 MHz (850.125 ... 930.125) พลังงาน TX
อินเทอร์เฟซ UART แบบง่ายใช้ในการควบคุมอุปกรณ์
แผ่นข้อมูล eByte:
E22-900T22D
E22-400T22D
คลาส Lorae22 ขึ้นอยู่กับคลาส Lorae32 โดย Effevee: https://github.com/effevee/lorae32
เชื่อมต่อเสาอากาศที่เหมาะสมก่อนส่ง!
ก่อนการใช้งานให้ตรวจสอบกฎระเบียบในพื้นที่ของคุณสำหรับการใช้ช่วงความถี่นี้ เช่นในยุโรปส่วนใหญ่พลังงาน TX ที่อนุญาตสูงสุดต่ำกว่าค่าเริ่มต้นที่ 22 dBm! นอกจากนี้ยังอาจมีข้อ จำกัด เพิ่มเติมเช่นข้อ จำกัด เกี่ยวกับวัฏจักรการทำงานของการส่งสัญญาณของคุณ (นั่นคือส่วนของเวลาอากาศถึงเวลาทั้งหมดที่ขยายออกไปในช่วงระยะเวลาของการใช้อุปกรณ์)!

ดูรหัสสำหรับการกำหนดค่า PIN
หมายเหตุ: รหัสทดสอบ LORAE22 แตกต่างจากรหัสทดสอบ E32 ในแง่ของ UART และ AUX PIN ที่ใช้แล้ว! นอกจากนี้ Lorae22 ใช้ 'โหมดปกติ' ในขณะที่ Lorae32 ใช้ 'โหมดปลุก' ใน sendMessage ()
| โหมดการส่งสัญญาณ | tx (addr - ch) | RX (addr - ch) | ผงชูรส (addr - ch) | รหัสเครื่องส่งสัญญาณ | รหัสรับ |
|---|---|---|---|---|---|
| โปร่งใส | 0x0001 - 0x02 | 0x0001 - 0x02 | 0x0001 - 0x02 | testsende22_transparent.py | testRecve22_Transparent.py |
| แก้ไข P2P | 0x0001 - 0x02 | 0x0003 - 0x04 | 0x0003 - 0x04 | testsende22_p2p.py | testRecve22_p2p.py |
| การออกอากาศ | 0x0001 - 0x02 | 0x0003 - 0x04 | 0xffff - 0x04 | testsende22_broadcast.py | testRecve22_broadcast.py |
| จอภาพแก้ไข | 0x0001 - 0x02 | 0xffff - 0x04 | 0x0003 - 0x04 | testsende22_monitor.py | testRecve22_monitor.py |
แต่ละโหนดส่งข้อความในช่วงเวลาคงที่ที่มีค่าควบคุม LED ตามสถานะของปุ่มกด
หลังจากนั้นจะตรวจสอบข้อความที่ได้รับ หากข้อความที่มีค่าควบคุม LED พร้อมใช้งาน LED จะถูกสลับตามนั้น
โหมดการส่งสัญญาณ (ที่อยู่/การกำหนดค่าช่องสัญญาณ) สำหรับโหนดโลคัลและโหนดเพียร์สามารถตั้งค่าตามที่ต้องการในอาร์เรย์ addr และ chan
รหัสของ node0.py และ node1.py เหมือนกันยกเว้นการตั้งค่าของตัวแปร ฉัน และ เพียร์
| Node0 | โหนด 1 |
|---|---|
| node0.py | Node1.py |
เครื่องส่งสัญญาณ LORA ส่งสตริงที่มี ID ชิปและหมายเลขลำดับข้อความในช่วงเวลาคงที่
ตัวรับสัญญาณ LORA พิมพ์/บันทึก <timestamp>, <Tlititude>, <Longitude>, <ระดับความสูง>, <rssi> ในช่วงเวลาที่กำหนดไว้ล่วงหน้า
ตำแหน่งของตัวรับสัญญาณและการประทับเวลาจะถูกถอดรหัสจากข้อความ NMEA ที่ได้รับผ่าน UART จากตัวรับสัญญาณ GPS เพื่อจุดประสงค์นี้ใช้ micropyGPs
หากพร้อมใช้งานข้อความ LORA ที่เข้ามาจะได้รับจากโมดูล Transceiver EBYTEE22 LORA ผ่าน UART อื่น หากข้อความที่คาดหวังจากเครื่องส่งสัญญาณ LORA ไม่สามารถรับได้ในช่วงเวลาหนึ่งค่า RSSI ของ -255 dBM จะถูกสันนิษฐานว่าเป็นการสูญเสียลิงก์วิทยุ LORA
tuple <timestamp>, <การละติจูด>, <ลองจิจูด>, <ระดับความสูง>, <rssi> ถูกพิมพ์และเขียนไปยังไฟล์บันทึกเฉพาะในกรณีที่ตำแหน่งที่ถูกต้อง
หากเปิดใช้งานการเข้าสู่ระบบชื่อไฟล์ในรูปแบบ log_ <8_random_hex_digits _>. CSV ถูกสร้างขึ้นหลังจากเปิดเครื่องหรือรีเซ็ต ไฟล์บันทึกถูกเขียนไปยังระบบไฟล์ภายในของ Micropython การบันทึกจะต้องหยุดอย่างชัดเจนโดยการกดปุ่มมิฉะนั้นไฟล์ไม่สามารถปิดได้อย่างถูกต้องและจะเสียหาย/ว่างเปล่า
LED สองตัวระบุสถานะของการแก้ไข GPS และลิงก์ LORA ตามลำดับ
| โหนดเครื่องส่งสัญญาณ | โหนดตัวรับสัญญาณ |
|---|---|
| lora_tx.py | lora_rssi_logger.py |
ไฟล์บันทึกสามารถแปลงจาก CSV -format เป็นรูปแบบที่เหมาะสม - เช่น GPX หรือ KML - บนโฮสต์ในภายหลัง ดู RSSI_CSV_TO_KML.PY - ไฟล์เอาต์พุต KML ให้ค่า RSSI เป็นข้อมูลเพิ่มเติมที่จะแสดงด้วยพล็อตระดับความสูงใน GoogleIarth (การใช้งาน: rssi_csv_to_kml.py log_deadbeef.csv >log_deadbeef.kml )
หมายเหตุ: พล็อตทำหน้าที่เป็นตัวอย่าง - ช่วงเวลาการบันทึกควรสั้นลงและกลยุทธ์การบันทึกได้รับการแก้ไขหลังจากนั้น