0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用MQTT連接樹莓派IoT設備

454398 ? 來源:工程師吳畏 ? 2019-08-02 09:15 ? 次閱讀

什么是MQTT?

MQTT(消息隊列遙測傳輸)是一種輕量級消息傳遞協(xié)議,非常適合物聯(lián)網(wǎng)連接設備的通信。

MQTT有三個組件:代理,發(fā)布者和訂閱者。一個受歡迎的在線經(jīng)紀人是Mosquitto。代理是一個中間實體,負責處理設備之間的通信。發(fā)布者是發(fā)送消息的設備。訂閱者監(jiān)聽發(fā)布者發(fā)送的消息。

MQTT中還有一個重要的事情,那就是主題。不同設備之間的通信需要一個主題。例如,設備A想要向設備B發(fā)送消息。為此,兩者之間應該存在共同點,這就是主題。可以把它想象成一個電話號碼。

CloudMQTT

CloudMQTT是一種提供免費MQTT通信的代理服務對于一定數(shù)量的設備。

設置MQTT

創(chuàng)建帳戶

轉(zhuǎn)到右上角的控制面板

點擊“創(chuàng)建”按鈕

在“名稱”字段中輸入CMQTT

開同一頁面,在管理用戶中添加用戶:

名稱:pi

密碼:pi

點擊“保存”

再次在同一頁面上,添加:

用戶:pi

主題:pi

點擊“保存”

現(xiàn)在,在頂部欄中,點擊“WebSocket UI”

您將看到一個頁面所有傳感器數(shù)據(jù)將顯示在哪里

將下面的代碼上傳到Arduino

下面的代碼是一個帶有虛擬字符串的示例代碼傳感器的位置。您可以使用來自傳感器的值替換字符串。

String sensorsData=“”;

String randSensorsData=“”;

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

pinMode(A0,INPUT);//temperature sensor

pinMode(A1,INPUT);//windspeed sensor

pinMode(A2,INPUT);//wind direction sensor

pinMode(A3,INPUT);//rain fall sensor

pinMode(A4,INPUT);///barometric pressure sensor

}

void loop() {

// put your main code here, to run repeatedly:

sensorsData=String(“-”)+String(“S1=”)+String(analogRead(A0))+String(“,”)+String(“S2=”)+String(analogRead(A1))+String(“,”)+String(“S3=”)+String(analogRead(A2))+String(“,”)+String(“S4=”)+String(analogRead(A3))+String(“,”)+String(“S5=”)+String(analogRead(A4))+String(“+”);

randSensorsData=String(“-”)+String(“S1=”)+String(random(100))+String(“,”)+String(“S2=”)+String(random(200))+String(“,”)+String(“S3=”)+String(random(125))+String(“,”)+String(“S4=”)+String(random(500))+String(“,”)+String(“S5=”)+String(random(50))+String(“+”);

Serial.println(sensorsData);

Serial.println(randSensorsData);

delay(200);

}

此代碼使用Arduino的模擬引腳從傳感器獲取值,并傳遞給Raspberry Pi進行處理和MQTT通信。上面的代碼使用隨機函數(shù)生成隨機值來模擬模擬引腳。

傳感器應連接到A0,A1,A2,A3,A4引腳

Serial.println(randSensorsData);

此行發(fā)送隨機數(shù)據(jù)以檢查服務器

您還可以檢查WebSocket中顯示的隨機數(shù)據(jù)UI

打開python 2.7并在其中編寫以下代碼:

import paho.mqtt.client as mqtt

import time

data=”Hello from Raspberry Pi!”

while True:

print(data)

try:

client=mqtt.Client()

client.username_pw_set(“hgztvlwh”,“qDz_-oAWSfBR”)#replace with your user name and password

client.connect(“m13.cloudmqtt.com”,13017,60)

client.publish(“pi”,data)#pi is topic

time.sleep(1)

except KeyboardInterrupt:

print(“end”)

client.disconnect()

現(xiàn)在使用python 2.7運行代碼

您會看到傳感器數(shù)據(jù)每秒都會在CloudMQTT的WebScoket UI中顯示。

在這里,您將看到從Raspberry Pi發(fā)送的數(shù)據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    186

    文章

    4162

    瀏覽量

    195988
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1696

    瀏覽量

    105456
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    647

    瀏覽量

    22392
收藏 人收藏

    評論

    相關(guān)推薦

    樹莓與Arduino的區(qū)別是什么

    Pi): 樹莓最初是作為教育工具設計的,旨在幫助學生學習計算機編程和電子工程。隨著時間的推移,它已經(jīng)發(fā)展成為一個多功能的微型計算機,可以用于各種項目,包括但不限于: 家庭媒體中心 游戲機 網(wǎng)絡服務器 IoT(物聯(lián)網(wǎng))
    的頭像 發(fā)表于 11-11 11:14 ?119次閱讀

    樹莓gpio有什么,樹莓gpio接口及編程方法

    一、樹莓GPIO的用途 樹莓(Raspberry Pi)是一款小巧、功能強大的單板計算機,廣泛應用于編程教育、物聯(lián)網(wǎng)項目、家庭媒體中心等領(lǐng)域。GPIO(General Purpos
    的頭像 發(fā)表于 10-22 18:09 ?347次閱讀

    什么是樹莓?樹莓是什么架構(gòu)的

    什么是樹莓 樹莓(Raspberry Pi,簡寫為RPi,別名為RasPi/RPI)是由英國“Raspberry Pi 慈善基金會”開發(fā)的一款為學習計算機編程教育而設計的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?317次閱讀

    樹莓網(wǎng)關(guān):物聯(lián)網(wǎng)應用的新標桿

    的特點是體積小巧(大約信用卡大?。?,但功能齊全,足以支持多種計算任務。 樹莓經(jīng)常被用作物聯(lián)網(wǎng)網(wǎng)關(guān),收集設備數(shù)據(jù),然后將數(shù)據(jù)上傳云平臺,并還可以用來接收來自云端的控制指令,控制其他連接
    的頭像 發(fā)表于 10-09 16:44 ?203次閱讀
    類<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>網(wǎng)關(guān):物聯(lián)網(wǎng)應用的新標桿

    樹莓和單片機的優(yōu)缺點是什么

    )接口,樹莓可以連接各種傳感器、執(zhí)行器和其他外圍設備。 易于編程 :樹莓支持多種編程語言,如
    的頭像 發(fā)表于 08-30 18:21 ?1388次閱讀

    樹莓的功能用途是什么

    樹莓(Raspberry Pi)是一款由英國樹莓基金會研發(fā)的信用卡大小的單板計算機,自2012年推出以來,已經(jīng)發(fā)展出多個型號和版本。樹莓
    的頭像 發(fā)表于 08-30 18:01 ?2050次閱讀

    樹莓4b支持多大的sd卡

    樹莓4B是一款非常受歡迎的微型計算機,它具有強大的性能和豐富的擴展功能。在樹莓4B的使用過程中,SD卡是一個非常重要的組件,因為它是樹莓
    的頭像 發(fā)表于 08-30 17:02 ?795次閱讀

    樹莓gui開發(fā)什么ide

    樹莓(Raspberry Pi)是一款功能強大的微型計算機,可以運行多種操作系統(tǒng),如Raspbian、Ubuntu等。在樹莓派上進行GUI(圖形用戶界面)開發(fā),可以使用多種集成開發(fā)環(huán)境(IDE
    的頭像 發(fā)表于 08-30 16:49 ?602次閱讀

    樹莓裝ubuntu和raspbian哪個更好

    樹莓(Raspberry Pi)是一款由英國樹莓基金會開發(fā)的單板計算機,廣泛應用于教育、科研、物聯(lián)網(wǎng)等領(lǐng)域。樹莓
    的頭像 發(fā)表于 08-30 15:41 ?961次閱讀

    樹莓5,Raspberry Pi 5 評測

    了Raspberry Pi Zero的15針接線器,而不是原先的22針接線器。還要注意的是,現(xiàn)在有兩個相鄰的接頭,我們現(xiàn)在可以連接兩個攝像頭、兩個DSI顯示器或者混合連接。 樹莓
    發(fā)表于 06-19 14:51

    Waveshare推出樹莓紅外熱像儀,可智能檢測報警和過熱問題

    Waveshare近日推出針對樹莓的紅外線熱像儀。此設備能借助GPIO接口與樹莓派對接,拓展其功能領(lǐng)域。除正常的樹莓
    的頭像 發(fā)表于 05-20 14:45 ?585次閱讀

    【米爾-瑞米兼容樹莓擴展模塊-試用體驗】視頻來了解這塊生態(tài)板_米爾-瑞米兼容樹莓擴展模塊

    今天為大家展示一下初始開發(fā)板_米爾-瑞米兼容樹莓擴展模塊, 米爾-瑞米兼容樹莓擴展模塊介
    發(fā)表于 04-29 11:51

    樹莓主板如何連接電腦

    連接樹莓派到電腦是一個非常有用的功能,它可以讓我們在電腦上進行樹莓的操作和管理。本文將詳細介紹如何連接
    的頭像 發(fā)表于 01-07 15:40 ?1723次閱讀

    宏集方案 | 如何用工業(yè)樹莓MQTT平臺打通OT和IT?

    如何用工業(yè)樹莓MQTT平臺打通OT和IT?
    的頭像 發(fā)表于 01-05 11:01 ?344次閱讀
    宏集方案 | 如何用工業(yè)<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>和<b class='flag-5'>MQTT</b>平臺打通OT和IT?

    怎樣用ADAU1761設計DRC的壓縮/擴展?

    請問怎樣用ADAU1761設計DRC的壓縮/擴展。我在SigmaStudio 4.5的模塊中只找到RMS。如果ADAU1761設計DRC要怎樣
    發(fā)表于 11-28 06:41