บทความ บอร์ดทดลอง ESP8266

ตอนที่ 3 ติดตั้ง MQTT Broker บน Server ด้วย Raspberry Pi

 

- โดย Tumrobot

MQTT คืออะไร

MQTT ย่อมาจาก Message Queuing Telemetry Transport เป็นโปรโตคอล machine-to-machine (M2M) ใช้ในงาน IOT ( Internet of Things ) ออกแบบมาให้มีขนาด package ที่มีขนาดเล็กมาก ให้ทำการ publish ( ส่งข้อมูล ) และ Subscribe ( ติดตามข้อมูล ) ไปยังตัว Server ที่เรียกกันว่า MQTT Broker ซึ่งตัว Server จะทำหน้าที่จัดคิว ของข้อมูลต่างๆ ให้มีประสิทธิภาพสูงสุด

ข้อมูลเพิ่มเติมเข้าไปดูได้ที่ http://mqtt.org/

สาเหตุที่เราเลือกใช้ Mosquitto MQTT และทำ Server เองนั้นก็เนื่องจากว่า จริงๆแล้วมีการให้บริการ MQTT Server ฟรีอย่างมากมายในปัจจุบันทั้งในรูปแบบฟรีและ ไม่ฟรี ซึ่งปัญหาที่ตามมา ก็คือ บาง Server มีที่ตั้งของ Server อยู่ไกลมากอีกฟากนึงของโลก การทำการ Publish ข้อมูล และ Subscrite นั้นทำให้เกิดการ Delay เกิดขึ้น และ อีกสาเหตุ ก็คือ บางผู้ให้บริการ จะมีการจำกัด จำนวน Client จำกัดจำนวนการส่งข้อมูล หรือไม่ก็จำกัด การใช้งาน Application ซึ่งจะทำให้เราขยายและต่อยอด ออกไปในอนาคตไม่ได้

ส่วนสาเหตุที่เลือก ตัว Raspberry Pi เป็น Server ก็เนื่องมาจากว่า ตัว MQTT Broker นั้นทำหน้าทีคอยจัดการ messege ที่มีขนาดเล็กดังนั้นตัว Raspberry Pi จึงสามารถเชื่อมต่ออุปกรณ์ Client ได้เป็น พันๆ Client ซึ่งนับว่าค่อนข้างเยอะเลยทีเดียว ซึ่งถ้าเทียบกับการที่เราเอามาทดลองและเอามาใช้งานเองนั้น ก็ถือว่าเพียงพอต่อความต้องการของเราแล้ว

   

 

การเตรียม MQTT Server

สิ่งที่จำเป็นต้องใช้ คือ

1. Board Raspberry Pi ราคา ประมาณ 1590 - 1890 บาท

2. USB SD Cardreader ราคา ประมาณ 50 - 180 บาท

3. โปรแกรม Advance IP Scanner

4. โปรแกรม Win32 Disk Imager

5. โปรแกรม Putty

6. MQTTLens ( ใน Extension ใน Chrome )

 

 

ก่อนอื่นต้องทำการ Load image ของตัว Raspberry Pi จากเวป https://www.raspberrypi.org

หรือ 2015-02-16-raspbian-wheezy.zip

จากนั้นก็ใช้ โปรแกรม Win32 Disk Imager ติดตั้ง Image เข้ากับ SD Card ผ่านทาง USB SD Card Reader

   
   

เมื่อติดตั้ง Image เสร็จเรียบร้อยแล้ว หลังจากใส่ SD Card ต่อสายแลน ให้กับตัว Raspberry Pi และจ่ายไฟให้ตัว Raspbery Pi แล้วจากนั้น ก็รอจนกว่า LED แสดงผลจะติดทั้งหมดแล้วก็ใช้โปรแกรม Advance IP Scanner ลอง Scan ดูว่า ตัว Raspberry Pi ของเรานั้นเป็น IP อะไรที่อยู่ในระบบ

   

ซึ่งตัวอย่างในบทความนี้ก็จะเจอ IP ของ Raspberry Pi เป็น IP 192.168.1.162

ทำการเปิดโปรแกรม Putty แล้ว Connect ไปยังตัว Raspberry Pi ด้วย IP ตัวนี้

   

เราก็จะสามารถ เข้าไปจัดการตัว Raspberry Pi ของเราด้วย Command Line ได้

โดยการ Login User: pi และ Password: raspberry

   

จากนั้นให้ทำตามขั้นตอนในคลิปต่อไปนี้

   

ตัว Command Line ที่ใช้สำหรับติดตั้ง Server มีดังต่อไปนี้

sudo apt-get upgrade


curl -O http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key


sudo apt-key add mosquitto-repo.gpg.key


rm mosquitto-repo.gpg.key


cd /etc/apt/sources.list.d/


sudo curl -O http://repo.mosquitto.org/debian/mosquitto-wheezy.list


sudo apt-get update


sudo apt-get install mosquitto mosquitto-clients

 

ส่วน Command Line สำหรับ MQTT

mosquitto_sub -d -t relay1


mosquitto_pub -d -t relay1 -m 1