FOBI

FOBI

การสื่อสารของแต่ละโมดูล

การสื่อสารนั้นเป็นสิ่งสำคัญมาก หากไม่มีการติดต่อสื่อสารกันระหว่างโปรแกรมจะทำให้การทำงานส่วนใดส่วนนึงค่อนข้างจะลำบาก ดังนั้นแล้วจึงจำเป็นต้องมีกรสื่อสารของโปรแกรม เพื่อให้แต่ละโปรแกรมรับ-ส่งข้อมูลกันได้ เพื่อที่จะสามารถทำงานร่วมกันได้ในแต่ละส่วน เช่น โมดุลการมองเห็นของโฟบี้ (Looking Module) ต้องคอยส่งข้อมูล ให้กับส่วนอื่นๆ ว่ามีผู้ใช้งานได้หรือไม่ ถ้าไม่มีก็ส่งข้อมูลไปให้ Servo เพื่อที่จะได้มองหา หรือส่งให้โมดูลการพูดคุย (Talking Module) เพื่อให้ไม่มีการพูดคุยกับผู้ใช้เมื่อไม่เจอผู้ใช้ เป็นต้น
สำหรับการรับ-ส่งข้อมูลของ FOBI จะใช้ MQTT mosquitto ซื่งเป็นการใช้งานรูปแบบของ MQTT Protocol โดยจะใช้ Library ของ ภาษา Python ที่มีชื่อว่า MQTT-PAHO

MQTT Mosquitto

MQTT Mosquitto

sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
sudo apt-get install python3-paho-mqtt

การเขียน Publish

  
import paho.mqtt.client as mqtt

client = mqtt.Client()
client.connect("localhost")
client.publish("fobi/test","Hello FOBI")
#client.disconnect()

ส่งข้อมูลจากการส่งผ่าน Terminal

test

การเขียน Subscribe

import paho.mqtt.client as mqtt

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

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

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

client.connect("localhost", 1883, 60)

client.loop_forever()

รับข้อมูลจาก Terminal

test

MQTT Topic

กำหนด Subscribe และ Publish ของแต่ละโมดูลในการติดต่อสื่อสารกับฮาร์ดแวร์ของแต่ละส่วน

brain
ListeningMotorLEDprinterListeningBEEye