สร้าง MQTT Broker ด้วย CloudMQTT แบบฟรีๆ ไม่เขียนโค้ดสักตัว
MQTT คือ Protocol ที่โครตฮิตในปัจจุบันแต่ทุกๆวันก็จะมีคนถามว่า “สร้าง MQTT Broker ยังไง ?”
MQTT คืออะไร?
Message Queuing Telemetry Transport (MQTT) เป็น Protocol ที่ออกแบบมาเพื่อการเชื่อมต่อแบบ M2M (machine-to-machine) คือ อุปกรณ์ติดต่อหรือสื่อสารกับอุปกรณ์ โดยเป็นส่วนหนึ่งของเทคโนโลยี IoT (Internet of Things) ซึ่งเป็นเทคโนโลยีที่อินเทอร์เน็ตเชื่อมต่อกับอุปกรณ์ต่าง ๆ เช่น โทรศัพท์มือถือ รถยนต์ โทรทัศน์ ตู้เย็น เข้ากับอินเทอร์เน็ตทำให้สามารถเชื่อมโยงสื่อสารกับอุปกรณ์ต่าง ๆ ได้ โดยผ่านเครือข่ายอินเทอร์เน็ต ซึ่งจะทำให้มนุษย์สามารถ ควบคุมอุปกรณ์ต่าง ๆ จากที่อื่นได้ เช่นการสั่งปิดเปิดไฟในบ้านจากที่อื่น ๆ
ซึ่ง MQTT เป็นชื่อเรียกสำหรับโปรโตคอลนี้เท่านั้น โดยหลักการทำงานของ MQTT จริง ๆนั้นมีส่วนประกอบ 3 อย่างคือ ผู้ส่ง (publish) , ผู้รับ (subscribe) และ ตัวกลาง (MQTT broker) โดยผู้รับหรือผู้ส่งจะใช้อุปกรณ์ชนิดไหนก็ได้ ขอเพียงมีแอพพลิเคชั่นหรือโปรแกรมที่รองรับโปรโตคอล MQTT ก็เพียงพอแล้ว
มีเทคโนโลยีอะไรบ้างที่เราคุ้นเคยและใช้ MQTT ?
แอพ Messenger ของ Facebook ในเวอร์ชั่นปี 2016–17 ก็ได้มีการนำเอา MQTT มาประยุกต์ใช้กับแอพพลิเคชั่นตัวเองนั้นเอง
องค์ประกอบของ MQTT
1. ผู้ส่ง (publish) มีหน้าที่ในการส่งข้อมูล/ข้อความไปยังตัวกลาง (MQTT Broker) โดยสิ่งที่ส่งจะประกอบด้วย หัวข้อ (Topic) และข้อความ (Message)
2. ผู้รับ (subscribe) มีหน้าที่คือจะต้องเชื่อมต่อกับตัวกลาง และติดตาม topic ให้ตรงกับผู้ส่ง โดยเมื่อตรงกันเรียบร้อย เมื่อผู้ส่ง ส่งข้อความมาผู้รับก็จะสามารถรับข้อความนั้นได้ หากมีอย่างใดอย่างหนึ่งที่ไม่ตรงกันก็จะไม่สามารถรับข้อความได้นั้นเอง
3. ตัวกลาง (MQTT Broker) มีหน้าที่รับข้อความจากผู้ส่งและกระจาย (Broadcast) ให้กับผู้ติดตามที่มี topic ตรงกับผู้ส่งเท่านั้น
MQTT BROKER
ในการใช้งาน Protocol MQTT นั้นจะต้องมี MQTT Broker เสียก่อน โดยตัว Broker นั้นสามารถหามาใช้งานได้อยู่ 3 วิธีด้วยกันคือ
1. เช่า Broker ของผู้ให้บริการ โดยจะมีค่าใช้จ่ายและมีข้อจำกัดแล้วแต่ผู้ให้บริการ บางรายก็มีให้ทดลองฟรีเช่นกัน
2. สร้าง Broker ขึ้นมาด้วยตนเอง โดยการเช่าเซิร์ฟเวอร์และทำการติดตั้งโปรแกรม MQTT Broker ด้วยตนเอง วิธีนี้เป็นที่นิยมแต่จะต้องมีเซิร์ฟเวอร์เป็นของตัวเองและจะต้องวางระบบรักษาความปลอดภัยด้วยตนเอง
3. ใช้งาน Broker ฟรีที่ทาง MQTT มีไว้ให้ แต่ข้อเสียคือเป็น Broker สาธารณะทุกคนสามารถดูข้อมูลที่เราส่งได้
เริ่ม !
โดยในครั้งนี้จะเป็นการเช่า Broker จากผู้ให้บริการโดยเลือกเป็นแบบฟรี โดยมีข้อจำกัดคือสามารถ เชื่อมต่อได้แค่ 5 อุปกรณ์พร้อมกันและถูกจำกัดความเร็วในการรับส่งนั้นเอง เริ่มต้นให้เข้าไปที่เว็บไซต์ https://www.cloudmqtt.com/
เลื่อนลงมาข้างล่างคลิกที่ Get a managed IoT broker today
จากนั้นให้เลื่อนลงมาข้างล่างแล้วเลือก Cute Cat (ฟรี ไม่เสียค่าใช้จ่าย)
จากนั้นก็จะขึ้นหน้าให้ล็อคอิน หากใครต้องการผูกไอดีไว้กับ google หรือ github ก็สามารถทำได้ที่หน้านี้เลย หากใครไม่มี ID ทั้ง 2 อย่างนี้ให้คลิกที่ Sign Up แล้วสมัครสมาชิกให้เรียบร้อย
โดยให้ทำการกรอกข้อมูลลงไปทั้งหมด 2 ช่องคือ ชื่อของ Broker ของเราและ Tags เพื่อบ่งบอกว่า Broker ของเราจะใช้กับงานประเภทอะไร (ไม่ส่งผลกระทบใดๆต่องาน) จากนั้นให้กดปุ่มสีเขียว (Select Region) ที่ด้านล่างมุมขวา
เป็นหน้าต่างเลือกที่ตำแหน่งที่ตั้งของ Broker ในหน้านี้ให้กด Review ได้เลยเพราะไม่มี Broker อยู่ในโซนเอเชีย จึงไม่จำเป็นต้องเลือก
จากนั้นจะปรากฏหน้าต่างให้เราตรวจดูอีกครั้งว่าข้อมูลต่างๆถูกต้องหรือไม่ หากถูกต้องให้กด Create Instance ได้เลยหากไม่ให้กด Back เพื่อกลับไปแก้ไขอีกครั้ง
เมื่อทำการสร้างสำเร็จ Broker ก็จะปรากฏขึ้นบนหน้าเว็บของเรา โดยให้เราคลิกที่ Broker ที่เราพึ่งทำการสร้างเมื่อสักครู่เพื่อเริ่มต้นใช้งาน
โดยจะปรากฏข้อมูลต่างๆของ Broker ของเรานั้นเอง
โดยหน้าหลักๆที่เราจะใช้มีอยู่ด้วยกัน 3 หน้าคือ
1.Details จะเป็นส่วนที่บอกถึงข้อมูลของ Broker ของเราซึ่งจะมี username และ password ในการเข้าใช้งาน Broker เพื่อความปลอดภัยของเราด้วย โดย Port ที่จะใช้งานทั่วๆไปคือ Port และ SSL Port
2. Websocket UI เป็นส่วนของการดูว่ามีข้อมูล (Message) และหัวข้อ (Topic) ใดบ้างที่กำหนดรับ-ส่งอยู่บน Broker ของเราและเรายังสามารถส่งข้อความจากบนเว็บไปยัง Broker ได้อีกด้วย
3. Connections คือ ส่วนของเช็คว่ามีอุปกรณ์อะไรกำลังเชื่อมต่อกับ Broker ของเราเพราะแบบฟรีมันจำกัดแค่ 5 อุปกรณ์ ถ้าเกินกว่านี้อุปกรณ์ที่เข้ามาทีหลังจะเข้าไม่ได้
ทีนี้ MQTT Broker ของเราก็พร้อมใช้งานแล้วเราสามารถเอาไปใช้งานกับ
Node-RED
UI FLOW
หรือจะเป็น tool อื่นๆก็ได้เพียงแค่จะต้องระบุ Username และ Password เข้าไปด้วยซึ่งทั้ง 2 ที่ได้กล่าวมาก็รองรับด้วย จะทำให้ mqtt ของเรามีความปลอดภัยมากยิ่งขึ้นนั้นเอง