Meshtastic: เครือข่ายเมชแบบกระจายศูนย์ออฟกริดโอเพนซอร์ส
(meshtastic.org)- Meshtastic คือเครือข่ายเมชโอเพนซอร์สที่เชื่อมต่ออุปกรณ์พลังงานต่ำและต้นทุนต่ำเข้าหากันได้โดยไม่ต้องมีเสาสัญญาณหรืออินเทอร์เน็ต จึงมีประโยชน์ในสถานการณ์ที่ไม่มีโครงสร้างพื้นฐานด้านการสื่อสาร
- ใช้ การสื่อสารระยะไกลบนพื้นฐาน LoRa และการเข้ารหัส AES-256 ทำให้สามารถส่งข้อความเมชแบบ peer-to-peer ที่เป็นส่วนตัวได้แม้ในสภาพแวดล้อมออฟกริด
- ระบบนิเวศกำลังขยายตัว โดยมีอุปกรณ์ที่ชุมชนรองรับมากกว่า 8 รุ่น ผู้ร่วมพัฒนาโค้ดจากทั่วโลกมากกว่า 149 คน ภูมิภาค LoRa 26 แห่ง และภาษาที่รองรับ 39 ภาษา
- ผู้ใช้บนมือถือและนักพัฒนาสามารถเข้าถึงเครือข่ายเดียวกันได้ผ่านแอป iOS·iPad·Mac OS, แอป Android, Web Client และ Python CLI/SDK
- มีไคลเอนต์หลายแบบ รวมถึงเอกสารและเครื่องมือ flasher ช่วยให้เส้นทางการเริ่มต้นตั้งแต่การเตรียมฮาร์ดแวร์ไปจนถึงการตั้งค่าและควบคุมอุปกรณ์ค่อนข้างชัดเจน
เครือข่ายเมชที่ทำงานได้โดยไม่ต้องมีโครงสร้างพื้นฐาน
- Meshtastic เป็นเครือข่ายเมชแบบกระจายศูนย์ออฟกริดที่สร้างบนพื้นฐาน โอเพนซอร์ส
- ถูกออกแบบมาให้ทำงานบนอุปกรณ์ราคาประหยัดและใช้พลังงานต่ำ พร้อมมอบ การเชื่อมต่อแบบ peer-to-peer โดยไม่ต้องมีเสาสัญญาณหรืออินเทอร์เน็ต
- แนวคิดหลักคือ “No cell towers. No internet. Just pure peer-to-peer connectivity.”
ความสามารถด้านการสื่อสาร
- Long Range: ใช้เทคโนโลยี LoRa เพื่อให้สื่อสารได้ในระยะหลายกิโลเมตร
- Encrypted: ใช้การเข้ารหัส AES-256 เพื่อให้ข้อความคงความเป็นส่วนตัวและปลอดภัย
- No Infrastructure: ทำงานได้โดยไม่ต้องมีเสาสัญญาณ, WiFi หรือการเชื่อมต่ออินเทอร์เน็ต
ชุมชนและขอบเขตการรองรับ
- ขนาดของระบบนิเวศที่ Meshtastic ระบุมีดังนี้
- อุปกรณ์ที่ชุมชนรองรับ: มากกว่า 8 รุ่น
- ผู้ร่วมพัฒนาโค้ดจากทั่วโลก: มากกว่า 149 คน
- ภูมิภาค LoRa: 26 แห่ง
- ภาษาที่รองรับ: 39 ภาษา
ไคลเอนต์สำหรับการเข้าถึงและควบคุม
- Apple Apps: แอปที่รองรับ iOS, iPad และ Mac OS สำหรับจัดการเครือข่าย Meshtastic ระหว่างเดินทาง
- Android App: สามารถเชื่อมต่อและควบคุมอุปกรณ์ Meshtastic ได้จากแอป Android
- Web Client: ไคลเอนต์บนเว็บที่ใช้เข้าถึงเครือข่าย Meshtastic ได้จากหลายอุปกรณ์
- Python CLI/SDK: มีทั้ง command-line interface และ SDK สำหรับนักพัฒนา Python
เครื่องมือเริ่มต้นใช้งานและตั้งค่า
- Get Started: ลิงก์ไปยังเอกสารเริ่มต้นใช้งาน Meshtastic
- Read the Docs: จุดเริ่มต้นของเอกสารสำหรับผู้ใช้ที่ต้องเตรียมฮาร์ดแวร์
- Flasher: ลิงก์ไปยังเครื่องมือ flasher บนเว็บไซต์ Meshtastic
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีโปรเจกต์ที่เกี่ยวข้องคือ https://github.com/antirez/freakwan/
ขอเสริมว่าเป็นสิ่งที่ผมทำเอง แนวคิดคล้ายกับ Meshtastic แต่ตั้งเป้าให้มีการจัดทำเอกสารและทำให้ การเลือกในระดับโปรโตคอล ชัดเจนยิ่งขึ้น รวมถึงเป็น implementation ที่แฮ็ก/ปรับแก้ได้ง่ายกว่ามาก
ถ้าเข้าใจภาษาอิตาลี มีเนื้อหาที่ผมนำเสนอไว้ที่นี่ด้วย: https://talks.codemotion.com/introduzione-alla-tecnologia-rf...
เคยลองใช้ที่ Burning Man ปี 2023 ซึ่ง Burning Man เป็นสภาพแวดล้อมที่โหดกับอุปกรณ์ และสภาพคลื่นความถี่วิทยุก็ซับซ้อนอย่างน่าทึ่ง
ถึงอย่างนั้นมันก็เสถียรและประสบการณ์ใช้งานก็ดี เลยค่อนข้างชอบมาก
ผมทำ fork ของเฟิร์มแวร์ที่แก้ให้แสดงตำแหน่งบน playa ไว้ด้วย
https://github.com/exadeci/Meshtastic-device-bm
ผมซื้ออุปกรณ์ LoRa/Meshtastic มาหลายตัว แล้วลองศึกษาว่าจะบันทึกตำแหน่งตัวเองและแสดงบนแผนที่แบบ APRS ได้ไหม
แต่ดูยากกว่ากระบวนการตั้งค่า APRS iGate แล้วดูตำแหน่งของตัวเองบน aprs.fi มาก
สักวันอยากลองอีกครั้ง แต่รู้สึกว่าต้องมีคู่มือเริ่มต้นที่ดีพอจะช่วยสร้างแรงจูงใจ
นึกถึงคำพูดที่ว่า อย่าถามอายุผู้หญิง อย่าถามเงินเดือนผู้ชาย และอย่าถาม throughput ของ ตัวรับส่งสัญญาณ LoRa
ถ้าอยู่ในระดับบิตสองหลักต่อวินาที เมื่อคิดรวม packet header กับ error correction ฯลฯ แล้ว อย่างดีที่สุดก็คงได้แค่ไม่กี่ตัวอักษรต่อวินาที หรือต่ำกว่านั้น
แต่ถ้าใช้ channel width ที่ใหญ่ขึ้นและ spreading factor ต่ำลง ก็ขึ้นไปได้ถึง 62.5kbps ผมไม่แน่ใจว่า Meshtastic ใช้โหมดไหนเป็นค่าเริ่มต้น แต่ดูเหมือนจะมี preset อยู่ 8 แบบ
รู้ว่าเป็นสุภาษิต และไม่ได้โทษคอมเมนต์ต้นทางนะ
ก่อนจะตื่นเต้นกับสิ่งนี้มากเกินไป ขอชี้ให้เห็นว่า การใช้เสาอากาศรอบทิศทางกับ ระบบวิทยุเมชแบบ half-duplex/TDD จัดว่าเป็นหนึ่งในวิธีที่มีประสิทธิภาพต่ำที่สุดในการสร้างเครือข่าย IP ไร้สายระดับหมู่บ้านหรือเมืองเล็ก ๆ
เมื่อเสาอากาศรอบทิศทางสื่อสารกัน เสาอากาศรอบทิศทางก็เป็นตัวรับสัญญาณรบกวน 360 องศาด้วย ทำให้รับได้แม้กระทั่งทราฟฟิกหรือสัญญาณยึดครอง time slot จากโหนดเมชที่อยู่ไกลออกไปเล็กน้อย ซึ่งไม่ใช่คู่สื่อสารที่กำลังรับส่งกันอยู่ในตอนนั้น
ในทำนองเดียวกัน เวลาส่งแพ็กเก็ตไปยังโหนดใดโหนดหนึ่ง สัญญาณ RF 99% ก็จะแผ่ออกไปในทิศมุมอะซิมัทที่ไม่ได้ต้องการและไม่จำเป็น แล้วทำให้ noise floor ของโหนดใกล้เคียงที่ใช้ฮาร์ดแวร์คล้ายกันสูงขึ้น
ถ้าใครอยากทำอะไรแบบนี้ด้วยงบที่รัดตัวมาก ๆ ผมแนะนำให้ดู ระบบไร้สาย 802.11ac/ax แบบ point-to-point ที่ออกแบบมาเพื่อสร้าง L2 Ethernet bridge ระหว่างสองจุด โดยส่วนใหญ่ใช้เสาอากาศสะท้อนพาราโบลา และช่วงหลัง ๆ ก็มีอุปกรณ์ point-to-point bridge ราคาถูกย่าน 24GHz และ 60GHz ที่ตั้งอยู่บนสมมติฐานว่าต้องมีแนวสายตาและเคลียร์ Fresnel zone
อุปกรณ์ตระกูล LoRa เองก็จะดีกว่ามาก หากต้องการลิงก์คงที่ระหว่างสองจุดในย่านที่คล้าย VHF/UHF ซึ่งต่ำกว่า 2.4GHz หรือ 5GHz มาก โดยทั่วไปต่ำกว่า 1300MHz และแทนที่จะหันเสาอากาศรอบทิศทางสองต้นเข้าหากัน ก็สามารถหันเสาอากาศ Yagi-Uda หรือไดโพลเข้าหากันได้
ถ้าเป็นไซต์ที่โหนดไม่เคลื่อนที่และตำแหน่งสัมพันธ์กันไม่เปลี่ยน ผมขอแนะนำอย่างยิ่งให้พิจารณาแทบทุกอย่างที่ไม่ใช่เสาอากาศรอบทิศทางสำหรับลิงก์เครือข่ายระหว่างโหนด เพื่อความเสถียรของลิงก์และอัตราการส่งข้อมูลที่ดีกว่า
นี่เป็นตัวอย่างสุ่ม ๆ ที่หาเจอจากการค้นหา 5 วินาที ลองดูแพตเทิร์น gain ในทิศทางเฉพาะ: https://www.elprocus.com/design-of-yagi-uda-antenna/
หนึ่งในสิ่งเจ๋ง ๆ ที่ทำกันด้วยชิปเซ็ตและโมดูล RF ตระกูล LoRa ในช่วงนี้คือ ExpressLRS ซึ่งทำ serial UART bridge ระหว่างรีโมตคอนโทรลกับ flight controller ออนบอร์ดของ UAV, เรือไร้คนขับ หรือยานภาคพื้นดิน เป็นแนวคิดทั่วไปแบบเดียวกับ TBS Crossfire สำหรับงาน RC แต่พัฒนาต่อขึ้นมา
https://www.google.com/search?client=firefox-b-d&q=expresslr...
Meshtastic คือ การส่งข้อความตัวอักษร ที่มีช่องสัญญาณ พร้อมฟังก์ชันส่งข้อมูลเซ็นเซอร์และข้อมูลตำแหน่งจากบางโหนด
ไม่ได้มีเป้าหมายเพื่อให้บริการเครือข่าย TCP/IP
การสร้าง “เครือข่าย IP ไร้สายระดับหมู่บ้านหรือเมืองเล็ก ๆ” ไม่ใช่เป้าหมายตั้งแต่แรก มันทำได้แค่สร้าง เครือข่ายส่งข้อความตัวอักษร แบบง่าย ๆ ที่ระยะค่อนข้างดี แต่แบนด์วิดท์ต่ำ
ดูเหมือนมีความเป็นไปได้ในการ เลี่ยง ISP เยอะมากจริง ๆ
แต่ในระบบที่ช้าในโดเมนเวลาและมี throughput ต่ำมากอย่าง LoRa เมื่อคำนึงถึงการเคลื่อนที่แล้ว แนวคิดนี้ไม่ใช่สิ่งที่นำไปใช้ได้ง่ายนัก
มีวิดีโอที่ชาวอังกฤษผู้กระตือรือร้นมากคนหนึ่งใช้งานแอป Android จริง ๆ และสาธิต ฟังก์ชัน traceroute รวมถึงอย่างอื่น: https://www.youtube.com/watch?v=LmGr1pGJ4sM
เห็นว่าขยายได้แค่ 80 โหนด ดังนั้นถ้าไม่ได้สร้างเองก็คงหาเมชให้เข้าร่วมได้ยาก และดูเหมือนจะใช้ได้เฉพาะในกลุ่มคนรู้จักกันเท่านั้น
อยากได้ เครือข่ายเมชทั่วโลก ที่มาแทนอินเทอร์เน็ต
การค้นหาว่า “Taco Express เปิดอยู่ตอนนี้ไหม?” ไม่ควรทำโดยตีความชื่อที่มีเอกลักษณ์ระดับโลกให้เป็นที่อยู่ที่มีเอกลักษณ์ระดับโลก แล้วไปถามเซิร์ฟเวอร์ที่อยู่ไกล จากนั้นเซิร์ฟเวอร์นั้นก็ขอข้อมูลตำแหน่งอีกทีเพื่อระบุว่าเป็น Taco Express สาขาไหน วิธีนี้เปราะบางเกินไป
แทนที่จะเป็นแบบนั้น คำค้นควรถูกแพร่กระจายไปตามเมชที่เข้าถึงได้ในขณะนั้น จนไปเจอโหนดที่มีอำนาจตอบเรื่องเวลาเปิดของ Taco Express ซึ่งอาจเป็น Raspberry Pi ที่อยู่ในร้าน Taco Express เอง เนื่องจากเป้าหมายเป็นสิ่งที่ local ต่อคำถาม โครงสร้างจึงให้ผลลัพธ์แบบ local
ปัญหาการเชื่อมเมชเหล่านี้เข้าด้วยกันก็น่าสนใจ แต่จนกว่าจะเกิดระบบนิเวศของแอปที่ไม่พึ่งพาที่อยู่คงที่ของโหนดแต่ละตัว มันก็ยังไม่ได้มีประโยชน์มากนัก
สิ่งที่ต้องการไม่ใช่การระบุที่อยู่เซิร์ฟเวอร์และ request/response แต่คือ การระบุที่อยู่ตามบริบท และ publish/subscribe ต้องมีการเปลี่ยนกรอบคิดครั้งใหญ่พอสมควร และน่าเสียดายที่ดูเหมือนการเปลี่ยนแบบนั้นคงไม่เกิดขึ้น จนกว่าจะมีภัยพิบัติบางอย่างมาทำให้ผู้คนยอมรับว่ามันจำเป็น
เมื่อเทียบกับลิงก์ไฟเบอร์ 1000km, 10000Gbps ที่ต้องใช้เงินหลายล้านดอลลาร์ในการวาง สิ่งที่คนคนเดียวจะมีส่วนร่วมได้นั้นแทบไม่มีเลย ถึงอย่างนั้นก็ไม่มีใครห้ามคุณไปหา port ในดาต้าเซ็นเตอร์สองแห่งหรือ Internet exchange สองจุด แล้วหาทางเชื่อมต่อกัน จากนั้นเก็บค่าขนส่งทราฟฟิกระหว่างสองจุดนั้น
ในยุโรป ใบเสนอราคาค่า transport 10Gbps ระยะ 650km อยู่ราวเดือนละ 800 ดอลลาร์ ดังนั้นในทางทฤษฎีก็อาจทำเงินได้ประมาณนั้น
ผมเคยทำงานเป็นผู้จัดการผลิตภัณฑ์ของระบบติดตามบุคลากรบนไซต์ก่อสร้างที่ใช้เมช และได้ไลเซนส์เทคโนโลยี Wirepas มาใช้ในโซลูชันนั้น ระหว่างนั้นได้เรียนรู้รายละเอียดปลีกย่อยของเมชเยอะมาก
มันมี trade-off ที่ยากระหว่างการค้นพบได้, latency, availability และ security
ไม่มีเครือข่ายเมชโอเพนซอร์สบน Android อยู่บ้างเหรอ? แบบที่ใช้ Wi‑Fi หรือ Bluetooth
เหมือนเคยได้ยินว่าเคยมีการใช้เครือข่ายเมชในการประท้วงเมื่อหลายปีก่อน หรือว่ายังไม่มีอะไรที่ใช้งานได้จริงอยู่ดี?
Yggdrasil ช่วยให้ใช้แอปพลิเคชัน TCP/IP บนเครือข่ายเมชของตัวเองได้ แต่ตัวมันเองไม่ได้มีฟีเจอร์สำหรับผู้ใช้ปลายทาง
Manyverse ใช้ Wi‑Fi สำหรับโซเชียลเน็ตเวิร์กแบบกระจายศูนย์ได้: https://www.manyver.se/
ตอนนี้กำลังเขียนแบ็กเอนด์ใหม่ และกำลังย้ายออกจาก Secure Scuttlebutt ไปใช้โปรโตคอลของตัวเองที่ตอนนี้ชื่อว่า PPPPP
Reticulum/Sideband ให้ระบบส่งข้อความแบบ P2P บน Wi‑Fi หรือสื่ออื่น ๆ: https://github.com/markqvist/sideband
ยุติไปเมื่อปี 2018 และก็ไม่ใช่โอเพนซอร์สด้วย
เคยอยากเข้าร่วมขบวนการ Decentralized Web ที่ TimBL ประกาศไว้ แต่สุดท้ายก็เงียบหายไป
เคยสมัครจะไป “offline camp” ที่ Oregon แต่ถูกยกเลิกเพราะไฟป่าครั้งใหญ่ และน่าจะเกี่ยวข้องกับ Camp Fire สุดท้ายเลยได้ไปตั้งแคมป์ริมแม่น้ำแทน
ใช้เงิน 1 ล้านดอลลาร์ตลอดกว่า 10 ปี เพื่อสร้างซอฟต์แวร์ชุมชนโอเพนซอร์สที่รันได้บนเซิร์ฟเวอร์เอนกประสงค์ทุกแบบ ไม่ว่าจะเป็นเครื่องบิน เรือสำราญอย่าง Norwegian Cruise Lines หรือหมู่บ้านชนบท
อยากช่วยด้านการศึกษาในท้องถิ่น รวมถึงเด็กผู้หญิงชาวอัฟกันด้วย และกำลังติดต่อกับ RohingyaProject.com และอื่น ๆ เพื่อช่วยเหลือผู้ลี้ภัยไร้รัฐ
เครือข่ายเมชแบบนี้มีอยู่แล้ว และฮาร์ดแวร์โทรศัพท์มือถือก็ยอดเยี่ยม สิ่งที่ยังขาดคือ ซอฟต์แวร์แบ็กเอนด์ ที่ดีพอจะพาผู้คนออกจาก Big Tech อย่าง Twitter หรือ Facebook เหมือนที่ Web เคยพาคนออกจาก AOL และ MSN และเหมือนที่ Wordpress เคยพาคนออกจาก Web 1.0
ถ้าอยากเข้าร่วม หรือรู้จักขบวนการ “decentralized web” หรือ “indieweb” ที่ยังคึกคักจริง ๆ ช่วยบอกไว้ด้านล่างด้วย
https://qbix.com/blog/2021/01/15/open-source-communities/
บทความล่าสุดเกี่ยวกับแพลตฟอร์ม:
https://www.laweekly.com/restoring-healthy-communities/
https://www.robots-everywhere.com/cellsol/ เราสร้างสิ่งนี้ราวปี 2020 และรองรับทั้งแพ็กเก็ตของ Meshtastic และ disasterradio