Sunday, November 29

How to install Mosquitto MQTT Broker on RPi2

     เกริ่นนำสักนิดหนึ่ง ตั้งแต่ การเข้ามาของ IOT หรือ Internet of Things ที่กำลังอินเทรนกันอยู่ตอนนนี้ ก็ได้มีความพยายามที่จะหา Protocol ที่เหมาะสำหรับการสื่อสารผ่าน network กับอุปกรณ์พวกไมโครคอนโทรลเลอร์ ก็เลยมีการพัฒนาโปรโตคอลขึ้นมา เพื่อให้เหมาะกับอุปกรณ์เล็กๆ ที่ไม่ต้องการ Header ที่มากไปในการสื่อสารทางเนตเวิร์ก เจ้าโปรโตคอลที่ว่าก็คือ MQTT หรือ MQ Telemetry Transport ไม่รู้ว่าแปลว่าไรเหมือนกัน เอาเป็นว่า ผมอธิบายแบบบ้านๆ เลยหล่ะกัน

image

ในการสื่อสารแบบ 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 นั่นเอง

Raspberry pi MQTT_Broker

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/

อ่านเพิ่มเติม...

Thursday, November 5

Timezone and NTP server Thailand

เราสามารถตั้งค่า Timezone ให้ Raspberry pi ของเราให้เป็น Timezone สำหรับประเทศไทยได้ ด้วยการแก้ไข config

sudo raspi-config

raspi-config timezone

เลือก Internationalisation Options แล้วเลือก  Change Timezone 

raspi-config timezone

จากนั้นเลือก Asia แล้วกด Enter แล้วเลือก Bangkok  Raspberry pi ก็จะปรับเวลาให้ตรงตามเวลาประเทศไทย

เราสามารถที่จะ config ให้ Raspbery pi ไปอัพเดทเวลาจาก NTP server ของประเทศไทยได้ โดยไปแก้ไขที่

sudo nano /etc/ntp.conf

Thailand NTP server list

ทำการ comment ของเก่า แล้วเพิ่มของใหม่เข้าไป ตามภาพ  ซึ่งมีรายชื่อ NTP server  ดังนี้

server 0.th.pool.ntp.org iburst
server 1.th.pool.ntp.org iburst
server 2.th.pool.ntp.org iburst
server 3.th.pool.ntp.org iburst

ทำการบันทึกไฟล์ ntp.conf  แล้วทำการ restart ntp service ด้วยคำสั่ง

sudo /etc/init.d/ntp restart 


และใช้คำสั่งเช็คดูการทำงานของ ntpd service และประสิทธิภาพการ sync เวลากับ NTP server



sudo ntpq -c lpeer  


และใช้คำสั่ง date เช็คเวลาดูอีกที ว่าตรงหรือยัง



เราสามารถเช็คการทำงานของ ntpd ได้ ด้วยการดูที่ syslog ด้วยการใช้คำสั่ง



tail –f /var/log/syslog  หากเห็นข้อความ  host name not found EAI_NODATA: 0.th.pool.ntp.org ให้ทำการเช็คที่ resole.conf



NTP sync issue



sudo nano /etc/resole.conf



config nameserver



แก้ไข nameserver ให้ถูกต้อง ตามรูป  ก็น่าจะโอเค แหละ ให้ restart ntpd service อีกครั้ง  คราวนี้ เวลาของ Raspberry pi ก็จะเดินตรงกับเวลาประเทศไทยแหละ



วันนี้ จบเพียงเท่านี้ ก่อน

อ่านเพิ่มเติม...
 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

About Me

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

Blog อื่นๆของฉัน

Microcontroller Electronics update

สถิติเยี่ยมชมบล๊อก