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
    +关注

    关注

    189

    文章

    4369

    浏览量

    206640
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109728
  • MQTT
    +关注

    关注

    5

    文章

    723

    浏览量

    24790
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    零成本钢铁侠手套!树莓+OpenCV 秒变手势遥控器!

    使用树莓和OpenCV实时扫描并存储二维码使用树莓和OpenCV实现物体与动物识别使用树莓
    的头像 发表于 08-16 16:16 893次阅读
    零成本钢铁侠手套!<b class='flag-5'>树莓</b><b class='flag-5'>派</b>+OpenCV 秒变手势遥控器!

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    使用树莓和OpenCV实时扫描并存储二维码使用树莓和OpenCV实现物体与动物识别使用树莓
    的头像 发表于 08-14 17:45 976次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    树莓屏幕怎么选?

    树莓很多人都用过,但屏幕的倒不是很多。不少都是直接远程操作,或者直接接身边的显示设备了。但我觉得给开发板配一个屏幕还是很能提升使用体验的。这次我就介绍一下
    的头像 发表于 08-08 14:59 1073次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>屏幕怎么选?

    树莓操作系统:版本、特性及设置完整指南!

    桌面环境的版本和轻量级、仅用于命令行的最小安装版本。该操作系统设计高效且资源友好,是树莓设备的理想选择。树莓操作系统的优势√轻量高效该操
    的头像 发表于 07-28 18:26 840次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整指南!

    20个任何人都能完成的树莓酷炫项目!

    不知道如何利用你买的树莓?这个小设备真的能当台式电脑吗?能当服务器吗?能当广播电台吗?当然可以!为了帮助你入门,我们精心挑选了这份树莓
    的头像 发表于 07-03 17:10 3059次阅读
    20个任何人都能完成的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>酷炫项目!

    精通远程控制:借助树莓释放 SSH 的强大功能!

    什么是SSH?我们如何利用SSH连接树莓、对其进行监控并执行其他任务?注意:文章链接可能需要科学上网。通过SSH连接树莓
    的头像 发表于 06-27 15:26 786次阅读
    精通远程控制:借助<b class='flag-5'>树莓</b><b class='flag-5'>派</b>释放 SSH 的强大功能!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    接入,但随着我们逐渐远离台式电脑,找到键盘和显示器变得越来越困难。一旦WiFi设置完成,就可以通过SSH连接树莓,并从笔记本电脑或其他设备远程与
    的头像 发表于 06-26 15:41 1051次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 1000次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:<b class='flag-5'>用</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通道20安培电流监测控制器x1项目背景介绍在本
    的头像 发表于 06-04 15:33 1145次阅读
    <b class='flag-5'>用</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目!

    树莓是一款功能强大、体积小巧且高度可定制的设备,多年来,我们见证了它被应用于众多领域。无论是将其装入3D打印的经典游戏机外壳,还是简单地将它隐藏起来作为家庭文件服务器,我们都报道过在社区里
    的头像 发表于 05-22 16:53 1207次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1树莓
    的头像 发表于 05-13 16:39 872次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    树莓4 打造专属流媒体控制台!

    的这个项目一样。他使用我们最爱的单板计算机(SBC)从零开始打造了一台树莓版流媒体控制台。如果你对流媒体控制台不太了解,这些设备可以连接到个人电脑上,并提供按钮
    的头像 发表于 05-11 08:33 429次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>树莓</b><b class='flag-5'>派</b>4 打造专属流媒体控制台!

    树莓4b连接DLPDLCR230NPEVM,HDMI和DPI可以同时嘛?

    树莓4b连接DLPDLCR230NPEVM,HDMI和DPI可以同时
    发表于 02-21 11:48

    干货来喽!实用树莓Linux编译指南

    不友好,有没有好的解决办法? 今天来分享一下我的私藏干货——树莓Linux编译。编译好之后,开发板只需插到树莓派上连接电脑就可以直接用了,极其方便。 本文以
    的头像 发表于 12-18 16:31 842次阅读
    干货来喽!实用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>Linux编译指南

    实用树莓Linux编译指南,打工人必备!

    不友好,有没有好的解决办法? 今天来分享一下我的私藏干货——树莓Linux编译。编译好之后,开发板只需插到树莓派上连接电脑就可以直接用了,极其方便。 本文以
    的头像 发表于 12-17 16:19 1995次阅读
    实用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>Linux编译指南,打工人必备!