![]() | ![]() | ![]() |
|---|
นี่คือรหัสตัวอย่างสำหรับ Wisblock Weather Kit กับ RAK1901, RAK1902 และ RAK1903
ตัวอย่างนี้ใช้ Wisblock api-v2 ของฉัน
โมดูลทั้งหมดเหล่านี้สามารถซื้อร่วมกับสิ่งที่แนบมาได้เป็นชุด Wisblock Kit 1
ตัวรับส่งสัญญาณ MCU และ LORA เข้าสู่โหมดสลีประหว่างรอบการวัดเพื่อประหยัดพลังงาน ฉันสามารถวัดกระแสการนอนหลับได้ 40ua ของทั้งระบบ
ไลบรารีทั้งหมดอยู่ใน platformio.ini และติดตั้งโดยอัตโนมัติเมื่อมีการรวบรวมโครงการ
การตั้งค่า Lorawan สามารถกำหนดได้ในสามวิธีที่แตกต่างกัน
ใช้กล่องเครื่องมือ Wisblock
รายละเอียดเพิ่มเติมสามารถพบได้ในกล่องเครื่องมือ Wisblock
อุปกรณ์กำลังโฆษณาผ่าน BLE เพียง 30 วินาทีแรกหลังจากพลังงานขึ้นแล้วอีกครั้งเป็นเวลา 15 วินาทีหลังจากปลุกสำหรับการวัด อุปกรณ์กำลังโฆษณาเป็น RAK-GNSS-xx โดยที่ XX เป็นที่อยู่ MAC ของอุปกรณ์
การใช้อินเทอร์เฟซคำสั่ง AT สามารถตั้งค่าได้ผ่านพอร์ต USB
คู่มือรายละเอียดสำหรับคำสั่ง AT อยู่ในคู่มือ
นี่คือตัวอย่างสำหรับคำสั่งทั่วไปที่จำเป็นในการเตรียมอุปกรณ์ให้พร้อม (ตัวอย่างของ EUI และคีย์เป็นตัวอย่าง):
// Setup AppEUI
AT+APPEUI=70b3d57ed00201e1
// Setup DevEUI
AT+DEVEUI=ac1f09fffe03efdc
// Setup AppKey
AT+APPKEY=2b84e0b09b68e5cb42176fe753dcee79
// Set automatic send interval in seconds
AT+SENDINT=60
// Set data rate
AT+DR=3
// Set LoRaWAN region (here US915)
AT+BAND=5
// Reset node to save the new parameters
ATZ
// After reboot, start join request
AT+JOIN=1,0,8,10
รูปแบบคำสั่งที่ใช้ที่นี่ ไม่ สามารถใช้งานได้กับคำสั่ง RAK5205/RAK7205 ที่
void api_read_credentials(void);
void api_set_credentials(void); หากข้อมูลประจำตัวของ Lorawan จำเป็นต้องได้รับการบันทึก (เช่นภูมิภาคเวลาส่งซ้ำ ... ) สิ่งนี้สามารถทำได้ใน setup_app() ก่อนอื่นข้อมูลรับรองที่บันทึกไว้จะต้องอ่านจาก Flash ด้วย api_read_credentials(); จากนั้นข้อมูลประจำตัวสามารถเปลี่ยนแปลงได้ หลังจากเปลี่ยนข้อมูลรับรองจะต้องถูกบันทึกด้วย api_set_credentials() ในขณะที่ Wisblock API ตรวจสอบว่าจำเป็นต้องมีการเปลี่ยนแปลงใด ๆ ค่าที่เปลี่ยนแปลงจะถูกบันทึกไว้ในการบูตครั้งแรกหลังจากที่กระพริบแอปพลิเคชัน
ตัวอย่าง:
// Read credentials from Flash
api_read_credentials ();
// Make changes to the credentials
g_lorawan_settings.send_repeat_time = 240000 ; // Default is 2 minutes
g_lorawan_settings.subband_channels = 2 ; // Default is subband 1
g_lorawan_settings.app_port = 4 ; // Default is 2
g_lorawan_settings.confirmed_msg_enabled = LMH_CONFIRMED_MSG; // Default is UNCONFIRMED
g_lorawan_settings.lora_region = LORAMAC_REGION_AS923_3; // LoRa region
// Save hard coded LoRaWAN settings
api_set_credentials (); ข้อสังเกต 1
ข้อมูลรับรองรหัสยากจะต้องตั้งค่าใน void setup_app(void) !
ข้อสังเกต 2
โปรดทราบว่าพารามิเตอร์ที่เปลี่ยนจากวิธีนี้สามารถเปลี่ยนแปลงได้ตามคำสั่งหรือ BLE แต่จะรีเซ็ตหลังจากรีบูต !
ข้อสังเกต 3
การเข้ารหัสข้อมูลขึ้นอยู่กับ ID เซ็นเซอร์ Cayenne LPP สิ่งนี้ทำให้ง่ายต่อการเห็นภาพข้อมูลเซ็นเซอร์ใน MyDevices Cayenne
ไฟล์ที่คอมไพล์อยู่ในโฟลเดอร์./generated แต่ละเวอร์ชันคอมไพล์ที่ประสบความสำเร็จนั้นมีชื่อว่า
WisBlock_WEA_Vx.y.z_YYYYMMddhhmmss
XYZ เป็นหมายเลขเวอร์ชัน หมายเลขเวอร์ชันถูกตั้งค่าในไฟล์./platformio.ini
Yyyymmdhhhmmss เป็นเวลาของการรวบรวม
ไฟล์ .zip ที่สร้างขึ้นสามารถใช้งานได้ดีเพื่ออัปเดตอุปกรณ์ผ่าน BLE โดยใช้กล่องเครื่องมือ WisBlock หรือกล่องเครื่องมือ NRF NRF หรือ NRF Connect
เอาต์พุตดีบั๊กสามารถควบคุมได้โดยกำหนดใน platformio.ini
lib_debug ควบคุมเอาต์พุตดีพุทของห้องสมุด SX126X-ARDUINO LORAWAN
my_debug ควบคุมเอาต์พุตดีพุทของแอปพลิเคชันเอง
CFG_DEBUG ควบคุมเอาต์พุตดีบั๊กของ NRF52 BSP ขอแนะนำให้ปิดมัน
[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino
build_flags =
; -DCFG_DEBUG=2
- DSW_VERSION_1 =1 ; major version increase on API change / not backwards compatible
- DSW_VERSION_2 =0 ; minor version increase on API change / backward compatible
- DSW_VERSION_3 =0 ; patch version increase on bugfix, no affect on API
- DLIB_DEBUG =0 ; 0 Disable LoRaWAN debug output
- DMY_DEBUG =0 ; 0 Disable application debug output
- DNO_BLE_LED =1 ; 1 Disable blue LED as BLE notificator
lib_deps =
beegee-tokyo/SX126x-Arduino
beegee-tokyo/WisBlock-API-V2
sparkfun/SparkFun SHTC3 Humidity and Temperature Sensor Library
adafruit/Adafruit LPS2X
closedcube/ClosedCube OPT3001
extra_scripts = pre:rename.py