使用ArduinoMqttClient库连接阿里云,并实现发送接收数据(ESP8266)_arduino连接阿里云mqtt(1)

订阅(subscribe)与发布(publish)简称(sub/pub),是MQTT的一种消息范式。
可以把消息的发布者理解为向云端发送数据,在物联网开发中,我们可以将采集到的数据发送(发布)到阿里云服务器,这样后台管理人员就可以通过阿里云服务器查看到实时采集的数据了;
而消息的订阅者,提前对云端数据进行订阅,从而能接收云端发送过来的数据。我举一个订阅的栗子:订阅消息就像是订阅一个微信公众号,我们订阅了一个微信公众后,我们就能持续不断的收到微信公众号的推文。同理,当我们没有订阅微信公众号的时候,我们就不能收到微信公众号的推文。在物联网开发中,一个简单的使用阿里云物联网平台控制led灯的亮灭就是设备提前订阅了数据,然后阿里云下发指令后,设备收到指令进行数据的处理。我们明白了原理,明天我们就能通过阿里云平台来操作工业的设备,比如水闸开闸、设备开机等等。

二、使用MQTT.fx接入物联网设备

MQTT.fx是一个多平台的MQTT协议客户端,可以把它想象成一个虚拟的设备,在进行设备连接之前,可以使用MQTT.fx来测试连接是否正常。阿里云文档有相关的教程说明:阿里云物联网平台文档-使用MQTT.fx接入物联网平台

MQTT.fx会不定期更新,我最近使用最新版本的需要License,可以申请免费使用三个月,我目前使用的是1.7.1版本的做测试,总的来说,照着阿里云的教程一步步做都能完成连接。

三、使用ESP8266连接阿里云

编写代码之前需要安装3个库:<ArduinoMqttClient.h>、<ESP8266WiFi.h>、<ArduinoJson.h>
我这里编写了一个发送数据和通过阿里云平台控制LED灯的例程供大家参考,大家注意一下WiFi账号密码、发布和订阅的topoic、接入域名、客户端id、连接用户名密码的设置。

接入域名设置:

//MQTT接入域名
//以阿里云为例:a1\*\*\*.iot-as-mqtt.cn-shanghai.aliyuncs.com
//a1\*\*\* 为产品的ProductKey
//cn-shanghai 为所在地域
const char broker[] = "xxxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com";

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值