โปรโตคอลสำหรับกำหนดการตั้งค่าอุปกรณ์ IoT


9

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

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

ฉันสงสัยว่ามีโพรโทคอลใด ๆ ที่มีอยู่ที่มุ่งสู่การส่งและรับคำสั่งและกำหนดค่าอุปกรณ์ระยะไกลหรือไม่


1
คุณแน่ใจหรือไม่ว่า MQTT ไม่อนุญาตให้ลูกค้าสมัครเป็นสมาชิกช่องทางควบคุม? ฉันคิดว่านี่เป็นสถานที่ที่จะเริ่มมองหาคำตอบ แต่ฉันยังไม่ดีพอที่จะหาคำตอบในen.wikipedia.org/wiki/Representational_state_transfer
Sean Houlihane

1
อย่าลืมจุดสิ้นสุดต้องเป็นจุดเริ่มต้นของช่องสัญญาณดังนั้นจึงอยู่ในการควบคุมการใช้พลังงาน
Sean Houlihane

1
@SeanHoulihane เป็นไปได้อย่างแน่นอนที่จะใช้ MQTT เพื่อส่งและรับคำสั่ง / การตั้งค่าตามที่คุณอธิบาย แต่วิธีที่ฉันเห็นคุณควรจะมีโปรโตคอลที่เป็น "session-based" เช่นคุณสร้าง session ส่งคำสั่ง และรับการตอบสนองในเซสชันเดียวกันนั้นจึงเชื่อมโยงการตอบสนองกับคำสั่งเดิมได้อย่างง่ายดาย MQTT ขึ้นอยู่กับข้อความดังนั้นจึงไม่มีอะไรที่จะเชื่อมโยงข้อความกับกันและกัน - มันขึ้นอยู่กับคุณที่จะจัดการส่วนนั้น ฉันสงสัยว่ามีโพรโทคอลที่พร้อมใช้งานที่ฉันสามารถใช้เพื่อจุดประสงค์นั้นได้หรือไม่
Amr Bekhit

1
en.wikipedia.org/wiki/OMA_LWM2Mฉันไม่แน่ใจเหมือนกันว่าอย่างไร แต่ระบบคลาวด์ดูเหมือนว่าจะสามารถทำการโทร PUT หรือ POST เพื่อทริกเกอร์การโทรกลับในไคลเอนต์
Sean Houlihane

MQTTv5 มีฟิลด์ส่วนหัวเพื่อทำเครื่องหมายข้อความเป็นการตอบกลับข้อความก่อนหน้า
hardillb

คำตอบ:


6

ฟังดูเหมือนงานสำหรับCoAP :

เช่นเดียวกับ HTTP CoAP ขึ้นอยู่กับรูปแบบ REST ที่ประสบความสำเร็จอย่างดุเดือด: เซิร์ฟเวอร์ทำให้ทรัพยากรพร้อมใช้งานภายใต้ URL และไคลเอนต์เข้าถึงทรัพยากรเหล่านี้โดยใช้วิธีการเช่น GET, PUT, POST และ DELETE

จากมุมมองของนักพัฒนา CoAP รู้สึกเหมือน HTTP มาก การรับค่าจากเซ็นเซอร์ไม่แตกต่างจากการรับค่าจาก Web API มากนัก

สามารถนำไปใช้งานได้โดยมีค่าใช้จ่ายต่ำมาก :

CoAP ได้รับการออกแบบมาเพื่อทำงานกับไมโครคอนโทรลเลอร์ที่มี RAM ต่ำเพียง 10 KiB และพื้นที่โค้ด 100 KiB

CoAP มีการระบุไว้ในRFC 7252และมีการใช้งานที่หลากหลาย (เช่นในC )

มันได้แรงบันดาลใจอย่างมากจาก REST ที่ใช้กับ HTTP สำหรับเว็บ API ดังนั้นหากคุณคุ้นเคยกับสิ่งเหล่านั้นคุณจะได้รับ CoAP อย่างรวดเร็ว ถ้าไม่คุณอาจพบว่างานนำเสนอนี้มีประโยชน์สำหรับบริบท ความคิดคือว่าวิธี HTTP แต่ละคนมีความหมายเช่นGETขอข้อมูลจากอุปกรณ์โดยไม่ต้องเปลี่ยนอะไรและPOST, PUTและDELETEกลายพันธุ์ข้อมูล

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


0

ฉันสงสัยว่ามีโพรโทคอลใด ๆ ที่มีอยู่ที่มุ่งสู่การส่งและรับคำสั่งและกำหนดค่าอุปกรณ์ระยะไกลหรือไม่

ใช่มีโปรโตคอลที่ดีกว่าสำหรับการจัดการอุปกรณ์ใน IoT มันคือLwM2M - มีประสิทธิภาพมากกว่า MQTT และเหนือ COAP, MQTT และ HTTP

LwM2M มาพร้อมกับรูปแบบการจัดการข้อมูลและอุปกรณ์ที่กำหนดไว้อย่างดีเสนอวัตถุมาตรฐานที่พร้อมใช้งานหลากหลาย (IPSO Smart Objects) การตรวจสอบการเชื่อมต่อการกระทำของอุปกรณ์ระยะไกลและการปรับปรุงโครงสร้าง FOTA และ SOTA ในขณะที่ MQTT ผู้ขายและเฉพาะแพลตฟอร์ม สิ่งต่อไปนี้คือด้วย MQTT การอัปเดตเฟิร์มแวร์หรือคุณสมบัติการจัดการอื่น ๆ จะต้องสร้างขึ้นใหม่ทั้งหมด ในทางตรงกันข้าม LwM2M เสนอการอัพเกรดเฟิร์มแวร์เป็นหนึ่งในฟังก์ชั่นพื้นฐานดังนั้นจึงไม่จำเป็นต้องสร้างบล็อคใหม่สำหรับการสื่อสาร

ที่นี่คุณมีการเปรียบเทียบMQTT กับ LwM2Mและหลักสูตรการชนทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.