2021年5月4日火曜日

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piと超音波距離センサモジュールで距離データを送受信する

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、Grove Base HAT for Raspberry Piと超音波距離センサモジュールで距離データを送受信するには、以下の手順を実行します。

実装手順

1. grove.pyとpaho-mqttモジュールをインストール
以下のコマンドでgrove.pyとpaho-mqttモジュールをインストールします。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -

pip3 install paho-mqtt

2. paho MQTTでメッセージを受信するプログラムを作成する
以下のプログラムで受け取った明るさのデータを表示します。

mosquitto_sub_grove_ultrasonic_ranger.py
import paho.mqtt.client as mqtt

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}".format(msg.topic))
    print(str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_grove_ultrasonic_ranger.py

3. 距離データの送信
以下のプログラムで距離データを送信します。

mosquitto_pub_grove_ultrasonic_ranger.py
import paho.mqtt.publish as publish
from grove.grove_ultrasonic_ranger import GroveUltrasonicRanger
import time

PIN_D5 = 5
sensor = GroveUltrasonicRanger(PIN_D5)

def read_grove_ultrasonic_ranger():
  return sensor.get_distance()

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

val = read_grove_ultrasonic_ranger()
publish.single(topic, "read_grove_ultrasonic_ranger:{}".format(val), hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_grove_ultrasonic_ranger.py

関連情報

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離を取得する

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離を返すREST APIを作成する

Raspberry Pi ZeroとGrove Base HAT for Raspberry Piと超音波距離センサモジュールで距離をPostgreSQLに保存する

Groveデバイスまとめ

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

0 件のコメント:

コメントを投稿