写在前面:本节主要的内容是利用ESP8266模块,同阿里云物联网平台的连接,为后面的实现数据的远程展示与处理做好铺垫。
本节的主要内容分为一下几个阶段进行:
- 1、阿里云物联网平台的创建
- 2、阿里云 IOT studio界面绘制
- 3、mqtt.fx软件模拟MQTT客户端发布与订阅消息
- 4、ESP8266与阿里云平台通信
一、阿里云物联网平台创建
首先,我们需要创建一个物联网平台,用于数据的上传,也就是PC端进行数据的显示。之所以选择阿里云物联网平台,是因为中移动的ONENET平台创建失败了,阿里云创建成功了,所以这次先利用阿里云进行展示,后期也会学习其他物联网平台的使用。
第一步肯定是登录或者是注册了,方法不用多说,和其他网页的注册是一样的,我当时选择的是利用支付宝进行验证的。
1、登录或者注册
上面是阿里云平台的主界面,在右上角有注册与登录;
2、创建产品与设备
登录后进入阿里云的物联网平台:点击产品——物联网——物联网平台;当然也可以在上方搜索栏直接搜索物联网平台。
进入平台后,需要选择公共实例,新手刚进入不出意外得话是不能够直接进入公共实例的,这时候需要我们进行申请,可以免费使用一个月。当然企业版实例我们不需要用,公共实例已经足够了。
进入公共实例之后我们接着要做的就是创建设备与产品,如下图的界面,在左边栏中有产品,我们直接点解,然后我们就发现,系统已经给出我们后米恩的流程步骤了:创建设备——创建产品——编辑物模型——设备端开发。 当然,可以去看看里面的指导,也可以跟着我接着做;
上方已经显示了一个我之前创建的产品:温湿度显示设计。我们直接重新创建,点击创建产品。
点击后需要注意的有两点:1、产品名称(自定义设计)2、所属类型:选择(自定义品类);其余的不需要更改。
上方就是有创建了一个新的产品:12345;接着是创建设备,很多人在这就不明白了,什么是产品?什么又是设备呢?
简单理解两者的区别:产品可以认为是智能门锁一个大类,而设备可以认为是A家用户的智能门锁或者B家用户的自己能门锁。也就是说产品是一个大类,里面可以包含多个设备。
我们直接点击产品中的管理设备,进入下面的界面:
跟创建产品一样,我们在某一个设备下面创建一个产品,我已经创建了一个mqtt_stm32的设备,而且设备的状态是离线(离线表示这个设备已经前面被激活了,只是现在不在线,如果是一个新的设备会显示的是未激活)如下图所示:
3、物模型的创建
产品——设备——物模型
物模型简单来说就是某个产品下面所要检测的数据量,例如:温度、湿度、光照强度、LED开关等等。一种数据量就需要一个创建一个物模型。
我们点击产品,进入功能定义,然后前面编辑单稿,如下所示,我已经创建了三个物模型:LED开关、湿度以及温度;我们创建完所需要的物模型,点击右上方的发布,即可完成物模型的创建。
在编辑物模型的时候,我们需要根据其变量特性进行设置编辑:
功能名称:就是简单说明该物模型是用来干什么的;
标识符:用来标识,后面数据的传递需要用到此名称;
数据类型:传递的数据是什么类型,比如:温度就是浮点型37.5摄氏度,开关就是布尔类型开或者关;
取值范围:就是此物理量的变化范围;
步长:就是变化的最小单位;
单位:就是物理量对应的单位,例如温度就是摄氏度℃;
读写类型:读写不需要改变;
创建完成后,当我们点击产品——物模型数据时,就可以看见我们设置好的物理量,我这个已经有数据是因为我进行连接过,刚开始创建时,没有数据,需要后面上传数据,至此,物联网平台的产品-设备-物模型就已经建立完成,当数据传入后就可以在此平台上进行展示以及控制。
二、IOT studio界面绘制
在前面我们对阿里云的物联网平台进行了创建,包括:产品——设备——物模型,当数据传入后,我i们就能够在物模型平台进行查看以及进行对应的控制。
当然,前面的创建并不能够美观的进行数据的展示,我们经成看见的数据检测平台是美观且高大上的,不能只在物模型处去看数字的变化,这一节我们就去看看阿里云平台为我们提供的数据界面的绘制,包括仪表盘、折线图等绘制——IOT studio界面绘制。
首先我们退回最开始的物联网云平台,也就是公共实例的位置;在公共实例旁边有一个增值服务,点击后,新版进入需要点击选购增值服务,像我点击就直接出现下面的IOT Studio(应用开发)。这个阿里云平台提供免费使用30天。
进入应用开发后,我们所需要的是Web应用开发:
我们新建Web页面进行设计,需要注意的是;1、我们需要填写应用的名称;2、选择所属的项目。此处,如果没有项目,点击右边新建项目,先按照要求新建一个项目,然后再将所创建的Web应用归属到对应的项目中。
创建好新的Web应用后,进入下面的设计页面,分为以下的5个步骤:
1、选择创建;2、选择对应的元素;3、设计画布;4、保存;5、发布;
如下所示,设计的显示界面(虽然很丑,但是只是起到一个学习的作用,大家根据自己的设计天赋,设计更美观的界面)。
设计完界面后,我们需要进行数据源的配置,就是给对应的元素添加对应的数据源。每个元素点击进去都会有如上图3所示的配置数据源的部分;配置界面如下所示:
首先是选择产品,我们目前的产品只有一个,就是温湿度显示设计,我们直接选择就好;很多人刚开始进来之后,发现选择产品这一栏,没有产品共我们选择,但是我们明明在第一部分已经创建了产品?那是因为公共实例与ITO Studio界面并没有形成关联,也就是说是两个独立的部分,我们需要将公共实例中的产品移至过来。点击下方的产品管理;
我们可以看到关联物联网平台产品,然后选择对应的产品进行管理,就会在数据源的选择时有选择。
经过上面的操作,我们就完成里对应界面的设计,我们只是提供方法,并没有规定平台的设计!
三、mqtt.fx模拟MQTT客户端发布与订阅消息
经过上面产品—设备—物模型的创建、以及ITO Studio界面的设置,物联网云平台端也就是PC端的设置就已经完成了,接着就是如何与云平台进行互联,将数据进行上下传递。我们最终的想法时将传感器的数据利用STM32以及ESP8266进行采集,上传至云平台。但是我们肯定不能直接进行采集与上传。我们需要先验证所创建的阿里云物联网平台是否正确,数据传递过去后是否能够按照我们要求进行显示。
所以我们本节先利用MQTT.fx软件对我们所设计的平台进行数据模拟,消息的发布与订阅。
首先我们需要用到以下两个软件,一个是MQTT.fx软件进行数据的传输,一个是阿里云物联网平台配置,用于相关数据的配置。
百度网盘连接:
链接:https://pan.baidu.com/s/1-hIIUVsVK9K2oz_2v9NFfg
提取码:1022
首先,我们进入MQTT.fx软件,进入后为上方界面,我们需要在这个界面完成与阿里云物联网平台的连接。点击上方的设置按钮,填写对应的内容:
如上图所示:需要填写的内容较多,主要包括:
1、Broker Address:填写阿里云物联网平台配置软件中连接域名前半部分,冒号之前.com截至;
2、Broker Port:填写阿里云物联网平台配置软件中连接域名后半部分,1883(一般情况不变);
3、Client ID:填写阿里云物联网平台配置软件中Clienld内容;
4、User Credentials-UserName:填写阿里云物联网平台配置软件中Username内容;
User Credentials-Password:填写阿里云物联网平台配置软件中Password内容;
填写完后Apply,然后Cancel,最后点击设置旁边的Connect;
注:填写时,一定一定认真,输入法为英文,多次尝试,基本上很难一次连接成功!!!
那么问题来了,阿里云物联网平台配置软件中的数据是哪里来的呢?
首先,红色框中的三项数据来自物联网云平台的三元组;在设备中点击:DeviceSecret中查看;TimeStamp:随便填写(123456等);Clientld:设备的名称;填写成后点击右下方的生成,其余的连接参数就会直接生成。
按照上述说明,进行MQTT.fx同阿里云物联网平台连接,连接成功后,在MQTT.fx软件右上方,🔒标识打开,绿灯亮。在物联网平台中,设备状态改为在线,即成功。
在成功连接后,下一步就是进行数据的传递;
1、MQTT.fx——物联网云平台
首先是由MQTT.fx向阿里云物联网平台进行数据的发布,先在产品中的Topic类列表里面寻找物模型通信Topic中属性上报,操作权限为发布的报文,其报文如下:
在MQTT.fx软件的Publish处进行发布:
/sys/ProducKey/设备名称/thing/event/property/post_reply
将对应的内容进行替换;
然后由MQTT.fx填写需要发布的数据,但是数据有其严格的格式:
{"params":{"temperature":45,"humi":43},"version":"1.0.0"}
其中,temperature、humi——物模型的标识符;45、43是需要传递的数据,其余格式保持不变即可。
操作视频,需要缓冲一会才能观看。
mqtt.ft与物联网平台
2、物联网云平台——MQTT.fx
再就是由阿里云物联网平台向MQTT.fx进行数据的订阅,先在产品中的Topic类列表里面寻找物模型通信Topic中属性设置,操作权限为订阅的报文,其报文如下:
/sys/ProducKey/设备名称/thing/service/property/set
将对应的内容进行替换;
然后,通过控制物联网云平台的LED开关,观察MQTT.fx收到的信息指令。
操作视频,需要缓冲才能观看。
mqtt按键
以上便是利用MQTT.fx进行物联网平台数据的发布与订阅,成功地证明了我们创建的平台是没有问题的。后面在此基础上在引入ESP8266模块进行通信。
四、ESP8266与物联网云平台进行通信
在上面我们进行了软件的通信,这节我们就利用ESP8266模块实现与物联网云平台的通信,当然我们也是最简单的利用串口助手进行通信。
1、ESP8266固件库烧录
首先要做的就是对ESP8266进行MQTT固件库的烧录,其烧录的方法和我之前的博客烧录的方法是一模一样的,大家可以进行查看学习,不同的是烧录的文件不同,我将烧录的文件以及所用的资料放在百度网盘中供大家使用。
WiFi模块ESP8266(超详细)---(含固件库、AP、STA、原子云使用)-CSDN博客
百度网盘链接:
链接:https://pan.baidu.com/s/1WPIRfKuuXpNcxJqgq_ze8A
提取码:1022(文件)链接:https://pan.baidu.com/s/1LaKXs4IOnOg6Prz2GHYGRA
提取码:1022(烧录软件)
烧录的界面如下:
2、AT指令
在此我们利用ESP8266进行通信依靠的依旧是AT指令,因此我们将所需要的AT指令进行说明:
1、AT//用于验证ESP8266模块的好坏,如果发送后能够返回OK,则证明模块没有问题。 2、AT+CWMODE=1//用于设置ESP8266的工作模式,设置为 STA 模式; 3、AT+CWJAP="Mi","123456782"//连接WIFI,前面是WFIF名称后面是密码; 4、AT+MQTTUSERCFG=0,1,"Clientid(每个逗号前面要加\)","用户名称","Password",0,0,"" 5、AT+MQTTCONN=0,"Broker Address",1883,0//连接物联网平台 6、AT+MQTTSUB=0,"/sys/k1hk6fyktFW/mqtt_stm32/thing/service/property/set",0//订阅主题: 7、AT+MQTTPUB=0,"/sys/k1hk6fyktFW/mqtt_stm32/thing/event/property/post","{\"params\":{\"temperature\":73\,\"humi\":53}\,\"version\":\"1.0.0\"}",0,0//发布数据的命令;
注:1、指令4为:AT+MQTTUSERCFG=0,1,"Clientid(每个逗号前面要加\)","用户名称","Password",0,0,"" 黄色的内容是需要进行替换的,按照前面软件产生的数据填写;
2、指令5为:AT+MQTTCONN=0,"Broker Address",1883,0 黄色内容也需要进行替换;
3、指令6为:AT+MQTTSUB=0,"/sys/k1hk6fyktFW/mqtt_stm32/thing/service/property/set",0 不需要进行修改。
4、指令7为:AT+MQTTPUB=0,"/sys/k1hk6fyktFW/mqtt_stm32/thing/event/property/post","{\"params\":{\"temperature\":73\,\"humi\":53}\,\"version\":\"1.0.0\"}",0,0 只修改黄色部分,物模型的标识符,以及传递的数据;其余的任何标点符号都不要修改;
利用串口助手进行发送,注意每条指令需要加上换行,再手动发送,返回OK即发送正确。
3、操作验证
串口助手:
链接:https://pan.baidu.com/s/1c4qFxLoi5Z0jWeQSK0ipow
提取码:1022
操作视频,需要缓冲后查看;
ESP8266+aliyun
以上便是利用ESP8266模块,完成了同阿里云物联网平台的连接。
创作不易,还请大家多多点赞支持!!