close

R是我最常用的程式語言然而並沒有MQTT的相關套件可以使用 所以使用reticulate調用Python的paho-mqtt套件 來達成一些R語言做不到的東西 首先先安裝paho-mqtt的套件資料

pip3 install paho-mqtt 在Rstudio中可以直接調用Terminal編輯器 執行Python的標準庫管理器(pip3)安裝套件超方便

安裝與載入reticulate套件 這套件可以很簡單調用Python相關資源 包括在Rmackdown中就是使用reticulate套件執行python程式區的程式碼

install.packages("reticulate")
library(reticulate)

載入python paho-mqtt套件

mqtt <- import("paho.mqtt.subscribe")

等於python的

from paho.mqtt import subscribe as mqtt

調用套件函數訂閱MQTT

使用paho.mqtt.subscribe套件提供的simple函數訂閱MQTT的 Topic

AHB0222 <- mqtt$simple("AHB0222/test", hostname="mqtt.eclipseprojects.io")

等於python的

AHB0222 = mqtt.simple("AHB0222/test", hostname="mqtt.eclipseprojects.io")

執行訂閱後會處於執行狀態直到有訊息進來

輸出訂閱的數據

推送一筆數據後可以看到不在處於執行狀態

這時就可以輸出剛剛接收到的訊息了

print(AHB0222$payload)

等於python的

print(AHB0222.payload)

調用套件函數傳遞訊息

mqtt2 <- import("paho.mqtt.publish")
mqtt2$single("AHB0222/test", payload=1234, hostname="mqtt.eclipseprojects.io")

等於python 的

from paho.mqtt import publish as mqtt2
mqtt2$single("AHB0222/test", payload=1234, hostname="mqtt.eclipseprojects.io")

參考資料

https://rstudio.github.io/reticulate/ https://github.com/eclipse/paho.mqtt.python

🌟全文可以至下方連結觀看或是補充

全文分享至

https://www.facebook.com/LHB0222/

https://www.instagram.com/ahb0222/

有疑問想討論的都歡迎於下方留言

喜歡的幫我分享給所有的朋友 \o/

有所錯誤歡迎指教

:page_with_curl: 全部文章列表

arrow
arrow
    文章標籤
    python R MQTT
    全站熱搜

    阿好伯 發表在 痞客邦 留言(0) 人氣()