เกริ่นนำสักนิดหนึ่ง ตั้งแต่ การเข้ามาของ IOT หรือ Internet of Things ที่กำลังอินเทรนกันอยู่ตอนนนี้ ก็ได้มีความพยายามที่จะหา Protocol ที่เหมาะสำหรับการสื่อสารผ่าน network กับอุปกรณ์พวกไมโครคอนโทรลเลอร์ ก็เลยมีการพัฒนาโปรโตคอลขึ้นมา เพื่อให้เหมาะกับอุปกรณ์เล็กๆ ที่ไม่ต้องการ Header ที่มากไปในการสื่อสารทางเนตเวิร์ก เจ้าโปรโตคอลที่ว่าก็คือ MQTT หรือ MQ Telemetry Transport ไม่รู้ว่าแปลว่าไรเหมือนกัน เอาเป็นว่า ผมอธิบายแบบบ้านๆ เลยหล่ะกัน
ในการสื่อสารแบบ MQTT นี้ จะต้องมี MQTT Broker ที่ทำหน้าที่รับข้อความโดยมีหัวข้อ Topic จากผู้ส่ง/จำหน่าย จ่ายแจก หรือ publisher แล้วกระจายส่ิงที่ได้รับมานั้นไปให้ subscriber ที่ได้ทำการลงทะเบียนหัวข้อ Topic นั้นแหละ บอกกับ Broker ไว้แล้ว ว่า ถ้า publisher คน/ตัว ใด ส่ง topic นี้มา ให้เอามาให้ฉัน (subscriber)
อ่านเพิ่มเติม เรื่อง MQTT Protocol ที่รวบรวมไว้ครับ
ตรงส่วน Broker นี้แหละ ที่เราจะเอา Raspberry pi มาทำเป็น MQTT Broker ในที่นี้ ผมใช้ RPi2 ที่ติดตั้ง Raspbian Wheezy
การติดตั้ง MQTT Broker บน RPi
- ทำการ อัพเกรดต่างๆ ก่อน นานหน่อยสำหรับคนที่ไม่ค่อยได้อัพเกรดบ่อย
sudo apt-get upgrade
- แล้วก็รันคำสั่งตามนี้เลยครับ ทีละบรรทัด นะ ใจเย็นๆ ดู Error ด้วย ถ้ามันมี
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
บน Rpi เราจะมีทั้ง Mosquitto ที่เอาไว้จัดการ MQTT protocol โดยจะทำให้ Rpi เรากลายเป็น MQTT broker และนอกจากนั้น เราได้ติดตั้ง mosquitto-clients ซึ่งจะทำให้เราสามารถสั่งให้ Rpi เราเป็นได้ทั้ง subscriber และ publisher ได้อีกด้วย
อันนี้ เป็นคลิปวีดีโอทดสอบของผม ผมลองกับเจ้า ESP8266 และโปรแกรมต่างๆ บน PC โดยทำการ subscribe หัวข้อ topic ที่ชื่อ hello/world ที่ถูกส่ง publish มาจาก ESP8266 โดยที่ RPi ทำหน้า MQTT Broker จัดการรับส่งข้อความทาง MQTT Protocol นั่นเอง
Youtube : www.youtube.com/watch?v=RvNBlkpGZwU
เรื่องราวมันค่อนข้างยาวนิดนึง เดี๋ยวไว้หาเวลาว่างๆ มาเล่าต่อ แล้วกัน หรือไม่ก็อ่านจากลิ้งค์ที่แปะไว้ด้านล่างนี้แล้วกันครับ
อ้างอิง :
http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi/
http://www.penninkhof.com/2015/05/linking-the-esp8266-a-raspberry-pi-through-mqtt/
อ่านเพิ่มเติม...