วิธีเชื่อมต่อโหนด LoRaWAN กับ TTN ทีละขั้นตอน

การปรับปรุงครั้งล่าสุด: มกราคม 25 2026
  • LoRaWAN จำเป็นต้องมีเกตเวย์ที่ได้รับการกำหนดค่าอย่างถูกต้อง (ความถี่ เครือข่าย IP เซิร์ฟเวอร์) และลงทะเบียนกับ TTN เพื่อให้โหนดต่างๆ สามารถสื่อสารกันได้
  • อุปกรณ์ปลายทางจะได้รับการลงทะเบียนในแอปพลิเคชัน TTN โดยใช้ DevEUI, JoinEUI/AppEUI และ AppKey (OTAA) หรือ NWKSKEY/APPSKEY/DEVADDR (ABP)
  • สามารถใช้เซ็นเซอร์เชิงพาณิชย์ (SenseCAP, Decentlab, Dragino, Tabs) หรืออุปกรณ์ DIY ที่ใช้ ESP32/Arduino และไลบรารี LMIC เพื่อส่งข้อมูลไปยัง TTN ได้
  • TTN ช่วยอำนวยความสะดวกในการผสานรวมกับ Node-RED และแพลตฟอร์มภายนอก เพื่อแสดงผลและใช้ประโยชน์จากข้อมูล IoT ที่รวบรวมโดยเครือข่าย LoRaWAN

เชื่อมต่อโหนด LoRaWAN เข้ากับ TTN

ถ้าคุณอ่านมาถึงตรงนี้แล้ว แสดงว่าคุณต้องการรู้วิธีเชื่อมต่อโหนด LoRaWAN กับ TTN ตั้งแต่ต้นจนจบโดยไม่ละเว้นอะไรเลย ไม่ว่าจะเป็นเกตเวย์ โหนด เซ็นเซอร์ ไลบรารี คีย์ และการกำหนดค่าเครือข่าย ข่าวดีก็คือ คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญด้านโทรคมนาคม ด้วยคู่มือที่มีโครงสร้างที่ดีและความอดทนเพียงเล็กน้อย คุณก็สามารถตั้งค่าเครือข่าย LoRaWAN ที่ใช้งานได้จริงของคุณเองได้ในเวลาไม่นาน

ในบรรทัดต่อไปนี้ คุณจะได้เห็นขั้นตอนการตั้งค่าเกตเวย์ การลงทะเบียนบน The Things Network การเพิ่มแอปพลิเคชันและอุปกรณ์ปลายทาง และการตั้งโปรแกรมโหนด LoRaWANบนบอร์ด ESP32 หรือ Arduino รวมถึงตัวอย่างการใช้งานเซ็นเซอร์เชิงพาณิชย์ (SenseCAP, Decentlab, Dragino, Tabs Browan) นอกจากนี้เรายังจะกล่าวถึงรายละเอียดเชิงปฏิบัติที่มักไม่พบในคู่มือ เช่น ปัญหาสำคัญทั่วไป การเลือกความถี่ การเชื่อมต่อพินทางกายภาพ และเทคนิคในการตรวจสอบว่าทุกอย่างสื่อสารกับ TTN ได้จริงหรือไม่

LoRa และ LoRaWAN คืออะไร และทำไมต้องใช้ TTN?

LoRa และ LoRaWAN เป็นสองแนวคิดที่เกี่ยวข้องกัน แต่ไม่ใช่สิ่งเดียวกัน LoRa คือเทคโนโลยีการมอดูเลชั่นคลื่นความถี่วิทยุระยะไกลและใช้พลังงานต่ำ ซึ่งเป็นกรรมสิทธิ์ของ Semtech ส่วน LoRaWAN คือโปรโตคอลเครือข่ายที่ใช้ LoRa ในการจัดการวิธีการสื่อสารระหว่างอุปกรณ์ปลายทาง (โหนด) กับเกตเวย์และเซิร์ฟเวอร์เครือข่าย

ในเครือข่าย LoRaWAN ทั่วไป จะมีส่วนประกอบหลักสองส่วน ได้แก่ เกตเวย์และโหนดเกตเวย์ทำหน้าที่เป็น "สะพาน" เชื่อมระหว่างโลก LoRa (คลื่นวิทยุ) และโลก IP (อินเทอร์เน็ต) โดยส่งต่อแพ็กเก็ตไปยังเซิร์ฟเวอร์ LoRaWAN ส่วนโหนดคือเซ็นเซอร์หรือแอคทูเอเตอร์ที่ส่งและรับข้อมูลโดยใช้ LoRa ไปและกลับจากเกตเวย์เหล่านี้

ในการเชื่อมต่ออุปกรณ์ทั้งหมดนี้ คุณจำเป็นต้องมีเซิร์ฟเวอร์ LoRaWAN คุณสามารถจ่ายเงินเพื่อใช้บริการจากผู้ให้บริการเอกชน (เช่น Movistar, Vodafone หรือแพลตฟอร์มอย่าง Loriot, Actility, Kerlink)หรือเลือกใช้เครือข่ายสาธารณะอย่าง The Things Network (TTN) ซึ่งเป็นเครือข่ายแบบเปิดที่ดูแลโดยชุมชน

TTN มีข้อได้เปรียบในด้านการเคารพการกำกับดูแลข้อมูล ความเป็นกลาง และการอนุญาตให้คุณมีส่วนร่วมในการติดตั้งเกตเวย์ในเครือข่ายในหลายเมือง ผู้คนกำลังติดตั้งเกตเวย์ด้วยตนเอง และทุกคนสามารถได้รับประโยชน์จากความครอบคลุมนี้โดยไม่มีค่าใช้จ่ายใด ๆ นอกเหนือจากฮาร์ดแวร์ของโหนด

ความถี่ ช่องสัญญาณ และข้อจำกัดของ LoRaWAN

ก่อนซื้ออุปกรณ์ใดๆ สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าความถี่ LoRa นั้นเข้ากันได้กับภูมิภาคของคุณการใช้งานในยุโรปไม่เหมือนกับการใช้งานในสหรัฐอเมริกาหรือเอเชีย หากคุณเลือกย่านความถี่ผิด อุปกรณ์อาจใช้งานไม่ได้หรืออาจผิดกฎหมายด้วยซ้ำ

ในยุโรป นิยมใช้ คลื่นความถี่ 868 MHz (EU868) เป็นหลัก ส่วน ในสหรัฐอเมริกา นิยมใช้คลื่นความถี่ 915 MHz (US915) ผู้ค้าปลีกชาวจีนนำเสนอโมดูล 433 MHz หลากหลายรุ่น ซึ่งอาจดูน่าสนใจเพราะราคาถูก แต่ก็อาจไม่สามารถใช้งานร่วมกับ LoRaWAN หรือระบบปฏิบัติการของประเทศของคุณได้เสมอไป

นอกจากความถี่แล้ว LoRaWAN ยังถูกจัดระเบียบเป็นช่องสัญญาณ ค่าตัวประกอบการกระจายสัญญาณ (SF) และแผนความถี่ ค่า SF กำหนดความเร็วและระยะทาง: ค่า SF ที่สูงขึ้นหมายถึงระยะทางที่ไกลขึ้น แต่ก็หมายถึงเวลาที่ใช้ในการส่งสัญญาณในอากาศนานขึ้น ซึ่งสิ้นเปลืองพลังงานและใช้พื้นที่ช่องสัญญาณมากขึ้น

ในยุโรป มีกฎที่รู้จักกันดีว่า"กฎ 1%" กล่าว คือ อุปกรณ์แต่ละชิ้นสามารถใช้งานช่องสัญญาณวิทยุได้เพียงช่วงเวลาเล็กน้อย โดยทั่วไปประมาณ 1% เท่านั้น ซึ่งจำกัดความถี่ในการส่งข้อมูล และเป็นหนึ่งในเหตุผลที่เซ็นเซอร์ LoRaWAN มักส่งข้อมูลทุกๆ สองสามนาที ไม่ใช่ทุกๆ สองสามวินาที

การเตรียมการและการคัดเลือกฮาร์ดแวร์สำหรับเกตเวย์และโหนด

ในการติดตั้งเครือข่ายที่ใช้งานได้จริง คุณจะต้องมีเกตเวย์ LoRaWAN อย่างน้อยหนึ่งตัว และโหนด (เซ็นเซอร์) อย่างน้อยหนึ่งตัวคุณสามารถใช้ฮาร์ดแวร์จากผู้ผลิตที่แตกต่างกันได้ ตราบใดที่ฮาร์ดแวร์เหล่านั้นเป็นไปตามมาตรฐาน LoRaWAN และทำงานในย่านความถี่เดียวกัน

หนึ่งในรุ่นเกตเวย์ภายในอาคารที่ได้รับความนิยมคือDragino LPS8ซึ่งรวมเอาตัวรวมสัญญาณ SX1308 ไว้ด้วย และรองรับช่องสัญญาณขนานได้สูงสุด 10 ช่อง มาพร้อมกับการตั้งค่าความถี่ที่แตกต่างกันไปตามแต่ละประเทศ และในยุโรปจะทำงานที่ความถี่ 868 MHz ใช้พลังงาน 5V ผ่าน USB-C และเชื่อมต่อกับเครือข่าย IP ผ่าน RJ-45 หรือ Wi-Fi

ตัวอย่างอื่นๆ ของเกตเวย์ที่ใช้งานได้ดีกับ TTN ได้แก่RAK7289 (สำหรับใช้งานกลางแจ้ง ทนทาน และมีตัวเลือก LTE/4G) หรือเกตเวย์ TTN-GW-868 MHz อย่างเป็นทางการ ซึ่งออกแบบมาสำหรับการติดตั้งใช้งานครอบคลุมพื้นที่ในเมืองหรือโครงการเมืองอัจฉริยะ นอกจากนี้ยังสามารถสร้างเกตเวย์แบบเซลล์เดียวโดยใช้บอร์ด ESP32 และโมดูล LoRa SX1262 ได้เช่นเดียวกับที่ทำในชุด Wio-SX1262 และ Xiaomi ESP32S3

ในฐานะโหนด คุณมีสองตัวเลือก: ใช้เซ็นเซอร์เชิงพาณิชย์ที่พร้อมใช้งานสำหรับ LoRaWAN อยู่แล้ว (เช่น SenseCAP S210x, Tabs Browan TBHH100, Dragino TrackerD, Decentlab เป็นต้น) หรือสร้างโหนดของคุณเองโดยใช้บอร์ดพัฒนา เช่น TTGO LoRa32 V2.0, ESP32 + RMF95, Arduino + โมดูล LoRa เป็นต้น

ตั้งค่าเกตเวย์ LoRaWAN และเชื่อมต่อเข้ากับ TTN

ขั้นตอนสำคัญแรกของโครงการคือการติดตั้งและใช้งานเกตเวย์ รวมถึงแสดงข้อความ "เชื่อมต่อแล้ว" บน TTNแม้ว่าผู้ผลิตแต่ละรายจะมีแดชบอร์ดของตนเอง แต่ขั้นตอนโดยหลักการแล้วคล้ายคลึงกันมาก

ตัวอย่างเช่น สำหรับ Dragino LPS8 คุณสามารถจัดการได้ผ่าน SSH หรือ HTTPหากเชื่อมต่อผ่านสาย RJ-45 คุณจะต้องค้นหาที่อยู่ IP ที่ได้รับมอบหมายจากเซิร์ฟเวอร์ DHCP (โดยใช้โปรแกรมสแกน IP หรือผ่านเราเตอร์ของคุณ) หากคุณต้องการตั้งค่าเริ่มต้นผ่าน Wi-Fi LPS8 จะสร้างเครือข่ายของตัวเองด้วย SSID เช่น “dragino-xxxxx” และรหัสผ่านเริ่มต้นเช่น “dragino+dragino” การเข้าถึงที่อยู่ IP 10.130.1.1 จะนำคุณไปยังแผงควบคุมเว็บ ซึ่งชื่อผู้ใช้และรหัสผ่านเริ่มต้นมักจะเป็น “admin/dragino”

เมื่อเข้าสู่ระบบ คุณจะเห็นเมนูที่มีหลายส่วน และบางตัวเลือกอาจมีเครื่องหมายกากบาทสีแดงซึ่งบ่งชี้ว่าการตั้งค่าบางอย่างหายไปขั้นตอนแรกคือการเลือกแผนความถี่ที่ถูกต้องสำหรับพื้นที่ของคุณในแท็บ LoRa ในยุโรปคือ EU868 (ประมาณ 868 MHz)

  การเชื่อมต่อ 5G M2M: รากฐานของสภาพแวดล้อมไร้ขีดจำกัด

ถัดไป แตะ แท็บ LoRaWAN หรือ Network Serverตรงนี้คุณจะกำหนดว่าเกตเวย์จะเชื่อมต่อกับเซิร์ฟเวอร์ LoRaWAN ใด สำหรับ TTN ให้เลือก "TTN" เป็นผู้ให้บริการและป้อนที่อยู่ของเซิร์ฟเวอร์ในยุโรป (ตัวอย่างเช่น eu1.cloud.thethings.network) โดยคงพอร์ต UDP ไว้ (โดยปกติคือ 1700 สำหรับทั้งการอัปโหลดและการดาวน์โหลด) ในส่วนเดียวกันนั้น คุณจะเห็น Gateway ID หรือ EUI ซึ่งเราจะต้องใช้ในภายหลังใน TTN

ในส่วนเครือข่าย คุณสามารถกำหนดค่าวิธีการเชื่อมต่อเกตเวย์กับอินเทอร์เน็ตได้ ไม่ว่าจะเป็น LAN, WAN หรือ Wi-Fi WAN สำหรับอินเทอร์เฟซ WAN คุณสามารถเลือกใช้ที่อยู่ IP แบบคงที่หรือ DHCP ได้ แต่หากเป็นไปได้ ขอแนะนำให้ใช้ที่อยู่ IP แบบคงที่ผ่านการเชื่อมต่อแบบใช้สาย เพื่อการเชื่อมต่อที่เสถียรยิ่งขึ้นและการจัดการที่ง่ายขึ้น ส่วน LAN นั้นโดยทั่วไปจะใช้สำหรับเครือข่ายจุดเชื่อมต่อภายในของเกตเวย์ ควรทำความเข้าใจอย่างถ่องแท้ถึงวิธีการเปลี่ยนแปลงการตั้งค่านี้ เพราะอาจช่วยชีวิตได้หากเกิดปัญหาขึ้น

ในส่วนของ WiFi คุณสามารถปรับแต่งทั้งจุดเชื่อมต่อที่สร้างโดยเกตเวย์เองและการเชื่อมต่อกับเครือข่าย WiFi ภายนอกได้เพื่อความปลอดภัย ขอแนะนำให้เปลี่ยน SSID และรหัสผ่านเริ่มต้นของจุดเชื่อมต่อที่มาจากโรงงาน

สำหรับเกตเวย์ RAK7289 กระบวนการจะคล้ายกัน: เข้าถึงแผงควบคุมเว็บตั้งค่าที่อยู่ IP (แบบคงที่หรือ DHCP) ผ่านทาง Network → WAN Interfaceจากนั้น ใน LoRa Network → Network Settings → Packet Forwarder ให้ป้อนรายละเอียดเซิร์ฟเวอร์ TTN และจดบันทึก Gateway EUI เพื่อลงทะเบียนกับ TTN ในภายหลัง หากคุณอยู่หลังเราเตอร์ที่ให้บริการ DHCP คุณสามารถค้นหาที่อยู่ IP ของเกตเวย์ได้โดยดูจากตารางการเช่า (โดยใช้ชื่อโฮสต์ เช่น "RAK7289") หรือใช้เครื่องมือเช่น nmap

การลงทะเบียนเกตเวย์บน The Things Network

เมื่อเกตเวย์เชื่อมต่ออินเทอร์เน็ตได้แล้ว คุณต้องลงทะเบียนเกตเวย์กับ TTNหากคุณยังไม่มีบัญชี ให้ลงทะเบียนก่อนบนเว็บไซต์ The Things Network จากนั้นเข้าถึงคอนโซลในภูมิภาคที่เกี่ยวข้อง (ตัวอย่างเช่น https://eu1.cloud.thethings.network/)

ภายในคอนโซล ให้เลือกส่วน Gateways แล้วคลิกที่ “Register gateway” TTN จะขอ Gateway ID (ชื่อเฉพาะในบัญชีของคุณ) และ Gateway EUI ขึ้นอยู่กับประเภทของเกตเวย์ สำหรับเกตเวย์ Dragino LPS8 ที่ใช้ตัวส่งต่อแพ็กเก็ตแบบคลาสสิก คุณต้องเลือกตัวเลือก “I’m using the legacy packet forwarder”

นอกจากนี้ คุณจะต้องระบุแผนความถี่ (EU868 สำหรับยุโรป)ภูมิภาคหรือเราเตอร์ที่เกี่ยวข้อง และอาจระบุตำแหน่ง (พิกัด ภายใน/ภายนอกอาคาร ฯลฯ) สำหรับเกตเวย์ เช่น เกตเวย์แบบเซลล์เดียวที่มี XIAO ESP32S3 และ Wio-SX1262 เฟิร์มแวร์อาจแสดง Gateway ID ผ่านพอร์ตอนุกรมเมื่อเริ่มต้นระบบ เพียงคัดลอกและใช้ในแบบฟอร์มลงทะเบียน

หลังจากกรอกข้อมูลและลงทะเบียนเกตเวย์เสร็จแล้ว TTN จะแสดงตัวตรวจสอบสถานะ("เชื่อมต่อแล้ว" หรือ "ตัดการเชื่อมต่อ")และส่วน "การรับส่งข้อมูล" ซึ่งคุณสามารถดูการไหลของแพ็กเก็ตแบบเรียลไทม์ได้ หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้องทั้งบนเกตเวย์และ TTN คุณควรเห็นสถานะเปลี่ยนเป็น "เชื่อมต่อแล้ว" ภายในหนึ่งหรือสองนาที และเริ่มเห็นการรับส่งข้อมูลเมื่อโหนดต่างๆ กำลังส่งข้อมูล

หมายความว่าโครงสร้างพื้นฐาน (เกตเวย์ + เซิร์ฟเวอร์) พร้อมใช้งานแล้วจากตรงนี้ ขั้นตอนต่อไปคือการกำหนดค่าแอปพลิเคชันและอุปกรณ์ปลายทาง

การสร้างแอปพลิเคชันและการลงทะเบียนโหนดใน TTN

ใน TTN อุปกรณ์ต่างๆ จะไม่ถูกลงทะเบียนโดยตรงที่บัญชีหลัก แต่จะลงทะเบียนภายในแอปพลิเคชัน แอปพลิเคชันจะรวมกลุ่มอุปกรณ์ตั้งแต่หนึ่งตัวขึ้นไปที่ส่งข้อมูลที่เกี่ยวข้อง ตัวอย่างเช่น เซ็นเซอร์ตรวจวัดสภาพแวดล้อมทั้งหมดในอาคาร หรืออุปกรณ์ติดตาม GPS หลายตัวในโครงการด้านการศึกษา

ในคอนโซล TTN ไปที่ส่วนแอปพลิเคชันและสร้างแอปพลิเคชันใหม่ตั้งชื่อแอปพลิเคชันให้มีเอกลักษณ์เฉพาะตัว (ID) และอาจใส่คำอธิบายเพิ่มเติมได้ และเลือกภูมิภาคที่เหมาะสม ภายในแอปพลิเคชันนั้น คุณจะลงทะเบียนโหนด LoRaWAN แต่ละโหนดด้วยข้อมูลประจำตัว (DevEUI, JoinEUI/AppEUI และ AppKey หรือคีย์อื่นๆ ขึ้นอยู่กับวิธีการเปิดใช้งาน)

สำหรับเซ็นเซอร์เชิงพาณิชย์ เช่น เซ็นเซอร์วัดอุณหภูมิและความชื้น Browan TBHH100-868มักจะมีฉลากที่มี DevEUI, AppEUI และ AppKey ติดอยู่ โดยทั่วไปจะใช้วิธี OTAA (Over-The-Air Activation) ซึ่งจะสร้างเซสชันคีย์ทุกครั้งที่เข้าร่วมเครือข่าย ทำให้มีความปลอดภัยมากกว่า ABP

ใน TTN เมื่อใช้ OTAA คุณเลือกที่จะลงทะเบียนอุปกรณ์ปลายทางใหม่ป้อน JoinEUI (AppEUI), DevEUI และ AppKeyตรวจสอบข้อมูล และยืนยัน เมื่อบันทึกแล้ว หากโหนดได้รับการกำหนดค่าอย่างถูกต้องและอยู่ในระยะของเกตเวย์ โหนดจะมองเห็นสัญญาณเครือข่าย ดำเนินการตามขั้นตอนการเข้าร่วม และคุณจะเริ่มเห็นข้อความอัปโหลดพร้อมค่าการวัดในคอนโซล

หลักการเดียวกันนี้ใช้ได้กับเซ็นเซอร์ต่างๆ เช่น เซ็นเซอร์ วัดระดับและอุณหภูมิของ Decentlab : ผู้ผลิตจะให้ ID, DevEUI, AppEUI และ AppKey แต่ไม่ทราบล่วงหน้าว่าคุณจะใช้เซิร์ฟเวอร์ใด คุณมีหน้าที่รับผิดชอบในการลงทะเบียนข้อมูลนี้กับ TTN (หรือเซิร์ฟเวอร์อื่น) เพื่อให้สามารถลงทะเบียนเซ็นเซอร์ได้ อุปกรณ์ Decentlab หลายรุ่นได้รับการลงทะเบียนกับ TTN ไว้ล่วงหน้าแล้ว หากคุณร้องขอ ซึ่งจะทำให้กระบวนการง่ายขึ้นไปอีก

การกำหนดค่าเซ็นเซอร์ LoRaWAN เชิงพาณิชย์

เรามาดูตัวอย่างที่เป็นรูปธรรมเกี่ยวกับการเตรียมและลงทะเบียนเซ็นเซอร์ LoRaWAN เชิงพาณิชย์ที่จะสื่อสารกับ TTN ผ่านเกตเวย์ของคุณกัน

ในกลุ่มผลิตภัณฑ์ SenseCAP S210x (เช่น เซ็นเซอร์ตรวจวัดสภาพแวดล้อม) ขั้นตอนการทำงานทั่วไปคือการใช้แอป SenseCraft ของผู้ผลิตขั้นแรก ดาวน์โหลดแอป เปิดใช้งานเซ็นเซอร์ด้วยปุ่ม (โดยกดปุ่มค้างไว้สองสามวินาทีจนกว่าไฟ LED จะกะพริบทุกวินาที) จากนั้นในแอป ให้เลือก "สแกน" เพื่ออ่านคิวอาร์โค้ดของอุปกรณ์

ภายในแอปพลิเคชันจะมีโหมด "การกำหนดค่าขั้นสูง" ซึ่งคุณต้องเลือก "The Things Network" เป็นแพลตฟอร์มคุณต้องเลือกแผนความถี่เดียวกันกับเกตเวย์ของคุณ (ตัวอย่างเช่น EU868) และตรวจสอบให้แน่ใจว่าโหมดการเข้าร่วมเป็น OTAA แอปพลิเคชันจะแสดง Device EUI, AppEUI (JoinEUI) และ AppKey ควรจดบันทึกค่าเหล่านี้ไว้ เพราะคุณจะต้องป้อนค่าเหล่านี้ลงใน TTN เมื่อลงทะเบียนอุปกรณ์

ในกรณีของเซ็นเซอร์ Tabs Browan TBHH100-868นั้น ปุ่มต่างๆ จะถูกตั้งค่าไว้ล่วงหน้าจากโรงงาน เซ็นเซอร์นี้วัดอุณหภูมิและความชื้น ใช้พลังงานจากแบตเตอรี่ 3,6V และส่งข้อมูลตามกฎเหล่านี้: ทุกๆ 60 นาทีหากไม่มีการเปลี่ยนแปลง หรือเร็วกว่านั้นหากอุณหภูมิเปลี่ยนแปลง ±2°C หรือความชื้นเปลี่ยนแปลง ±5% ในการลงทะเบียน เพียงแค่ป้อน APPKey, APPEUI และ DevEUI ที่ผู้ผลิตให้มาลงในเซิร์ฟเวอร์ LoRaWAN ของคุณ (เช่น TTN) บางครั้งอาจมีปัญหาเกี่ยวกับรูปแบบหรือลำดับไบต์ (msb/lsb) ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องตรวจสอบหากไม่สามารถเชื่อมต่อได้ในครั้งแรก

  คู่มือฉบับสมบูรณ์สำหรับการติดตั้ง Pi-hole ด้วย Docker

อุปกรณ์ Dragino TrackerDใช้เป็นอุปกรณ์ติดตาม GPS พร้อมปุ่มแจ้งเหตุฉุกเฉิน แต่ละยูนิตมีชุดคีย์ LoRaWAN ของตัวเอง ใน TTN โดยทั่วไปแล้วคีย์เหล่านี้จะถูกลงทะเบียนในแอปพลิเคชันเดียวกัน (เช่น "การติดตามเส้นทาง") และอุปกรณ์จะได้รับการกำหนดค่า หากจำเป็น ผ่านพอร์ตอนุกรม (USB) โดยใช้คำสั่ง AT เอกสารประกอบจะอธิบายรายละเอียดคำสั่งสำหรับการปรับอัตราการส่งข้อมูล พฤติกรรมการแจ้งเตือน ฯลฯ ข้อสำคัญ: เฟิร์มแวร์ Dragino หลายตัวต้องการให้คัดลอกคำสั่ง AT ทั้งหมดลงในเทอร์มินัล ไม่ใช่พิมพ์ทีละตัวอักษร

ในเซ็นเซอร์ต่างๆ เช่นเซ็นเซอร์วัดระดับ ความดัน หรือสภาพแวดล้อมของ Decentlabหลักการทำงานก็คล้ายกัน คือใช้ DevEUI, AppEUI และ AppKey ในการเชื่อมต่อกับ TTN (หรือเครือข่ายอื่นๆ) โดยทั่วไป Decentlab จะตั้งช่วงเวลาการส่งข้อมูลไว้ที่ 10 นาที เพราะเป็นจุดที่เหมาะสมระหว่างการใช้ข้อมูลและความละเอียด แต่สามารถปรับเปลี่ยนได้ตามคำขอหรือผ่านการตั้งค่า ผู้ใช้สามารถดูข้อมูลบนแพลตฟอร์มคลาวด์ของผู้ผลิตเอง หรือผสานรวมอุปกรณ์เข้ากับแพลตฟอร์มของบุคคลที่สาม (MyDevices, ResIoT, WMW ฯลฯ) โดยการเพิ่มตัวถอดรหัสข้อมูลที่เหมาะสม

สร้างโหนด LoRaWAN ของคุณเองด้วยฮาร์ดแวร์โอเพนซอร์ส

หากคุณชื่นชอบการประดิษฐ์คิดค้น สิ่งที่สนุกที่สุดมักจะเป็นการสร้างและเขียนโปรแกรมโหนด LoRaWAN ของคุณเองการผสมผสานที่นิยมมากคือการใช้บอร์ด ESP32 ที่มี LoRa ในตัว เช่น TTGO LoRa32 V2.0 868 MHz และเพิ่มเซ็นเซอร์อย่างง่าย เช่น เซ็นเซอร์วัดอุณหภูมิ DS18B20

วิธีการนี้ต้องใช้ส่วนประกอบสี่ส่วน ได้แก่บอร์ดควบคุม (ESP32, Arduino ฯลฯ) โมดูลวิทยุ LoRa (เช่น RFM95 ชนิด SX1276/78) เซ็นเซอร์ที่คุณต้องการวัดและอุปกรณ์เสริมอื่นๆ เช่น จอแสดงผล OLED สำหรับแสดงข้อมูลในพื้นที่

บอร์ด TTGO LoRa32 V2.0 มาพร้อมกับตัวรับส่งสัญญาณ LoRa ในตัว และอาจมีจอแสดงผล OLED ขนาดเล็กขึ้นอยู่กับรุ่น บอร์ดนี้ใช้ชิป ESP32 จึงสามารถใช้งาน WiFi และ Bluetooth ได้ และในหลายกรณีก็เหมาะอย่างยิ่งสำหรับการสร้างเกตเวย์ขนาดเล็กแบบช่องสัญญาณเดียวเมื่อเชื่อมต่อกับอินเทอร์เน็ต อย่างไรก็ตาม บนบอร์ดนี้และบอร์ดที่คล้ายกันสัญญาณบางส่วนจากโมดูล LoRa (DIO1, DIO2) ไม่ได้ต่อสายไว้ล่วงหน้ากับไมโครคอนโทรลเลอร์คุณจึงต้องต่อสายเอง

ตัวอย่างเช่น TTGO LoRa32 V2.0 โดยทั่วไปจะใช้การจัดเรียงขา (pinout) สำหรับ LoRa ดังนี้: SCK บน GPIO5, MISO บน GPIO19, MOSI บน GPIO27, CS บน GPIO18, RESET บน GPIO14 และ DIO0 บน GPIO26โดยปกติแล้ว DIO1 และ DIO2 จะเชื่อมต่อทางกายภาพกับ GPIO33 และ GPIO32 ตามลำดับ ซึ่งอยู่ตรงข้ามกันในแถวตรงข้าม ทำให้ง่ายต่อการใช้สายจัมเปอร์เชื่อมต่อโดยตรง

โดยทั่วไปแล้วมีวิธีการเชื่อมต่อสามวิธี ได้แก่การบัดกรีสายไฟเข้ากับขาโดยตรง (สำหรับการประกอบขั้นสุดท้าย) การใช้สายจัมเปอร์หากบอร์ดอยู่บนแผงทดลองหรือการเดินสายเชื่อมต่อลงบนแผงวงจรพิมพ์เฉพาะที่เสียบ TTGO เข้าไป โดยปกติแล้ววิธีการใช้สายจัมเปอร์จะสะดวกที่สุดสำหรับการทดสอบ

ซอฟต์แวร์โหนด: ไลบรารี LMIC, ความถี่ และคีย์ TTN

ในการเขียนโปรแกรมโหนด LoRaWAN บน Arduino/ESP32 นั้น ไลบรารี MCCI LoRaWAN LMICเป็นที่นิยมใช้กันอย่างแพร่หลายซึ่งเป็นไลบรารีที่ใช้ในการสร้าง LoRaWAN stack และจัดการทุกอย่างที่เกี่ยวข้องกับช่องสัญญาณ การเข้าร่วม การลองใหม่ ช่วงเวลาการรับสัญญาณ ฯลฯ

ขั้นแรก ติดตั้งไลบรารีจากตัวจัดการไลบรารีของ Arduino IDEโดยค้นหา "LMIC" และเลือก "MCCI LoRaWAN LMIC library" เมื่อติดตั้งเสร็จแล้ว มีรายละเอียดสำคัญอย่างหนึ่งคือ โดยค่าเริ่มต้นจะตั้งค่าไว้สำหรับ US915 (สหรัฐอเมริกา) ดังนั้นหากคุณอยู่ในยุโรป คุณต้องเปลี่ยนเป็น EU868

ในการดำเนินการนี้ ให้ค้นหาไฟล์ lmic_project_config.h ภายในโฟลเดอร์ไลบรารี (เช่น /Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/) และแก้ไขคำจำกัดความ ให้คอมเมนต์บรรทัด CFG_us915 ​​​​และเปิดใช้งาน CFG_eu868 พร้อมทั้งตรวจสอบให้แน่ใจว่าได้เปิดใช้งานประเภทวิทยุที่ถูกต้องแล้ว (ตัวอย่างเช่น CFG_sx1276_radio สำหรับโมดูล SX1276/78) การเปลี่ยนแปลงนี้เป็นการดำเนินการเพียงครั้งเดียวและจะมีผลกับโปรเจ็กต์ LMIC ทั้งหมดของคุณ

จากนั้นให้เปิดตัวอย่างที่ให้มา เช่นttn-abpซึ่งจะส่งข้อความ “Hello, world!” เป็นระยะๆ ตัวอย่างนี้ใช้เป็นพื้นฐานในการปรับแต่งให้เข้ากับบอร์ดและข้อมูลประจำตัว TTN ของคุณ

ในโค้ด คุณจะเห็นโครงสร้าง lmic_pinmap ที่ระบุพิน NSS (CS), RST และ DIOโดยค่าเริ่มต้น มักจะถูกแมปไว้สำหรับ Feather M0 LoRa ดังนั้นหากคุณใช้ TTGO LoRa32 V2.0 คุณจะต้องเปลี่ยนโครงสร้างนี้ให้ใช้ .nss = 18, .rst = 14 และ .dio = {26, 33, 32} (สมมติว่าคุณได้ต่อสาย DIO1 กับ GPIO33 และ DIO2 กับ GPIO32 แล้ว) หากฮาร์ดแวร์ของคุณแตกต่างออกไป คุณจะต้องศึกษาเอกสารประกอบหรือค้นหาตัวอย่างเฉพาะ

เมื่อกำหนดตำแหน่งขาพินถูกต้องแล้ว ก็ถึงเวลาตั้งค่าคีย์ที่ใช้ระบุโหนดของคุณใน TTNในตัวอย่าง ttn-abp ตัวแปร NWKSKEY, APPSKEY และ DEVADDR จะปรากฏพร้อมคำว่า FILLMEIN เพื่อให้คุณสามารถกรอกค่าของคุณลงไปได้

คุณจะได้รับข้อมูลนี้จากคอนโซล TTN เมื่อสร้างอุปกรณ์ด้วยการเปิดใช้งาน ABP TTN จะให้คีย์เซสชันเครือข่าย (NWKSKEY), คีย์เซสชันแอป (APPSKEY) และที่อยู่ของอุปกรณ์ (DEVADDR) แก่คุณ ในอินเทอร์เฟซ คีย์เหล่านี้จะถูกซ่อนไว้ด้วยเหตุผลด้านความปลอดภัย แต่คุณสามารถทำให้มองเห็นได้ และที่สำคัญกว่านั้นคือ คัดลอกค่าโดยตรงเป็นอาร์เรย์ C (โดยใช้ปุ่ม "<>") ด้วยลำดับไบต์ที่ถูกต้อง (msb) การคลิกไอคอนคัดลอกจะคัดลอกอาร์เรย์ไปยังคลิปบอร์ด และคุณสามารถวางลงในโค้ดของคุณในตำแหน่งที่แต่ละ FILLMEIN อยู่ได้เลย

สำหรับ NWKSKEY และ APPSKEY คุณจะใช้รูปแบบอาร์เรย์ไบต์ที่ TTN จัดเตรียมไว้ให้ในขณะที่สำหรับ DEVADDR คุณจะตั้งค่าเลขฐานสิบหกเป็นจำนวนเต็มตัวเดียวของชนิด u4_t ตัวอย่างเช่น `static const u4_t DEVADDR = 0x26011111;` ด้วยวิธีนี้ โหนดของคุณจะสามารถตรวจสอบสิทธิ์และกำหนดเส้นทางแพ็กเก็ตไปยังแอปพลิเคชัน TTN ของคุณได้

ผสานรวมเซ็นเซอร์เข้ากับโค้ดของโหนด

เมื่อโครงสร้างพื้นฐานของ LoRaWAN ทำงานได้แล้ว ก็ถึงเวลาที่จะแทนที่ข้อความ "Hello, world!" ทั่วไปด้วยข้อมูลเซ็นเซอร์จริงโดยใช้ตัวอย่าง TTGO LoRa32 และ DS18B20 ต่อไป คุณจะใช้บัส OneWire และไลบรารี DallasTemperature

  คู่มือฉบับสมบูรณ์สำหรับปลั๊กอิน Google Cloud Developer สำหรับ AI Agents

ในตอนต้นของโค้ด ให้รวมเฮดเดอร์และกำหนดพินบัส: `#include <OneWire.h>`, `#include <DallasTemperature.h>` และ `#define ONE_WIRE_BUS X`โดยที่ X คือพิน GPIO ที่คุณเชื่อมต่อเซ็นเซอร์ไว้ สร้างอ็อบเจ็กต์ `OneWire` `oneWire(ONE_WIRE_BUS)` และอ็อบเจ็กต์ `DallasTemperature` `sensor(&oneWire)` หากคุณยังไม่ได้ติดตั้งไลบรารี DS18B20 ให้เพิ่มจากตัวจัดการไลบรารี

ในฟังก์ชัน setup() คุณจะเริ่มต้นใช้งานเซ็นเซอร์ด้วยsensor.begin() และหากต้องการ คุณสามารถตั้งค่าความละเอียดได้ (ตัวอย่างเช่น sensor.setResolution(11))จากนั้น เซ็นเซอร์ก็จะพร้อมอ่านค่าอุณหภูมิเมื่อคุณต้องการ

ฟังก์ชันหลักใน LMIC สำหรับการส่งข้อมูลคือ `do_send(osjob_t* j)` ภายในฟังก์ชันนี้ คุณจะเห็นการตรวจสอบการส่งข้อมูลที่กำลังดำเนินอยู่ (`OP_TXRXPEND`) หากไม่มีการส่งข้อมูลอยู่ คุณจะเรียก `sensor.requestTemperatures()` รับค่าด้วย `sensor.getTempCByIndex(0)` และเก็บไว้ในอาร์เรย์ `mydata` ตัวอย่างเช่น คุณสามารถใช้ `mydata[0] = (uint8_t)sensor.getTempCByIndex(0);` เพื่อส่งเฉพาะส่วนที่เป็นจำนวนเต็ม

จากนั้นเรียกฟังก์ชันLMIC_setTxData2(1, mydata, sizeof(mydata), 0)โดยพารามิเตอร์แรกคือพอร์ต LoRaWAN (ในกรณีนี้คือ 1) พารามิเตอร์ที่สองคือบัฟเฟอร์ พารามิเตอร์ที่สามคือขนาด และพารามิเตอร์สุดท้ายระบุว่าข้อความได้รับการยืนยันแล้ว (1) หรือไม่ได้รับการยืนยัน (0) จากนั้นไลบรารีจะกำหนดเวลาการส่งในช่องเวลาที่ว่างถัดไป

ยังมีวิธีปรับปรุงอีกมากมาย เช่นขยายขอบเขตการส่งข้อมูลให้ครอบคลุมข้อมูลทศนิยม เพิ่มเซ็นเซอร์อื่นๆ บรรจุข้อมูลในรูปแบบไบนารีที่มีประสิทธิภาพเป็นต้น แต่แม้ในเวอร์ชันที่เรียบง่ายนี้ คุณก็มีโหนดที่ส่งข้อมูลการวัดแบบเรียลไทม์ไปยัง TTN เป็นระยะๆ ซึ่งสามารถมองเห็นได้บนคอนโซลและพร้อมที่จะผสานรวมกับระบบอื่นๆ แล้ว

การเปิดใช้งาน OTAA, การรักษาความปลอดภัย และประสบการณ์จริง

ที่ผ่านมาเราได้พูดถึง ABP ในส่วนของตัวอย่างโค้ดเป็นหลัก แต่ในการใช้งานจริงขอแนะนำอย่างยิ่งให้ใช้ OTAA (Over-The-Air Activation) OTAA เป็นวิธีการที่ใช้โดยเซ็นเซอร์ของ Decentlab และเซ็นเซอร์ของ SenseCAP หลายตัว เนื่องจากช่วยเพิ่มความปลอดภัย

ด้วย OTAA การเชื่อมต่อ LoRaWAN จะถูกเจรจา "ทางอากาศ" ทุกครั้งที่อุปกรณ์เข้าร่วมเครือข่ายเมื่ออุปกรณ์ปิดเครื่อง รีสตาร์ท หรือสูญเสียการเชื่อมต่อ คีย์การเชื่อมต่อใหม่จะถูกสร้างขึ้นในครั้งถัดไปที่เข้าร่วม ทำให้ยากต่อการคัดลอกอุปกรณ์โดยการคัดลอกคีย์แบบคงที่เพียงอย่างเดียว

ในคอนโซล TTN เมื่อคุณเลือก OTAA สำหรับอุปกรณ์ แทนที่จะใช้ NWKSKEY และ APPSKEY แบบคงที่ คุณจะมีDevEUI, JoinEUI/AppEUI และ AppKey แทนคีย์เซสชันจะถูกสร้างขึ้นทุกครั้งจากค่าเหล่านี้และการแลกเปลี่ยนกับเซิร์ฟเวอร์ และคุณจะเห็นเฉพาะคีย์ที่ได้มาในช่วงเวลาของเซสชันเท่านั้น

ในทางปฏิบัติ ผู้ใช้ที่เริ่มต้นใช้งาน LoRaWAN จากศูนย์พบว่าด้วยเกตเวย์ที่ลงทะเบียนกับ TTN และเซ็นเซอร์ OTAA ที่กำหนดค่าอย่างถูกต้อง กระบวนการลงทะเบียนนั้นง่ายมาก : สร้างบัญชีบน TTN เปิดใช้งานเกตเวย์ ลงทะเบียนเซ็นเซอร์ด้วยคีย์ที่ผู้ผลิตให้มา และภายในไม่กี่นาทีก็สามารถดูข้อมูลบนแพลตฟอร์มเว็บได้ (ไม่ว่าจะเป็นของ Decentlab เอง SenseCAP หรือแดชบอร์ดของบุคคลที่สาม)

ปัจจัยต่างๆ เช่นตำแหน่งของกล่อง LoRa ของเซ็นเซอร์ (ควรวางในแนวตั้ง ซึ่งเอื้อต่อการแผ่รังสีของเสาอากาศภายใน)สภาพแวดล้อมทางวิทยุ และความสูงของเกตเวย์ ล้วนมีผลอย่างมากต่อระยะการครอบคลุมสัญญาณจริง แต่ขั้นตอนการติดตั้งนั้นค่อนข้างง่ายเมื่อเข้าใจแล้ว

จาก TTN สู่แอปพลิเคชันของคุณ: การผสานรวมและการแสดงผล

เมื่อโหนดต่างๆ เริ่มอัปโหลดข้อมูลไปยัง TTN แล้ว ขั้นตอนต่อไปคือการนำข้อมูลเหล่านั้นเข้าสู่แอปพลิเคชัน แดชบอร์ด หรือเวิร์กโฟลว์อัตโนมัติของคุณเอง TTN มีการเชื่อมต่อที่มีประสิทธิภาพและ API สำหรับการนี้

วิธีการที่นิยมใช้กันมากคือการใช้Node-RED เพื่อรับข้อมูลจาก TTN และประมวลผลตามต้องการคุณตั้งค่าการเชื่อมต่อ MQTT หรือ HTTP ด้วยข้อมูลประจำตัวของแอปพลิเคชัน TTN ของคุณ ถอดรหัสข้อมูล (ตามรูปแบบของเซ็นเซอร์ของคุณ) และจากนั้นคุณก็สามารถทำอะไรก็ได้แทบทุกอย่าง เช่น บันทึกไปยังฐานข้อมูล แสดงกราฟ แจ้งเตือน ฯลฯ

อีกทางเลือกหนึ่งคือการใช้แพลตฟอร์มของบุคคลที่สามที่ผสานรวมกับ TTN อยู่แล้วเช่น Datacake, MyDevices, ResIoT, WMW และอื่นๆ แพลตฟอร์มเหล่านี้หลายแห่งมีเทมเพลตเฉพาะสำหรับอุปกรณ์ต่างๆ เช่น เซ็นเซอร์ Decentlab หรือ Dragino บางรุ่น ดังนั้นคุณเพียงแค่เลือกประเภทอุปกรณ์ เชื่อมโยงกับแอปพลิเคชัน TTN ของคุณ และเริ่มดูข้อมูลบนแดชบอร์ดที่ใช้งานง่ายได้เลย

ตัวอย่างเช่น ในโครงการด้านการศึกษา TTN ถูกนำมาใช้ร่วมกับเกตเวย์ RAK7289 และตัวติดตาม Dragino TrackerDเพื่อระบุตำแหน่งบุคคลหรือยานพาหนะ ขั้นตอนการทำงานมีดังนี้: ลงทะเบียนเกตเวย์ ลงทะเบียนตัวติดตามใน TTN ดูข้อมูลบนคอนโซล จากนั้นแสดงผลแบบเรียลไทม์บนแดชบอร์ด Datacake สาธารณะ พร้อมแผนที่และกราฟแสดงตำแหน่ง ระดับแบตเตอรี่ ฯลฯ

สิ่งสำคัญที่ต้องเข้าใจคือTTN ทำหน้าที่เป็นเลเยอร์เครือข่าย LoRaWAN และเราเตอร์ข้อมูลคุณเป็นผู้กำหนดเลเยอร์แอปพลิเคชันและการแสดงผล: ตั้งแต่สคริปต์ Python ที่เรียกใช้ API ไปจนถึงแพลตฟอร์มข้อมูล IoT ระดับอุตสาหกรรม

โดยสรุป การเชื่อมต่อโหนด LoRaWAN กับ TTN นั้นเกี่ยวข้องกับหลายขั้นตอน (ความถี่ที่ถูกต้อง เกตเวย์ที่กำหนดค่าอย่างเหมาะสม การลงทะเบียน TTN คีย์โหนด การเปิดใช้งาน OTAA หรือ ABP ซอฟต์แวร์อุปกรณ์ และหากต้องการ การบูรณาการเพิ่มเติมในภายหลัง) แต่แต่ละส่วนนั้นสามารถจัดการได้แม้ไม่มีประสบการณ์มาก่อน หากปฏิบัติตามแนวทางที่ถูกต้อง เมื่อการตั้งค่าเริ่มต้นเสร็จสมบูรณ์ การติดตั้งโหนดหรือเกตเวย์เพิ่มเติมจะกลายเป็นกระบวนการที่ทำซ้ำได้และปรับขนาดได้ง่าย เหมาะสำหรับโครงการเซ็นเซอร์ขนาดใหญ่ โครงการเมืองอัจฉริยะ หรือเพียงแค่เพื่อการเรียนรู้และทดลองกับ IoT ระยะไกล