首页 / 行业
怎样用MQTT连接树莓派IoT设备
2019-08-02 09:15:00
什么是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发送的数据。
最新内容
手机 |
相关内容
射频连接器使用技巧与注意事项
射频连接器使用技巧与注意事项,连接器,选择,频率,类型,连接,传输,射频连接器是一种用于连接射频电路的电子元件,常用于无线通信系统电流互感器作用 电流互感器为什么
电流互感器作用 电流互感器为什么一端要接地?,作用,误差,原因,连接,测量,短路故障,电流互感器(Current Transformer,简称CT)是一种用于低耗能,小安派-LRW-TH1传感器通用板
低耗能,小安派-LRW-TH1传感器通用板,一块板即可连接多种传感器!,传感器,多种,连接,一块,通用,接口,小安派-LRW-TH1传感器通用板是一款人形机器人风起,连接器待势乘时
人形机器人风起,连接器待势乘时,连接器,人形机器人,工作效率,性强,研发,光纤,近年来,人形机器人在人工智能领域取得了巨大的进展。随工业物联网数据采集:从Modbus到MQTT
工业物联网数据采集:从Modbus到MQTT,数据采集,物联网,模式,网关,协议,数据,工业物联网(Industrial Internet of Things,IIoT)的核心任务阿里平头哥发布首颗SSD主控芯片:镇
阿里平头哥发布首颗SSD主控芯片:镇岳510,平头,芯片,物联网,性能,阿里巴巴,支持,阿里平头哥是指阿里巴巴集团的CTO张建锋,他在宣布了阿群芯微车规级认证的光电耦合器备受
群芯微车规级认证的光电耦合器备受电池BMS和电驱电控市场青睐,电驱,市场,耦合器,微车,认证,测量,随着电动汽车市场的迅速发展,电池管振弦传感器智能化:电子标签模块
振弦传感器智能化:电子标签模块,模块,传感器,操作,连接,安装,控制,mbrs360t3g振弦传感器是一种常用的测量设备,用于检测物体的振动。