โครงการนี้มีเฟิร์มแวร์โมเด็มสำหรับบอร์ดไมโครคอนโทรลเลอร์ที่มีโมดูลวิทยุที่เข้ากันได้ RF95 และอินเทอร์เฟซอนุกรมเช่นอุปกรณ์ Adafruit Feather M0 Lora หรือโมดูล Heltec OLED LORA 32 บนบอร์ดที่ใช้ ESP32 ที่ใช้คุณสมบัติเสริมเช่นการแสดงผลสถานะ OLED, GPS, BLE หรือ WIFI สามารถเปิดใช้งานการรองรับได้
การกำหนดค่าเริ่มต้นปัจจุบันสำหรับอุปกรณ์ที่มี 868.1 MHz สิ่งนี้สามารถเปลี่ยนแปลงได้ใน src/modem.h ด้วยบรรทัดต่อไปนี้: #define RF95_FREQ 868.1
รองรับบอร์ดต่อไปนี้:
วิธีที่แนะนำสำหรับการสร้างและติดตั้งเฟิร์มแวร์วิทยุคือการติดตั้ง platformio (http://platformio.org/) ในระบบของคุณ
สำคัญ แก้ไข platformio.ini เพื่อเพิ่มแพลตฟอร์มเป้าหมายของคุณและกำหนดค่าพินวิทยุในการสร้างธง!
ติดตั้งบนอุปกรณ์ของคุณโดยใช้ pio run -t upload -e heltec_wifi_lora_32_ble
เลือกเปิดใช้งานการสนับสนุนการแสดงผล: pio run -t upload -e heltec_wifi_lora_32_display_ble
ปัจจุบันทุกคนสามารถเชื่อมต่อกับบริการ BLE ได้ทั้งหมดเป็นข้อความธรรมดาทั้งหมด มีการเผยแพร่คุณลักษณะหนึ่งสำหรับการส่งคำสั่งและอีกหนึ่งอยู่ที่นั่นเพื่อให้เอาต์พุตพร้อมใช้งานผ่านการแจ้งเตือน
คำสั่งทั้งหมดที่ส่งผ่าน BLE จะต้องถูกยกเลิกด้วย n โหมดเริ่มต้นของการดำเนินการจะแยกทุกอย่างออกเป็น 20 ไบต์ซึ่ง - ตามข้อมูลจำเพาะ BLE - เป็นขนาดแพ็คเก็ตสูงสุด บน iPhone 8 & 11 เราสามารถส่งและรับแพ็คเก็ต BLE ขนาดใหญ่กว่า (> 100bytes) ดังนั้นหนึ่งสามารถเปิดใช้งานโหมด ble-frames big funky ผ่าน AT+BFB=1 คำสั่งได้รับการยอมรับแม้จะไม่มีการตามหลัง n และยังทำให้ n เป็นตัวเลือก สิ่งนี้มีประโยชน์อย่างยิ่งเนื่องจากซอฟต์แวร์ดีบั๊ก BLE เช่น Lightblue Explorer ไม่ส่งการส่งคืนรถหรือฟีดสายในตอนท้ายของการดำเนินการเขียน
หากหนึ่งในโปรไฟล์ WiFi ถูกติดตั้งบน ESP MCU ที่เข้ากันได้อุปกรณ์สามารถทำหน้าที่เป็นจุดเชื่อมต่อ ข้อมูลประจำตัวได้รับการกำหนดค่าใน platformio.ini และตั้งค่าเริ่มต้นเป็น: WIFI_SSID="rf95modem" และ WIFI_PSK="rf95modemwifi" 192.168.4.1 เชื่อมต่อนี้ยอมรับไคลเอ็นต์สูงสุด 4 รายตาม Espressif SDK
มีสองวิธีในการสื่อสารกับโมเด็ม:
RF95Modem ตอบสนองต่อแพ็คเก็ตออกอากาศ UDP ไปยังพอร์ต 1666 ในการรับเอาท์พุทจะมีการให้ฟัง UDP อย่างง่าย ( extras/udp_receiver.py ) สำหรับการส่งคำสั่งไปยังโมเด็ม netcat นั้นเพียงพอเช่น echo "at+tx=414141" | ncat -u 192.168.4.255 1666
เพียงเชื่อมต่อกับ 192.168.4.1 บนพอร์ต 1666 โดยใช้ TCP และใช้มันเหมือนการเชื่อมต่ออนุกรมเช่น ncat 192.168.4.1 1666
รองรับการเชื่อมต่อครั้งละครั้งเท่านั้น!
อุปกรณ์บางอย่างเช่น TTGOS T-beam ยังมีชิป GPS นอกจากนี้ยังสามารถสอบถามผ่านเฟิร์มแวร์โมเด็มผ่านคำสั่ง AT+GPS การล็อคเริ่มต้นสำหรับตำแหน่งของคุณอาจใช้เวลาหลายนาทีขึ้นอยู่กับ Atenna ตำแหน่งและชิป GPS บนอุปกรณ์ของคุณ เนื่องจากสิ่งนี้ยังเพิ่มการใช้พลังงานอย่างมีนัยสำคัญ (~ 50mA) อย่างมีนัยสำคัญสามารถปิดการใช้งานได้ชั่วคราวผ่าน AT+GPS=0
ความเร็วอนุกรมเริ่มต้นถูกตั้งค่าเป็น 115200 ( src/main.cpp Line 17 )
รายการคำสั่ง:
AT+HELP Print this usage information.
AT+TX=<hexdata> Send binary data.
AT+RX=<0|1> Turn receiving on (1) or off (2).
AT+BFB=<0|1> Turn send Big Fine BLE-Frames on (1) or off (0).
AT+GPS Print GPS information.
AT+GPS=<0|1> Turn GPS power on (1) or off (0).
AT+FREQ=<freq> Changes the frequency.
AT+INFO Output status information.
AT+MODE=<NUM> Set modem config:
0 - medium range (default)
Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
1 - fast+short range
Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
2 - slow+long range
Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on.
3 - slow+long range
Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on.
4 - slow+long range
Bw = 125 kHz, Cr = 4/5, Sf = 2048chips/symbol, CRC on.
เพื่อให้ได้การกำหนดค่าปัจจุบันสามารถใช้ AT+INFO
> AT+INFO
+STATUS:
firmware: 0.7.3
features: MCU BLE WIFI GPS
modem config: 0 | medium range
max pkt size: 251
frequency: 868.10
rx listener: 1
BFB: 0
GPS: 1
rx bad: 0
rx good: 0
tx good: 0
+OK
จากผลลัพธ์นี้คุณจะเห็นว่าคุณสมบัติใดที่รวบรวมไว้ในเฟิร์มแวร์และรุ่นของมันคืออะไร นอกจากนี้การกำหนดค่าโมเด็มปัจจุบันและความถี่ที่เลือกจะปรากฏขึ้น
หากต้องการเปลี่ยนความถี่สามารถใช้คำสั่ง AT+FREQ
> AT+FREQ=868.20
+FREQ: 868.20
ระวัง: สามารถเพิ่มหมายเลขลอยตัวใด ๆ ได้ที่นี่ค่าจะถูกส่งผ่านโดยตรงไปยังตัวรับส่งสัญญาณ LORA!
การเปลี่ยนโหมดโมเด็มที่กำหนดค่าไว้ล่วงหน้านั้นง่ายมาก:
> AT+MODE=2
+OK
AT+TX=414141 ส่งแพ็กเก็ตพร้อม AAA เป็นเนื้อหา ขนาดแพ็คเก็ตสูงสุดอาจแตกต่างกันไปขึ้นอยู่กับชิปวิทยุ
AT+RX=1 เปิดใช้งานการรับฟังค่าเริ่มต้นเปิดอยู่
ข้อมูลขาเข้าถูกเขียนไปยังพอร์ตอนุกรมโดยอัตโนมัติ: +RX 3,414141,-15,8 -เฟรมที่มี "AAA" ตามที่ได้รับน้ำหนักบรรทุกด้วย RSSI ที่ -15 และ SNR จาก 8
หากเปิดใช้งาน GPS ( AT+GPS=1 ) และเฟิร์มแวร์กำลังทำงานบนอุปกรณ์ที่สามารถใช้ GPS ได้เช่น TTGO T-beam หนึ่งสามารถสืบค้นตำแหน่งและเวลาปัจจุบันได้อย่างง่ายดาย ไม่มีการล็อค GPS ที่ส่งคืนค่าทั้งหมดจะถูกตั้งค่าเป็นศูนย์
> at+gps=1
+OK
> at+gps
Latitude : 0.00000
Longitude : 0.00000
Altitude : 0.00M
Satellites: 0
Time : 00:00:00
Date : 00.00.2000
Timestamp : 943920000
+OK
มีห้องสมุดการเขียนโปรแกรมของบุคคลที่สามอยู่สองสามห้องเพื่อความสะดวกในการรวม RF95Modem
หากคุณใช้รหัสนี้ในสิ่งพิมพ์ทางวิชาการโปรดอ้างอิงบทความต่อไปนี้:
@INPROCEEDINGS{baumgaertner2018monitoring,
author={L. {Baumgärtner} and A. {Penning} and P. {Lampe} and B. {Richerzhagen} and R. {Steinmetz} and B. {Freisleben}},
booktitle={2018 IEEE Global Humanitarian Technology Conference (GHTC)},
title={Environmental Monitoring Using Low-Cost Hardware and Infrastructureless Wireless Communication},
year={2018},
pages={1-8},
doi={10.1109/GHTC.2018.8601883},
month={Oct},
}