meshcom
Meshcom เป็นโครงการที่น่าตื่นเต้นของสถาบันวิทยาศาสตร์พลเมืองเพื่อการสื่อสารอวกาศและไร้สาย (www.icssw.org) มีวัตถุประสงค์เพื่อสร้างเครื่องมือสื่อสารที่มีความยืดหยุ่นและมีความยืดหยุ่นสำหรับผู้ประกอบการวิทยุสมัครเล่น มันใช้เทคโนโลยีการมอดูเลต LORA ™และโปรโตคอล APRS เพื่อสร้างเครือข่ายตาข่ายในแถบ 70 ซม. วัตถุประสงค์หลักของ Meshcom คือการตระหนักถึงระบบการส่งข้อความนอกกริดที่เชื่อมต่อกับการใช้พลังงานต่ำและฮาร์ดแวร์ที่ประหยัดต้นทุน การใช้งานทางเทคนิคนั้นใช้โมดูลวิทยุ LORA ™ซึ่งสามารถส่งข้อความตำแหน่งการวัดและระยะทางไกลขึ้นไปด้วยพลังงานการส่งสัญญาณต่ำ โมดูล MESHCOM สามารถเชื่อมต่อเพื่อสร้างเครือข่ายตาข่ายหรือสร้างเครือข่ายการส่งข้อความผ่านเกตเวย์ MESHCOM ซึ่งเชื่อมต่อผ่าน HAMNET
ฟังก์ชั่นพื้นฐาน:
- แต่ละโหนดจะถูกระบุโดยโทรทัศน์วิทยุสมัครเล่น (พร้อม SSID เสริม)
- ข้อความทดสอบสั้น ๆ สามารถส่งไปยังทุกคน (ทุกคน) ด้วย ACK จากเซิร์ฟเวอร์/เกตเวย์
- ข้อความสั้น ๆ สามารถส่งโดยตรงไปยัง Callign อื่น ๆ โดยมี adknowledGement
- บางโหนดสามารถกำหนดค่าให้ทำหน้าที่เป็นเกตเวย์ไปยัง Hamnet หรืออินเทอร์เน็ต (wifi)
- แต่ละโหนดควรทำหน้าที่เป็น repeater สำหรับข้อความ meshcom อื่น ๆ ทั้งหมดในอากาศ
- เซิร์ฟเวอร์และเกตเวย์อาจมีฟังก์ชั่นบางอย่างเพื่อหลีกเลี่ยงการส่งผ่าน trafic ซ้ำซ้อน
- โหนดจะส่งสถานะและตำแหน่งข้อความโดยอัตโนมัติ
- โหนดที่มีเซ็นเซอร์เสริมจะส่งข้อมูล WX หรือข้อมูล telemetry เป็นระยะ ๆ
- ข้อความจะถูกทูตลงบนจอแสดงผล OLED ขนาดเล็กหรือผ่านอุปกรณ์สมาร์ทโฟนหรือแท็บเล็ตที่เชื่อมต่อ BT หรือผ่านคอนโซลอนุกรมที่เชื่อมต่อ USB
เป้าหมายหลักคือการสร้างเครือข่ายตาข่ายด้วยตนเองซึ่งสามารถปรับปรุงได้โดยส่วนประกอบอื่น ๆ ของบริการวิทยุสมัครเล่นเช่น Hamnet (IP-network) เซิร์ฟเวอร์ Meshcom ส่วนกลางหรือแบบกระจาย สิ่งนี้จะเพิ่มความคุ้มครองให้กับทุกทวีปและเปิดใช้งานการเชื่อมต่อระหว่างกันกับโหมดและบริการอื่น ๆ (APRS, Winlink, DMR, Tetra-SDS, SOTA-Watch, Pocsag, Vara-AC, …) การสร้างพล็อตต์การสื่อสารแบบครบวงจร มีประโยชน์โดยเฉพาะอย่างยิ่ง Meshcom สำหรับการสื่อสารฉุกเฉิน (EMCOM) ในกรณีที่เกิดภัยพิบัติหรือปิดไฟ ในทุกข้อกำหนดและกฎของบริการวิทยุสมัครเล่น (ไม่ใช่เชิงพาณิชย์อย่างเคร่งครัดการทดลอง) ควรได้รับการเคารพ นี่เป็นโครงการวิทยาศาสตร์พลเมืองที่เปิดกว้างซึ่งควรช่วยส่งเสริมการบริการวิทยุสมัครเล่นในด้านวิชาการและสังคม
ความถี่ในภูมิภาค:
EU: 433.175 สหราชอาณาจักร: TBD Nordic: TBD USA: 433.175 Afrika: 433.175 เอเชีย/แปซิฟิก: TBD
พารามิเตอร์ LORA:
SF: 11 Bandwith: 250KHz CR: 4/6
APRS-PROTOKOLL:
เอกสาร: http://www.aprs.org/doc/aprs101.pdf ที่อยู่: Call-ssid, แหล่งที่มา, เป้าหมาย, digi1-5 telemetry: ข้อมูล, สูตร, หน่วย, ... สภาพอากาศ: อุณหภูมิ, ความดัน, ฝน, ...
ฮาร์ดแวร์:
esp32/lora-modul, rak-wisblock, esp32-dev4/e22-lora, ...
เฟิร์มแวร์ Meshcom 4.0
Meshcom เป็นโครงการเพื่อแลกเปลี่ยนข้อความผ่านโมดูลวิทยุ LORA เป้าหมายหลักคือการตระหนักถึงการส่งข้อความนอกตารางที่มีพลังงานต่ำและฮาร์ดแวร์ราคาต่ำ
วิธีการทางเทคนิคขึ้นอยู่กับการใช้โมดูลวิทยุ LORA ซึ่งส่งข้อความตำแหน่งค่าที่วัดได้ telecontrol และอื่น ๆ อีกมากมายด้วยกำลังการส่งสัญญาณต่ำในระยะทางไกล โมดูล MESHCOM สามารถรวมกันเพื่อสร้างเครือข่ายตาข่าย แต่ยังสามารถเชื่อมต่อกับเครือข่ายข้อความผ่านเกตเวย์ MESHCOM ซึ่งเชื่อมต่ออย่างเหมาะสมผ่าน HAMNET สิ่งนี้ช่วยให้เครือข่ายวิทยุ MESHCOM ซึ่งไม่ได้เชื่อมต่อกันผ่านทางวิทยุเพื่อสื่อสารซึ่งกันและกัน
โปรโตคอล Meshcom
Meshcom 4.0 ใช้การอ้างอิงโปรโตคอล APRS สำหรับแหล่งที่มาปลายทางปลายทาง digipeater และข้อมูลน้ำหนักบรรทุกตามที่กำหนดไว้สำหรับ APRS (APRS101.PDF APRS Protocol Reference เวอร์ชัน 1.0 2000, หน้า 12) MESHCOM 4.0 verwendet für die payload-daten das ax.25 protokoll, wie es für aprs definiert ist. (APRS101.PDF APRS Protocol Reference เวอร์ชัน 1.0 2000, Seite 12)
เงื่อนไข:
- ตัวระบุ - ตัวระบุประเภทข้อมูล APRS
- ID ข้อความ-32 บิต LSB-> MSB ค่าที่ไม่ซ้ำกัน
- Max-Hop-สูงสุด 7 (หน้ากาก 0x07) เริ่มต้น 5 ซึ่งอนุญาตให้มีการถ่ายโอนอีก 4 รายการ
- 0x80 - รหัสว่าข้อความนี้ถูกส่งไปแล้วผ่านเซิร์ฟเวอร์ MQTT แล้ว
- 0x40 - ระบุว่าข้อความนี้ควรได้รับการเสริมสำหรับแต่ละ meshclient ด้วยเครื่องหมายการโทรของสถานีส่งสัญญาณ เพื่อวัตถุประสงค์ในการวัดและการควบคุม
- ที่อยู่แหล่งที่อยู่ - ฟิลด์นี้มี CallIGN และ SSID ของสถานีส่งสัญญาณ
- ที่อยู่ปลายทาง - ฟิลด์นี้สามารถมีป้ายโทรปลายทาง APRS หรือ
- “*” สำหรับการส่งสัญญาณไปยังทุกคน
- Digipeater - อาจมีการจัดเรียง Digipeater 0 ถึง 8 digipeater ในฟิลด์นี้ หมายเหตุ: ที่อยู่ digipeater เหล่านี้สามารถเขียนทับโดยเส้นทาง Digipeater ทั่วไปของ APRS (ระบุโดย SSID ของที่อยู่ปลายทาง)
- Payload - ฟิลด์นี้มีข้อมูลการขนส่ง อักขระแรกของฟิลด์นี้คือตัวระบุประเภทข้อมูล APRS ซึ่งระบุว่าข้อมูลประเภทของข้อมูลประเภทใดที่ตามมา
- ID ฮาร์ดแวร์ - ดูตารางด้านล่าง
- ดัชนี Lora -Modulation - ดูตารางด้านล่าง
- ลำดับการตรวจสอบเฟรม - FCS เป็นลำดับ 16 บิตที่ใช้เพื่อตรวจสอบความสมบูรณ์ของเฟรมที่ได้รับ
ข้อความ:
- ข้อความ:
- : |! mmmmmmmmm |! hh | oe0xxx-99 |>*|: | ข้อความ |! 00 |! hw |! mod | fcs#
- ข้อความที่มีเส้นทางจาก Mesh:
- : |! MMMMMMMMM |! HH | OE0XXX-99, OE3XXX-12, OE3YYY-12 |>*| | | ข้อความ |! 00 |! HW |! mod | fcs#
- รายงานตำแหน่ง:
- ! |! mmmmmmmmm |! hh | oe0xxx-99 |>*|! | 4800.00 | n |/| 01600.00 | e |#| bbb /a = hhhh |! 00 |! hw |! mod | fcs#
- ตำนาน:
- - ... ทำหน้าที่แสดงการแยกที่นี่ในข้อความเท่านั้น
องค์ประกอบข้อความ
- Medlution ID:! @ ... ข้อความตำแหน่งข้อความสภาพอากาศ
- MMMMMMMM MESSAUL ID ID 32 บิต LSB-> MSB
- HH Max-Hop 8-bit Bit Bit 0x07
- ข้อความผ่าน MQTT Server Bit Mask 0x80
- แทรกเส้นทางลงในตาข่าย (พร้อมเครื่องหมายจุลภาคเป็นบิตบิต) หน้ากาก 0x40
- 4800.00 ละติจูดองศา/ทศนิยม x 100
- 01600.00 องศายาว/ทศนิยม x 100
- N North / South Char
- / APRS Symbol Group (/ หรือ) Char
- ee Ast / West Char
- # APRS Symbol Char
- สถานะแบตเตอรี่ BBB ใน % int 0 - 100
- /a = HHHH GPS ระดับน้ำทะเล (M) int 0 - 9999
- การทำให้ข้อความเสร็จสมบูรณ์ช่วงข้อความ APRS จาก 0x00
- HW ... ID ประเภทฮาร์ดแวร์
- mod ... ID การมอดูเลต Lora
- fcs# checksum รวมถึงตัวระบุและ 0x00 จากการเสร็จสิ้นข้อความที่ไม่ได้ลงนาม INT 16 บิต
- ข้อมูลเพิ่มเติมเพื่อสร้าง MHEARD
- GGGGGGGG GATEWAY ID (สำหรับความเข้ากันได้ของ MESHCOM 2.0 เท่านั้น) 32 บิต LSB-> MSB
- HW ฮาร์ดแวร์ ID 8 บิต (ดูตาราง)
รหัสฮาร์ดแวร์ meshcom
- ฮาร์ดแวร์ ID HW Type MCU ประเภท LORA HW ชื่อสั้น HW เวอร์ชัน HW
- 1 TTGO ESP32 PAXCOUNTER ESP32 SX1278 TLORA V2
- 2 TTGO ESP32 PAXCOUNTER ESP32 SX1278 TLORA V1
- 3 TTGO ESP32 PAXCOUNTER ESP32 SX1278 TLORA V2 1.6
- 4 TTGO T-Beam ESP32 SX1278 T-Beam 1.1
- 5 TTGO T-Beam ESP32 SX1268 T-Beam-1268 1.1 1268
- 6 TTGO T-Beam ESP32 SX1262 T-Beam-0.7 0.7
- 7 T-Echo Lora SX1262 NRF SX1262 T-Echo
- 8 t-deck esp32-s3 sx1262 t-deck
- 9 Wisblock rak4631 nrf Wisblock nrf rak4631
- 10 WiFi Lora 32 V2 ESP32 SX1262 HELTEC-V2-1 V2
- 11 WiFi Lora 32 V1 ESP32 SX1276 HELTEC-V1 V1
- 12 TTGO T-Beam ESP32 SX1278 TBEAM-AXP2101
- 39 EBYTE LORA E22 ESP32 SX1278 EBYTE-E22
- 43 WiFi Lora 32 V3 ESP32-S3 SX1262 HELTEC-V3 V3
ดัชนี Meshcom Lora Modulations
- 0 ช่วงขยาย 10-20 เร็ว
- 1 ช่วงขยาย 10-20 ช้า (แข็งแกร่ง) 0.275 kbps
- 2 ช่วงขยายเพิ่มเติม 20-40 ช้า (แข็งแกร่ง) 0.183 kbps
- 3 ช่วงปกติ 5-10 ช้า (แข็งแกร่ง)
- 4 ช่วงปกติ 5-10 เร็ว 5,469 kbps
- 5 ช่วงท้องถิ่น 0-5 ช้า (แข็งแกร่ง)
- 6 ช่วงท้องถิ่น 0-5 เร็ว 21,875 kbps
การเตรียมการสำหรับปลั๊กอิน platform.io vscode
- ติดตั้งเฟรมเวิร์กที่จำเป็นภายใต้แพลตฟอร์ม:
- Espressif 32
- Nordic NRF52 เวอร์ชัน 9.6.0 (สำหรับตอนนี้)
- สำหรับการเพิ่มคำจำกัดความของบอร์ดที่ถูกต้องสำหรับ RAK Wireless RAK4631 ทำตามคำแนะนำเหล่านี้: https://github.com/rakwireless/wisblock/blob/master/platformio/readme.md
เฟิร์มแวร์กระพริบ
โดยปกติแล้วจะทำผ่านปุ่มอัปโหลดใน VSCODE โดยตรง
esp32 ผ่านบรรทัดคำสั่ง:
- สำหรับงานนี้จำเป็นต้องมี Esptool คุณสามารถใช้หนึ่งจาก platform.io ซึ่งอยู่ที่
.platformio/tool-esptoolpy/esptool.py นอกจากนี้ Python Venv ซึ่งอยู่ที่: .platformio/penv/bin/python ไดเรกทอรี .platformio ที่ซ่อนอยู่ตั้งอยู่ในไดเรกทอรีผู้ใช้ของคุณ
มิฉะนั้นหากยังไม่ได้ติดตั้งให้ติดตั้งเวอร์ชัน Python ล่าสุด จากนั้นคุณจะต้องได้รับ Esptool ผ่าน PIP: pip install esptool
- ไฟล์ firmware.bin, bootloader.bin และ partition.bin เขียนขึ้นหลังจากรวบรวมไปยังไดเรกทอรี
.pio/build ที่ซ่อนอยู่ของไดเรกทอรี repo meshcom-firmware
หากคุณอัปเดตเฟิร์มแวร์เท่านั้นคุณต้องการให้ไฟล์ที่เกี่ยวข้องแฟลชเท่านั้น
ที่อยู่ที่จะแฟลชไฟล์แต่ละไฟล์:
| ที่อยู่ | ไฟล์ |
|---|
| 0x1000 | bootloader.bin |
| 0x8000 | พาร์ติชัน |
| 0x10000 | เฟิร์มแวร์. |
MAC: python esptool.py -p /dev/tty.usbserial-<NUMBER> write_flash 0x10000 <PATH-TO-BIN-FILE>/firmware.bin
Linux: อุปกรณ์อนุกรมเดียวกัน แต่อยู่ภายใต้ /dev สามารถเป็น ttyUSB0 หรือคล้ายกัน
Windows: อุปกรณ์อนุกรมมักจะเป็น com
เฟิร์มแวร์สร้างพร้อมสามารถฉายผ่านเครื่องมือออนไลน์ (Chrome, Edge, Opera):
https://oe1kfr.com/esptool/
ลบ NVS:
หากคุณต้องการเช็ดการตั้งค่าที่เก็บไว้ในโหนด:
python esptool.py --port <SERIAL-PORT> erase_region 0x009000 0x005000
RAK4631 ผ่าน CLI:
ในการทำเช่นนั้นคุณต้องใช้ adafruit nrfutil การติดตั้งและการใช้งาน:
https://github.com/adafruit/adafruit_nrf52_nrfutil
RAK4631 ผ่านไฟล์ UF2:
เมื่อคุณดับเบิลคลิกปุ่มบนโมดูลจะติดตั้งอุปกรณ์ USB ซึ่งคุณสามารถคัดลอกไฟล์. UF2 ลงในโมดูล ในการสร้างไฟล์นั้นคุณต้องใช้สคริปต์ Python ต่อไปนี้:
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
./uf2conv.py <PATH_TO-HEX-FILE> -c -o firmware.uf2 -f 0xADA52840