MQTT

จาก Morange Wiki
รุ่นแก้ไขเมื่อ 09:48, 10 พฤษภาคม 2562 โดย Witawatd (คุย | มีส่วนร่วม) (ความจ่างระหว่าง MQTT กับ HTTP)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)

MQTT คืออะไร

เป็น Protocol TCP เป็นรากฐาน ออกแบบมาสำหรับงานที่ต้องการสื่อสารแบบเรียลไทม์แบบไม่จำกัดแพลตฟอร์ม หมายถึงอุปกรณ์ทุกชิ้นสามารถสื่อสารกันได้ผ่าน MQTT ที่ออกแบบมาเพื่อการเชื่อมต่อแบบ M2M (Machine to Machine) คืออุปกรณ์กับอุปกรณ์ สนับสนุนเทคโนโลยี iot (Internet of Things) คือเทคโนโลยีที่อินเทอร์เน็ตเชื่อมต่อกับอุปกรณ์ต่าง ๆ เช่น โทรศัพท์มือถือ รถยนต์ โทรทัศน์ ตู้เย็น เข้ากับอินเทอร์เน็ตทำให้สามารถเชื่อมโยงสื่อสารกับอุปกรณ์ต่าง ๆ ได้ โดยผ่านเครือข่ายอินเทอร์เน็ต ซึ่งจะทำให้มนุษย์สามารถ ควบคุมอุปกรณ์ต่าง ๆ จากที่อื่นได้ เช่นการสั่งปิดเปิดไฟในบ้านจากที่อื่น ๆ
ก่อนที่จะใช้งานได้ เราจำเป็นต้องมารู้ศัพท์ที่ใช้ และหลักการใช้งานกันก่อนครับ ก่อนอื่นเลย Username Password ที่ใช้ล็อกอินเข้าใช้งานโปรโตคอลจะมีอยู่ด้วยกัน 2 ระดับ คือ ระดับหัวหน้า และระดับผู้ดูแลห้อง (เป็นชื่อระดับที่ผมตั้งขึ้นเองเพื่อให้เข้าใจได้ง่าย) ข้อแตกต่างของ 2 ระดับนี้คือ

  • ระดับหัวหน้า

    เปรียบได้กับผู้บริหาร หรือเจ้าของบริษัท มีสิทธิ์ที่จะฟัง และประกาศ ไปยังห้อง (Topic) ไหนก็ได้ที่มีการสร้างขึ้น ซึ่ง Username Password จะถูกกำหนดมาแล้ว หลังจากสมัครสมาชิกในระบบของ CloudMQTT จะมีประกาศในหน้าแรก
  • ระดับผู้ดูแลห้อง

    ระดับนี้มีสิทธิ์ที่จะฟังอย่างเดียว ประกาศอย่างเดียว หรือทั้งฟังและประกาศ ได้ในห้อง (Topic) ที่กำหนดไว้แล้วเท่านั้น ซึ่ง Username Password สามารถกำหนดได้เองโดยการสร้าง

รูปแบบการเชื่อมต่อ

จะแบ่งเป็น 2 ฝั่ง คือฝั่งเซิร์ฟเวอร์มักจะเรียกว่า MQTT Broker ส่วนฝั่งผู้ใช้งานจะเรียกว่า MQTT Client ในการใช้งานด้าน IoT จะเกี่ยวข้องกับ MQTT Client เป็นหลัก โดยจะมี MQTT Broker ทั้งแบบฟรี และเสียเงินไว้รองรับอยู่แล้ว ทำให้การสื่อสารข้อมูลผ่าน MQTT จะใช้เซิร์ฟเวอร์ฟรี หรือ MQTT Broker ฟรี เหล่านั้นเป็นตัวกลาง

ลักษณะการใช้งาน MQTT อาจะเปรียบเสมือนได้กับการใช้งานห้องแชท Line สำหรับอุปกรณ์ โดยอุปกรณ์แต่ละตัวจะมีชื่อเป็นของตนเอง มี Username Password เป็นของตัวเอง และอาจจะมีห้องลับเฉพาะของตนเอง

publish/subscribe

publish(ผู้ส่ง)

 Publisher จะทำหน้าที่คอยส่งข้อมูลไปยังหัวข้อนั้น ๆ

subscribe(ผู้รับ)

 Subscriber ทำหน้าที่คอยดูการเปลี่ยนแปลงของ message ที่อ้างอิงด้วย Topic เช่นถ้ามีหัวข้อหน้าสนใจและมีการเปลี่ยนแปลงก็จะทากรดึงข้อมูลนั้น ๆ มาใช้งาน Topic
  • topic คือ คำนี้ผมจะขอใช้ว่าเป็น "ชื่อห้อง" น่าจะเข้าใจได้ง่ายกว่า ก่อนที่เราจะส่งข้อมูล หรือรอฟังข้อมูล เราจะต้องทราบชื่อห้องซะก่อนครับ เปรียบเสมือนว่าหากเราต้องการจะคุยกับกลุ่มไหน เราจำเป็นที่จะต้องรู้ชื่อกลุ่มซะก่อน ในทาง MQTT จะเรียกชื่อห้องว่า Topic ซึ่งสามารถกำหนดเป็นอะไรก็ได้ แต่โดยส่วนใหญ่จะกำหนดในลักษณะคล้าย Path เช่น /ESP/LED /ESP/TEMP และอื่นๆ การตั้ง ควรเป็นชื่อที่สื่อความหมาย และเข้าใจได้ง่ายด้วยครับ

ความต่างระหว่าง MQTT กับ HTTP

Mqtt จะรับส่งหรือเชื่อมในระบบของบอดร์ แต่ http เป็น โปรโตรคอล ที่ใช้งานสำหรับเผยแพร่ข้อมูล และ เป็นสื่อการสำหรับการสือสาร ในรูปแบบที่เป็นลิงค์ หรือ Text

อ้างอิง

  1. https://medium.com/@tanakornpiamsin/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-mqtt-server-d31bcae85d0d
  2. https://blog.sogoodweb.com/Article/Detail/59554
  3. ioxhop
  4. https://saixiii.com/http-https/
ดึงข้อมูลจาก "https://wiki.morange.co.th/index.php?title=MQTT&oldid=1105"