MQTT with Pimoroni blinkt on RPi

投稿日:

RPi で MQTTをやってみる。
ソフトウェアは、mosquitto を利用する。

Broker ... いわゆる中継サーバ。RPi3。
Publisher ... 送信者。Mac。
Subscriber ... 受信者。RPi Zero W。

setup

Broker のsetup(RPi3)

RPi3 に mosquitto をsetup。

$ sudo apt-get install mosquitto

install 完了時点で、broker は起動済み。

$ ps aux | grep mos
mosquit+  3551  0.0  0.4   8228  4624 ?        S    21:55   0:00 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Subscriver のsetup(RPi Zero W)

PRi Zero W に blinkt を載せているので、それを利用する。

https://shop.pimoroni.com/products/blinkt

blinkt は、Full Color RGB LEDを8個扱えるので、いろいろ便利。
pimoroni の blinkt 用sample プログラム mqtt.py をちょっと改造して利用する。
MQTT_SERVERを、RPi3 のip アドレスかhostnameに変更しておく。


./Pimoroni/blinkt/examples/mqtt.py

MQTT_SERVER = "rpi3.local"

blinkt が無くても、mosquitto の subscriver 機能を利用すればOK。

blinkt の起動前に、python の MQTT lib をinstall

$ sudo pip install paho-mqtt

Publisher のsetup(mac)

$ brew install mosquitto-clients

もし、/usr/local/sbin がないと下記のエラーとなる。

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink sbin/mosquitto
/usr/local/sbin is not writable.
 
You can try again using:
  brew link mosquitto

自分で/usr/local/sbin を作成してから、再度 brew install する。

$ sudo mkdir /usr/local/sbin
$ sudo chown $USER /usr/local/sbin

MQTTの実行

publisher(mac)

$ mosquitto_pub -h rpi3.local  -t pimoroni/blinkt -m "rgb,1,0,5,5"

subscriber(RPi Zero W)

blinkt なし版

$ mosquitto_sub -t pimoroni/blinkt -h rpi3.local
rgb,1,0,5,5

blinkt あり版

$ python ./Pimoroni/blinkt/examples/mqtt.py