阿里云物联网平台配置ESP8266真实设备AT串口连接,支持MQTT协议通信

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云物联网平台配置ESP8266真实设备AT串口连接,支持MQTT协议通信相关的知识,希望对你有一定的参考价值。

文章目录

1 阿里云物联网平台

  • 官方文档:https://help.aliyun.com/product/30520.html
    官方控制台:https://iot.console.aliyun.com/lk/summary/new

  • 左边有产品和设备,产品是抽象的品类,比如说电灯,空调等等。
    设备是品类下具体的物品,和实物一一对应的云端信息,比如电灯1,电灯2,电灯-卧室,电灯-门口等等。

  • 新建一个产品,可以看到物品属性的定义,比如等有开关,亮度,色温等等,这些信息的json数据简称物模型

  • 新建一个设备,可以看到设备唯一标识与MQTT连接参数,用于后面的本地连接。

  • 另外,可以在文档与工具类里找到IOT Studio的文档,进行简易的云上APP开发
    控制台地址为:https://studio.iot.aliyun.com/

2 MQTT.fx虚拟设备连接

2.1 配置设备连接(建立连接)

  • 首先原本设备是离线或未激活状态。

  • MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端,支持Windows、Mac和Linux操作系统,可用于验证设备是否可与物联网平台正常连接,并通过Topic订阅和发布消息。
    官网地址:https://mqttfx.jensd.de/index.php/download

  • 单击菜单栏中的Extras,选择Edit Connection Profiles。
    在Edit Connection Profiles页面,完成以下参数的设置。

  • TLS直连模式(即securemode=2)下,单击SSL/TLS,选中Enable SSL/TLS,设置Protocol为TLSv1.2。

  • 然后保存并且连接就行,此时可以看到云设备在线。

2.2 配置订阅和发布(数据通信)

  • 在云端的产品中,定义一个支持发布和订阅的Topic类,之后将使用该类作为地址进行数据通信

  • 拷贝该地址到MQTT.fx,并替换$deviceName为自己的设备名称,此时就可以点publish进行上传数据到云端

  • 也可以点击订阅subcribe自动接收和下载云端的数据

  • 可以在本地和云端查看通信的日志:

3 ESP8266真实设备连接

3.1 配置设备连接(建立连接)

  • 在连接之前,首先要用烧录器烧录支持MQTT的固件
    软件是这个flash_download_tool_3.8.7
    固件是这个ESP8266-AT-1M
    固件是通用的,烧过一次以后换不同的账号,平台,设备,都可以直接用
    注意烧录用的连接电脑的USB主板和平时通信的不是同一个
  • 然后开始设备和阿里云的连接,我们使用XCOM V2.0.exe工具进行,指令如下。
    AT是命令,RST和RESTORE都是重启设备的意思,是通用的,ntp1.aliyun也是通用域名,都直接复制就行。
    需要修改的是wifi账号密码,MQTT的用户名,密码,ClienID,连接域名这部分。
    这些信息与上面连接MQTT.fx的时候是一样的,在云端设备的MQTT连接参数中可以找到
    AT+RST
    AT+RESTORE
    AT+CWMODE=1
    AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
    AT+CWJAP="WiFi名字","WiFi密码"
    AT+MQTTUSERCFG=0,1,"NULL","用户名","密码",0,0,""
    AT+MQTTCLIENTID=0,"ClienId"    //clientId第二个参数注意每个逗号后加分隔符“\\”,例如:t|securemode=3\\,signmethod=hmacsha1\\,
    AT+MQTTCONN=0,"连接域名",1883,1    //连接域名中的端口号已经被提到后面了,所以删去“:1883”
    
  • 下面正式建立连接,注意要选一下串口和波特率。

3.2 配置订阅和发布(数据通信)

  • 在云端的产品中,定义一个支持发布和订阅的Topic类,之后将使用该类作为地址进行数据通信
  • 本地使用如下指令进行发布和订阅
    通信指令
    AT+MQTTSUB=0,"topic",1       订阅
    AT+MQTTPUB=0,"topic","test_message",1,0        发布
    可以使用自定义的Topic,在日志服务上看
    注意如果使用AJSON的Topic及物模型形式
    则发布中"test"为JSON字符串     "和,前加\\
    

4 设置云产品流转(以MQTT.fx和ESP8266为例)

  • 云产品流转原理:
    实现有2个设备,设备1发送信息给云,云将信息发送给设备2的操作。这里我们以MQTT.fx和ESP8266为例配置云产品流转。
  • 在云产品流转中设置数据源和数据目的。数据源为ESP8266自定义的Topic类,数据目的为MQTT.fx设备自定义的Topic类。
  • 然后配置解析器,进行指向操作,这里有一份简单的代码编写。意思是从接受到的数据中取出一部分items进行转发到另一个数据源。
  • 此时再使用AT让ESP8266向云端发送数据,会发现本地的MQTT.fx上接收到了刚才发送的内容,配置完成。

5 生活物联网与手机APP连接

  • 官方文档:https://help.aliyun.com/document_detail/142147.html
    官方控制台:https://living.aliyun.com/

  • 我们发现,物联网平台的IoTStudio开发的手机APP非常简陋,因此需要自己使用SDK进行APP的开发。生活物联网也有这种操作,但是它也提供了另外一种方式,官方的APP可供使用。公版APP名为云智能,可以在应用市场上下载到。

  • 这是生活物联网的配置。

  • 一个值得注意的点,生活物理网里新建的产品和设备会被自动同步到物理网平台里,而物理网平台里新建的不会
    但是同步的产品会有一个缺陷,那就是不能自定义Topic类。 因此无法完成较为复杂功能的开发,只能用现有的功能实现。

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于阿里云物联网平台配置ESP8266真实设备AT串口连接,支持MQTT协议通信的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266/esp32接入阿里云物联网平台点灯控制类案例

STM32+ESP8266移植paho MQTT协议连接阿里云物联网平台

STM32+ESP8266连接腾讯云物联网开发平台 3STM32+ESP8266-01S在腾讯云上动态注册设备(AT指令方式)

ESA2GJK1DH1K基础篇: 阿里云物联网平台: 云平台显示单片机采集的温湿度数据,控制设备继电器(基于ESP8266,AT指令TCP_MQTT通信)(V1.0)

STM32+ESP8266连接腾讯云物联网开发平台 2STM32+ESP8266-01S连接腾讯云

ESP 保姆级教程 疯狂点灯篇 —— 案例:ESP8266 + WS2812 + 阿里云物联网平台 + 自开发小程序