การตั้งค่า LoRa เกตเวย์อาจดูซับซ้อน, แต่ไม่ต้องห่วง. ฉันจะอธิบายหลักการก่อน, แล้วแสดงวิธีตั้งค่าเกตเวย์ LoRa ให้เสร็จสมบูรณ์.
ซอฟต์แวร์และฮาร์ดแวร์ของเกตเวย์ LoRa
ซอฟต์แวร์และฮาร์ดแวร์ที่คุณต้องเตรียมในบทความนี้:
ฉันเล่น โมดูล LoRa มากเมื่อเร็ว ๆ นี้, และทำบอร์ดพัฒนา LoRa ด้วยตัวเอง. การสื่อสารทางวิทยุระยะไกลกำลังต่ำสามารถทำได้ผ่านเทคโนโลยี LoRa, ซึ่งมีขนาดเล็ก, วิธีที่มีประสิทธิภาพและเรียบง่าย. คุณยังสามารถปลดล็อกคุณสมบัติเพิ่มเติมของ LoRa . ได้อีกด้วย: ตั้งค่าเครือข่าย LoRaWAN ที่สามารถเชื่อมต่อกับอินเทอร์เน็ตได้, ทำให้โหนดมือถือสามารถข้ามไปมาระหว่างการจัดการเครือข่ายต่างๆ ได้เช่นเดียวกับโทรศัพท์มือถือของคุณ, เมื่อคุณกำลังเคลื่อนไหว, มันจะเชื่อมต่อกับเสาสัญญาณต่างๆ. ฤดูร้อนนี้ฉันวางแผนที่จะสร้างเกตเวย์ LoRa ราคาประหยัดและรันบนเครือข่าย MOKO. มันง่ายกว่าที่ฉันคิดไว้มาก~
ฮาร์ดแวร์ LoRa Gateway
เกตเวย์คือ อุปกรณ์ LoRa เชื่อมต่อกับอินเทอร์เน็ต. สามารถตรวจสอบช่องสัญญาณ LoRa ที่แตกต่างกันหลายช่องและส่งต่อแพ็กเก็ตข้อมูลระหว่าง backhaul ของเครือข่าย (เช่น MOKO) และอุปกรณ์โหนดปลายทาง. คุณสามารถคิดได้ว่าเป็นหอคอยเซลลูลาร์ของโหนดอุปกรณ์ปลายทางเคลื่อนที่ที่ใช้พลังงานต่ำ.
MOKO ให้ตัวเลือกฮาร์ดแวร์เกตเวย์ที่แนะนำ, และฉันเลือก RAK831 จาก RAK Wireless สำหรับความพยายามนี้:
RAK831 เป็นบอร์ดคอนเซนเตอร์ LoRa ที่ใช้ได้กับ Raspberry Pi. ฉันซื้อชุดพัฒนา LoRa โดยตรง, ซึ่งมีฮาร์ดแวร์ทั้งหมดที่จำเป็นในโครงการนี้:
- – RAK831 LoRaWAN Concentrator Board
- – ราสเบอร์รี่ Pi 3B (รวมการ์ดหน่วยความจำพร้อมไดรเวอร์และการตั้งค่า MOKO ในตัว)
- – บอร์ดอะแดปเตอร์ GPS (เชื่อมต่อ RAK831 กับ Raspberry Pi)
- – เสาอากาศ GPS
- – เสาอากาศใยแก้ว (60dB กำไร, ใช้ในการออกแบบเสาเสาอากาศสูง)
- – สายต่อ RG-58 (ใช้สำหรับต่อเสาอากาศ, ระยะเวลา 5 เมตร)
- – หม้อน้ำบอร์ดคอนเดนเสท
ชุดนี้ยังรวมถึงบอร์ด WisNode, ซึ่งคล้ายกับอุปกรณ์ปลายทาง Arduino+LoRa; นอกจากนี้, ชุดนี้ยังมีบอร์ด LoRa Tracker อีกด้วย, แต่ฉันไม่ต้องการมันเพราะฉันได้สร้างโหนด LoRa ด้วย GPU.
การกำหนดค่า LoRa Gateway
เพราะมีซอฟต์แวร์จำนวนมากได้รับการกำหนดค่าล่วงหน้าในการ์ดหน่วยความจำ, มันค่อนข้างง่าย. ซอฟต์แวร์เหล่านี้จะได้รับการติดตั้งล่วงหน้าสำหรับการซื้ออุปกรณ์. โดยทั่วไป, อุปกรณ์เหล่านี้สามารถใช้ได้โดยตรงหลังการซื้อ. ไม่จำเป็นต้องค้นหาและดาวน์โหลดซอฟต์แวร์เกตเวย์ที่เกี่ยวข้องกับ ic880a บน GitHub, หรือเปิดใช้งาน SPI บนราสเบอร์รี่พาย
ฉันทำตามคำแนะนำเพื่อตั้งค่าข้อมูลรับรอง WiFi ใน /etc/wpa_supplicant/wpa_supplicant.conf.
ต่อไป, งานหลักของเราคือค้นหาความหมายของแต่ละพารามิเตอร์ของเกตเวย์และกำหนดค่าพารามิเตอร์. ก่อนอื่นเลย, เราต้องยืนยันการระบุเกตเวย์, แต่ละเกตเวย์มี ID ของตัวเอง, เพราะสามารถเข้าถึงได้ผ่านที่อยู่ MAC ของอินเทอร์เฟซเครือข่าย. ID ของเกตเวย์สามารถรับได้ผ่านสคริปต์นี้:
GATEWAY_ID=$(ลิงก์ ip แสดง eth0 | awk'/อีเธอร์/ {พิมพ์ $2}’ | awk -F\:'{พิมพ์ $1$2$3″FFFE”$4$5$6}’); เสียงก้อง ${GATEWAY_ID^^}
การกำหนดค่าเกตเวย์ค่อนข้างสับสน. ประการแรก, ไฟล์การกำหนดค่าเกตเวย์เป็นไฟล์การกำหนดค่าทั่วไป. ไฟล์คอนฟิกูเรชันทั่วไปเหมาะสำหรับการตั้งค่าเกตเวย์ทั้งหมด, แล้วตั้งค่าไฟล์คอนฟิกูเรชันของภูมิภาคเฉพาะ. เพราะคลื่นความถี่การสื่อสารของ Lora ของแต่ละประเทศอาจแตกต่างกัน, พารามิเตอร์ของไฟล์การกำหนดค่าของภูมิภาคที่มีลักษณะเฉพาะทั้งหมดอาจแตกต่างกัน. ฉันอยู่ประเทศจีน, และไฟล์การกำหนดค่าของเกตเวย์ Lora ทั้งหมดที่ฉันใช้ในการทดสอบคือไฟล์การกำหนดค่าส่วนกลางของจีน. GitHub มีไฟล์การกำหนดค่าสำหรับภูมิภาคต่างๆ, ซึ่งสะดวกมากสำหรับนักพัฒนาในการดาวน์โหลดไฟล์การกำหนดค่าที่จำเป็น.
gateway_conf ใกล้ถึงจุดสิ้นสุดเป็นส่วนสำคัญ. นี่คือข้อมูลเราเตอร์ที่ถูกต้องสำหรับพื้นที่ของคุณ. ไฟล์นี้จะเข้าสู่ตำแหน่งของ /opt/moko-gateway/bin.
นาฬิกาซิงโครไนซ์ใน GPS มีความสำคัญมากต่อการทำงานของเกตเวย์. เกตเวย์ Lora สามารถตัดสินตำแหน่งของวัตถุเป้าหมายและต้องพึ่งพา GPS เพื่อส่งสัญญาณการซิงโครไนซ์. การเปิดใช้งาน GPS ในไฟล์เป็นงานที่สำคัญมาก. เราต้องกำหนดค่าเกตเวย์ในไฟล์การกำหนดค่าเกตเวย์ Lora_ รหัสต่อไปนี้ถูกเพิ่มในconf, ซึ่งสำคัญมากสำหรับงานของลอร่า:
{
“gateway_conf”: {
…
“จีพีเอส”: จริง,
“gps_tty_path”: “/dev/ttyAMA0”,
“fake_gps”: เท็จ,
…
}
}
ข้อมูลเฉพาะของเกตเวย์จะถูกบันทึกไว้ในไฟล์นี้ /opt/moko-gateway/bin/local_config.json. ที่นี่, คุณสามารถใช้ข้อมูลสำคัญใน global_config.json และ gateway_ID . ของคุณ, ข้อมูลตำแหน่งเกี่ยวกับตำแหน่งเกตเวย์, และข้อมูลการติดต่อ.
นี่เป็นของฉัน:
{
“gateway_conf”: {
“เกตเวย์_ID”: “MFP254862KEF1034”,
“ref_latitude”: 22.24851,
“ref_longitude”: 114.06611,
“ref_altitude”: 114,
“contact_email”: “[email protected]”,
“คำอธิบาย”: “โมโคโลร่า ดีไซน์ ลอร่า เกตเวย์ lw0003”,
“เซิร์ฟเวอร์”: [
{
“ที่อยู่เซิฟเวอร์”: “router.us.mokolora.network”,
“serv_port_up”: 433,
“serv_port_down”:433,
“serv_enabled”: จริง
}
]
}
}
ข้อมูลเฉพาะของเกตเวย์จะถูกบันทึกไว้ในไฟล์นี้ /opt/moko-gateway/bin/local_config.json. ที่นี่, คุณสามารถใช้ข้อมูลสำคัญใน global_config.json และ gateway_ID . ของคุณ, ข้อมูลตำแหน่งเกี่ยวกับตำแหน่งเกตเวย์, และข้อมูลการติดต่อ.
นี่เป็นของฉัน:
{
“gateway_conf”: {
“เกตเวย์_ID”: “MFP254862KEF1034”,
“ref_latitude”: 22.24851,
“ref_longitude”: 114.06611,
“ref_altitude”: 114,
“contact_email”: “[email protected]”,
“คำอธิบาย”: “โมโคโลร่า ดีไซน์ ลอร่า เกตเวย์ lw0003”,
“เซิร์ฟเวอร์”: [
{
“ที่อยู่เซิฟเวอร์”: “router.us.mokolora.network”,
“serv_port_up”: 433,
“serv_port_down”:433,
“serv_enabled”: จริง
}
]
}
}
เมื่อเกตเวย์ Lora เริ่มต้นขึ้น, เกตเวย์ Lora จะเรียกใช้ในพื้นที่พร้อมกัน_ ข้อมูล Config.json และ global_ ข้อมูลการกำหนดค่าของ config.json.
การกำหนดค่าเกตเวย์ Lora สามารถซิงโครไนซ์กับไฟล์ GitHub ได้. เราสามารถติดตามไฟล์การกำหนดค่าของเกตเวย์ Lora ใหม่แบบเรียลไทม์ผ่านข้อมูลการซิงโครไนซ์ของ GitHub. การดำเนินการสะดวกมาก. เส้นทางการรวบรวมของไฟล์การกำหนดค่าของเกตเวย์ Lora คือ [เกตเวย์ รีโมตคอนฟิก GitHub repo] (โมโกะจือ / การกำหนดค่าระยะไกลเกตเวย์). เมื่อไหร่ก็ตามที่เกตเวย์เซ็นเตอร์เริ่มทำงานอย่างถูกต้อง, มันจะอ่านข้อความในไฟล์ GitHub, ตัดสินว่าไฟล์การกำหนดค่าได้รับการอัพเดตหรือไม่, และดาวน์โหลดไฟล์การกำหนดค่าล่าสุดหากมีการอัพเดต. หากสามารถค้นหาไฟล์ที่เกี่ยวข้องสำหรับเกตเวย์ของคุณ, มันจะลบไฟล์ local_config.json และสร้างลิงก์สัญลักษณ์เพื่อโคลนไฟล์ในโกดังจาก bin/local_config.json ไปยัง Raspberry Pi!
ถ้าอยากทำสิ่งนี้, โปรดถอดรายงานการกำหนดค่าระยะไกลของเกตเวย์บน GitHub, ส่งไฟล์การกำหนดค่าในเครื่องของคุณเองไปยังรายงาน fork ที่ตั้งชื่อตาม GatewayID . ของคุณ (ตัวอย่างเช่น, MFP254862KEF1034.json), แล้วส่ง pull ไปที่ main repository ask. หลังจากผ่านไประยะหนึ่ง, คำขอที่คุณส่งไปยังคลังสินค้าจะผ่าน, ไฟล์การกำหนดค่าในเครื่องถูกรวมเข้ากับไฟล์บน GitHub, และไฟล์การกำหนดค่าบน GitHub ได้รับการแก้ไข. เมื่อเกตเวย์ Lora ถูกรีสตาร์ท, เกตเวย์ Lora จะดาวน์โหลดไฟล์การกำหนดค่าใหม่, และไฟล์การกำหนดค่าใหม่จะมีผล การกำหนดค่าสุดท้ายของฉันคือ /opt/moko-gateway/bin/local_config.json, ซึ่งเชื่อมต่อกับ GitHub [ไฟล์ปรับแต่งของฉันใน GitHub](https://www.github.com/moko-zh/gateway-remote-config/ blob/master/MFP254862KEF1034.json) ลิงค์.
ส่วน gateway_conf ใน global_config.json มีเฉพาะสิ่งต่อไปนี้เท่านั้น:
{
“gateway_conf”: {
“จีพีเอส”: จริง,
“gps_tty_path”: “/dev/ttyAMA0”,
“fake_gps”: เท็จ
}
}
ลงทะเบียนเกตเวย์บน TTN.
ต้องเรียนรู้ [คำแนะนำการลงทะเบียน](https://www..thethingsnetwork.org/docs/gateways/registration.html) เพื่อลงทะเบียนเกตเวย์ของคุณบน TTN. มันง่ายมาก.
ที่อยู่อาศัยและเสาอากาศ
ฉันติดตั้งเกตเวย์ในกล่องกันน้ำที่มีแหล่งจ่ายไฟ 5V, เสาอากาศ LoRa และเสาอากาศ GPS. ฤดูร้อนอากาศไม่ร้อนเกินไป, และในไม่ช้าฉันจะเห็นว่าเกตเวย์นี้ทำงานอย่างไรในสภาพอากาศฤดูหนาวในมินนิโซตา. ฉันหวังว่าความร้อนที่เกิดจาก Raspberry Pi ในตู้ที่ปิดล้อมสามารถป้องกันฮาร์ดแวร์จากการแช่แข็งได้, แต่ไม่รู้จะได้หรือเปล่า! (อัปเดต: Raspberry Pi ไม่มีปัญหาแม้ติดลบ 28 องศาฟาเรนไฮต์ (-33 องศาเซลเซียส)!!!)
อุปกรณ์เสาอากาศเป็นท่อพลาสติกธรรมดา. ฉันใช้หัวต่อสายยาวเพื่อเชื่อมต่อกับเสาอากาศของ Lora gateway. สายยาว 5 เมตรมีไฟดับ, แต่หลังจากพิจารณาเรื่องนี้แล้ว, เสาอากาศยังสามารถให้อัตราขยายสุทธิได้. ประตู Lora ถูกสร้างขึ้น. มันดูดี. กระบวนการนี้น่าสนใจมากและทำให้ฉันเข้าใจ Lora . อย่างลึกซึ้งยิ่งขึ้น.
ฉันหวังว่าบทความการตั้งค่าเกตเวย์นี้จะเป็นประโยชน์กับผู้อื่น! LoRa เป็นเทคโนโลยีการเรียนรู้ที่น่าตื่นเต้นจริงๆ.