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

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

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

怎樣用MQTT連接樹(shù)莓派IoT設(shè)備

454398 ? 來(lái)源:工程師吳畏 ? 2019-08-02 09:15 ? 次閱讀

什么是MQTT?

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

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

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

CloudMQTT

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

設(shè)置MQTT

創(chuàng)建帳戶

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

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

在“名稱”字段中輸入CMQTT

開(kāi)同一頁(yè)面,在管理用戶中添加用戶:

名稱:pi

密碼:pi

點(diǎn)擊“保存”

再次在同一頁(yè)面上,添加:

用戶:pi

主題:pi

點(diǎn)擊“保存”

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

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

將下面的代碼上傳到Arduino

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

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進(jìn)行處理和MQTT通信。上面的代碼使用隨機(jī)函數(shù)生成隨機(jī)值來(lái)模擬模擬引腳。

傳感器應(yīng)連接到A0,A1,A2,A3,A4引腳

Serial.println(randSensorsData);

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

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

打開(kāi)python 2.7并在其中編寫(xiě)以下代碼:

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運(yùn)行代碼

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

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

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

    關(guān)注

    186

    文章

    4142

    瀏覽量

    195725
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1684

    瀏覽量

    105413
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    642

    瀏覽量

    22370
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓gpio有什么,樹(shù)莓gpio接口及編程方法

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

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

    什么是樹(shù)莓 樹(shù)莓(Raspberry Pi,簡(jiǎn)寫(xiě)為RPi,別名為RasPi/RPI)是由英國(guó)“Raspberry Pi 慈善基金會(huì)”開(kāi)發(fā)的一款為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?159次閱讀

    類(lèi)樹(shù)莓網(wǎng)關(guān):物聯(lián)網(wǎng)應(yīng)用的新標(biāo)桿

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

    樹(shù)莓和單片機(jī)的優(yōu)缺點(diǎn)是什么

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

    樹(shù)莓的功能用途是什么

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

    樹(shù)莓4b支持多大的sd卡

    樹(shù)莓4B是一款非常受歡迎的微型計(jì)算機(jī),它具有強(qiáng)大的性能和豐富的擴(kuò)展功能。在樹(shù)莓4B的使用過(guò)程中,SD卡是一個(gè)非常重要的組件,因?yàn)樗?b class='flag-5'>樹(shù)莓
    的頭像 發(fā)表于 08-30 17:02 ?706次閱讀

    樹(shù)莓gui開(kāi)發(fā)什么ide

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

    樹(shù)莓裝ubuntu和raspbian哪個(gè)更好

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

    樹(shù)莓5,Raspberry Pi 5 評(píng)測(cè)

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

    Waveshare推出樹(shù)莓紅外熱像儀,可智能檢測(cè)報(bào)警和過(guò)熱問(wèn)題

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

    樹(shù)莓主板如何連接電腦

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

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

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

    樹(shù)莓都有哪些功能,是什么編程的?

    怎么學(xué)習(xí)樹(shù)莓,樹(shù)莓和傳統(tǒng)單片機(jī)的區(qū)別是哪些,如果有了樹(shù)莓該學(xué)哪些知識(shí)
    發(fā)表于 11-09 07:51

    超實(shí)用!玩轉(zhuǎn)樹(shù)莓攻略!

    如果你使用樹(shù)莓派來(lái)開(kāi)發(fā)的話,C語(yǔ)言或者Python語(yǔ)言都是一個(gè)比較不錯(cuò)的選擇。在開(kāi)始玩轉(zhuǎn)你的樹(shù)莓前,可以先看看如何快速入門(mén); Raspberry Pi Imager 工具是一款圖形化 SD 卡寫(xiě)入
    的頭像 發(fā)表于 11-01 20:30 ?2040次閱讀
    超實(shí)用!玩轉(zhuǎn)<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>攻略!

    怎樣用32單片機(jī)測(cè)電壓?

    怎樣用32單片機(jī)測(cè)電壓
    發(fā)表于 10-31 07:09