![]() | ![]() |
|---|---|
| นี่คือรหัสตัวอย่างสำหรับเซ็นเซอร์สภาพแวดล้อม Wisblock (Wisblock Kit 4) พร้อมเซ็นเซอร์สภาพแวดล้อม RAK1906 |
ตัวอย่างนี้ใช้ Wisblock API ของฉันซึ่งช่วยในการสร้างแอปพลิเคชันการใช้พลังงานต่ำและรับภาระเพื่อจัดการการสื่อสารจากไหล่ของคุณ
โมดูลทั้งหมดเหล่านี้สามารถซื้อร่วมกับสิ่งที่แนบมาได้เป็นชุด Wisblock Kit 4
ตัวรับส่งสัญญาณ MCU และ LORA เข้าสู่โหมดสลีประหว่างรอบการวัดเพื่อประหยัดพลังงาน ฉันสามารถวัดกระแสการนอนหลับได้ 40ua ของทั้งระบบ
ไลบรารีทั้งหมดอยู่ใน platformio.ini และติดตั้งโดยอัตโนมัติเมื่อมีการรวบรวมโครงการ
การตั้งค่า Lorawan สามารถกำหนดได้ในสามวิธีที่แตกต่างกัน
การใช้กล่องเครื่องมือ Wisblock คุณสามารถเชื่อมต่อกับ Wisblock ผ่าน BLE และตั้งค่าพารามิเตอร์ Lorawan ทั้งหมดเช่น
รายละเอียดเพิ่มเติมสามารถพบได้ในกล่องเครื่องมือ Wisblock
อุปกรณ์กำลังโฆษณาผ่าน BLE เพียง 30 วินาทีแรกหลังจากพลังงานขึ้นแล้วอีกครั้งเป็นเวลา 15 วินาทีหลังจากปลุกสำหรับการวัด อุปกรณ์กำลังโฆษณาเป็น RAK-ENVS-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_ENV_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
- DAPI_DEBUG =0 ; 0 Disable WisBlock API 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
adafruit/Adafruit BME680 Library
beegee-tokyo/WisBlock-API
extra_scripts = pre:rename.pyน้ำหนักบรรทุกถูกเข้ารหัสในรูปแบบเดียวกับอุปกรณ์ Wisnode Rakwireless ตัวถอดรหัสน้ำหนักบรรทุกสำหรับ Chirpstack, TTN และ DATACAKE สามารถพบได้ใน Rakwireless_standardized_payload GitHub Repo
ข้อมูลเรียลไทม์
