0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用MQTT连接树莓派IoT设备

454398 来源:工程师吴畏 2019-08-02 09:15 次阅读

什么是MQTT?

MQTT(消息队列遥测传输)是一种轻量级消息传递协议,非常适合物联网连接设备的通信

MQTT有三个组件:代理,发布者和订阅者。一个受欢迎的在线经纪人是Mosquitto。代理是一个中间实体,负责处理设备之间的通信。发布者是发送消息的设备。订阅者监听发布者发送的消息。

MQTT中还有一个重要的事情,那就是主题。不同设备之间的通信需要一个主题。例如,设备A想要向设备B发送消息。为此,两者之间应该存在共同点,这就是主题。可以把它想象成一个电话号码。

CloudMQTT

CloudMQTT是一种提供免费MQTT通信的代理服务对于一定数量的设备。

设置MQTT

创建帐户

转到右上角的控制面板

点击“创建”按钮

在“名称”字段中输入CMQTT

开同一页面,在管理用户中添加用户:

名称:pi

密码:pi

点击“保存”

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

用户:pi

主题:pi

点击“保存”

现在,在顶部栏中,点击“WebSocket UI”

您将看到一个页面所有传感器数据将显示在哪里

将下面的代码上传到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通信。上面的代码使用随机函数生成随机值来模拟模拟引脚。

传感器应连接到A0,A1,A2,A3,A4引脚

Serial.println(randSensorsData);

此行发送随机数据以检查服务器

您还可以检查WebSocket中显示的随机数据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()

现在使用python 2.7运行代码

您会看到传感器数据每秒都会在CloudMQTT的WebScoket UI中显示。

在这里,您将看到从Raspberry Pi发送的数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IOT
    IOT
    +关注

    关注

    186

    文章

    4180

    浏览量

    196242
  • 树莓派
    +关注

    关注

    116

    文章

    1699

    浏览量

    105528
  • MQTT
    +关注

    关注

    5

    文章

    649

    浏览量

    22435
收藏 人收藏

    评论

    相关推荐

    树莓与Arduino的区别是什么

    Pi): 树莓最初是作为教育工具设计的,旨在帮助学生学习计算机编程和电子工程。随着时间的推移,它已经发展成为一个多功能的微型计算机,可以用于各种项目,包括但不限于: 家庭媒体中心 游戏机 网络服务器 IoT(物联网)
    的头像 发表于 11-11 11:14 360次阅读

    树莓gpio有什么,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等领域。GPIO(General Purpos
    的头像 发表于 10-22 18:09 509次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 543次阅读

    树莓网关:物联网应用的新标杆

    的特点是体积小巧(大约信用卡大小),但功能齐全,足以支持多种计算任务。 树莓经常被用作物联网网关,收集设备数据,然后将数据上传云平台,并还可以用来接收来自云端的控制指令,控制其他连接
    的头像 发表于 10-09 16:44 243次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    树莓和单片机的优缺点是什么

    )接口,树莓可以连接各种传感器、执行器和其他外围设备。 易于编程 :树莓支持多种编程语言,如
    的头像 发表于 08-30 18:21 1465次阅读

    树莓的功能用途是什么

    树莓(Raspberry Pi)是一款由英国树莓基金会研发的信用卡大小的单板计算机,自2012年推出以来,已经发展出多个型号和版本。树莓
    的头像 发表于 08-30 18:01 2259次阅读

    树莓4b支持多大的sd卡

    树莓4B是一款非常受欢迎的微型计算机,它具有强大的性能和丰富的扩展功能。在树莓4B的使用过程中,SD卡是一个非常重要的组件,因为它是树莓
    的头像 发表于 08-30 17:02 921次阅读

    树莓gui开发什么ide

    树莓(Raspberry Pi)是一款功能强大的微型计算机,可以运行多种操作系统,如Raspbian、Ubuntu等。在树莓派上进行GUI(图形用户界面)开发,可以使用多种集成开发环境(IDE
    的头像 发表于 08-30 16:49 693次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1059次阅读

    树莓5,Raspberry Pi 5 评测

    了Raspberry Pi Zero的15针接线器,而不是原先的22针接线器。还要注意的是,现在有两个相邻的接头,我们现在可以连接两个摄像头、两个DSI显示器或者混合连接树莓
    发表于 06-19 14:51

    Waveshare推出树莓红外热像仪,可智能检测报警和过热问题

    Waveshare近日推出针对树莓的红外线热像仪。此设备能借助GPIO接口与树莓派对接,拓展其功能领域。除正常的树莓
    的头像 发表于 05-20 14:45 616次阅读

    【米尔-瑞米兼容树莓扩展模块-试用体验】视频来了解这块生态板_米尔-瑞米兼容树莓扩展模块

    今天为大家展示一下初始开发板_米尔-瑞米兼容树莓扩展模块, 米尔-瑞米兼容树莓扩展模块介
    发表于 04-29 11:51

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接
    的头像 发表于 01-07 15:40 1838次阅读

    宏集方案 | 如何用工业树莓MQTT平台打通OT和IT?

    如何用工业树莓MQTT平台打通OT和IT?
    的头像 发表于 01-05 11:01 357次阅读
    宏集方案 | 如何用工业<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要怎样
    发表于 11-28 06:41