นี่คือเฟรมเวิร์ก Arduino พื้นฐานสำหรับการใช้วิทยุ HF Lorawan Radio-Modem ที่เพิ่มขึ้นและเชื่อมต่อเซ็นเซอร์กับเครือข่าย Lorawan เช่น TTN
เราใช้อุปกรณ์ I2C Fram ที่ที่อยู่ 0x50 สำหรับหน่วยความจำที่ไม่ระเหย อุปกรณ์นี้สามารถละเว้นหรือแทนที่ด้วย EEPROM ที่มีการเปลี่ยนแปลงเล็กน้อย
Deveui มาจาก Radio-Modem หรือผ่านชิป I2C 24AA025E64 ที่ที่อยู่ 0x52 หรือสามารถตั้งค่าในไฟล์ config.h แต่ละโมเด็มมีรหัส QR อยู่ด้านบนพร้อมกับ deveui
ฐานรหัสนี้ได้รับการพัฒนาและทดสอบสำหรับวงดนตรีความถี่ USA TTN แต่สามารถเปลี่ยนเป็นแถบอื่น ๆ ได้
ทดสอบด้วย: RHF0M062-HF22 และ RHF0M0E5-HF22 แต่ควรทำงานร่วมกับ RHF78-052LA-HF22 และโมดูลอนุพันธ์อื่น ๆ จาก HF ที่เพิ่มขึ้น
http://www.risinghf.com/home
รหัสทดสอบนี้มี 3 รูทีนส่ง
สถานะสั้นจะใช้สำหรับข้อความแสดงข้อผิดพลาดและถูก จำกัด ไว้ที่ 9 ไบต์ส่งเฉพาะเมื่อเราเริ่มต้นและเมื่อเรามีข้อผิดพลาด ... (DR0 -> 11 ไบต์ -2 ไบต์ MAC ที่เป็นไปได้)
สถานะถูกส่งไปไม่บ่อยนักพร้อมข้อมูลอุปกรณ์ ... เวอร์ชันคอมไพล์เวลา ฯลฯ ...
ข้อมูลเซ็นเซอร์ถูกส่งในกรณีเริ่มต้นทุกชั่วโมง ...
นอกจากนี้เรายังได้รับการสนับสนุนสำหรับการเข้าร่วมเป็นระยะ หลังจากย้ายจาก V2 เป็น V3 ใน TTN มันก็ชัดเจนว่าอุปกรณ์จำเป็นต้องเข้าร่วมอีกครั้งเป็นครั้งคราวเพื่อสนับสนุนการเคลื่อนไหวในอนาคตหรือการเปลี่ยนแปลงในเครือข่ายหรือ TTN
ฐานรหัสนี้ยังช่วยให้สามารถประมวลผลข้อความดาวน์โหลดได้สองสามรายการ
เมื่อเริ่มต้นรหัสจะอ่านบล็อกข้อมูลที่เก็บไว้ใน FRAM (ถ้ามี) และเปรียบเทียบฟิลด์วันที่คอมไพล์และ CRC กับสิ่งที่เก็บไว้ใน FRAM เพื่อดูว่าเรามีการบูตครั้งที่ 1 หรือไม่ ถ้าเป็นเช่นนั้นเราจะบันทึกสำเนาของบล็อกข้อมูลใน Fram เพื่อใช้ในอนาคต ถ้าไม่ใช่เราปรับจำนวนการบูตและบันทึกสาเหตุการบูต
พอร์ต USB ถูกปิดเมื่อทำการบู๊ตเพื่อประหยัดพลังงานซึ่งต้องใช้สวิตช์รีเซ็ตสองครั้งเพื่อกลับไปที่ Boot-Loader
มีตัวเลือกการกำหนดค่ามากมายที่คุณสามารถตั้งค่าในไฟล์ config.h รวมถึงปุ่ม Lorawan, ตารางความถี่, เวลาของฟังก์ชั่นการส่ง ฯลฯ ...
Radio-Modem มี EEPROM ที่จะเก็บพารามิเตอร์ส่วนใหญ่ที่เก็บไว้หลังจากการตั้งค่า ... config.h มีคำจำกัดความที่จะปิดใช้งานการตั้งค่าพารามิเตอร์ใหม่ในโมเด็มหากไม่จำเป็นต้องรีเซ็ตอีกครั้ง
Macros Debug1 และ Debug2 สามารถปิดใช้งานเพื่อลบเอาต์พุตดีบั๊กทั้งหมดไปยังพอร์ตอนุกรมพวกเขาอนุญาตให้เราใช้ฟังก์ชั่น "C" printf (... ) ทั่วไปในรหัสของเราแทนฟังก์ชั่น Arduino serial.print (... )
รหัสนี้ได้รับการทดสอบด้วยฮาร์ดแวร์ที่เป็นกรรมสิทธิ์และด้วยบอร์ด Rocketstream Mini-Ultra-Pro-Lora
TBD:
Adding some logging to flash
look at over-the-air code upgrade...
Add support for EEProm option to replace FRAM
An option to get DEVEUI from the modem and or UUID from the CPU
Add more commands to support Class B in the modem library
Documentation of modem library
Add AT command to set various parameters from the serial port
Libraries used by this project:
LoRaWan-RFH0M062-mod
This radio-modem library was developed by SEEED studios for the RHF78-052 device, I have
made many changes to support the newer radios, added an error function, and speed up timing
on messages to/from the radio.
Stopwatch
RTCZero-MOD
FRAM_MB85RC_I2C
Arduino_CRC32