ESP8266通过MQTT对接阿里云物联网平台

ESP8266通过MQTT对接阿里云物联网平台

  • 写在前面
  • 云平台设备创建
  • 设备端
  • 支持天猫精灵语音控制

写在前面

阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制,采用MQTT协议和设备端进行交互,通过MQTT协议与物联网平台建立长连接上报数据(通过Publish发布Topic和Payload)到物联网平台:
ESP8266通过MQTT对接阿里云物联网平台_第1张图片
阿里还提供web端和APP端,也就是说为了快速实现功能用户只需要实现设备端,就可快速实现手机/电脑对设备端的控制和数据查看,这个平台已经发布很多年了,笔者在之前也已经做过实际应用,之所以在本文来记录一下整个过程一方面是太久没更新凑文章,另一方面也是给学生一个引导快速上手免得走弯路。

云平台设备创建

登录阿里云,如果是新用户会要求实名登记,具体操作跟着网页引导做就好,这个过程可能会花一点点时间。
ESP8266通过MQTT对接阿里云物联网平台_第2张图片
登录并认证完成后进入阿里云IoT的生活物联网平台,点击右侧的开放平台入口:
ESP8266通过MQTT对接阿里云物联网平台_第3张图片
开始创建项目,输入项目名称点击确定:
ESP8266通过MQTT对接阿里云物联网平台_第4张图片
在项目下创建产品,这个产品可以是自己规划的一个类型,里面可以有很多设备,比如叫产品叫“智能开关”,里面可以创建“开关1号”、“开关2号”…
ESP8266通过MQTT对接阿里云物联网平台_第5张图片
创建成功后就会多出如下一个产品项,点击这个产品可以对这个产品进行一些属性参数设定,也就是说这个这个产品定义一下有哪些参赛需要用来交互:
ESP8266通过MQTT对接阿里云物联网平台_第6张图片
ESP8266通过MQTT对接阿里云物联网平台_第7张图片
点击添加功能后可以增加属性,上面一个是平台给出现有的可能用得上的一些,如果没有你需要的也可以点击下面自定义功能的添加自己特有的属性:
ESP8266通过MQTT对接阿里云物联网平台_第8张图片
ESP8266通过MQTT对接阿里云物联网平台_第9张图片
现在这个产品就具备两个可以传递的属性参数:
ESP8266通过MQTT对接阿里云物联网平台_第10张图片
点击下一步后需要设置一下在手机上显示的名字(如果自己没有开发APP可以使用阿里提供的公版软件):
ESP8266通过MQTT对接阿里云物联网平台_第11张图片
保存后选择左侧的设备面板,这里就是去设置这个产品在手机中的展示效果:
ESP8266通过MQTT对接阿里云物联网平台_第12张图片
ESP8266通过MQTT对接阿里云物联网平台_第13张图片
可以创建自定义的显示界面,面板的创建页也列出了可用的控键,选择左侧合适的控件直接拖到面板上即可,完成后在左上角输入面板的名字,点击右上角的保存按钮就保存好了,然后点击左上角的返回标识退出面板编辑(这个名字不会在手机上显示出来)
ESP8266通过MQTT对接阿里云物联网平台_第14张图片
选择刚才自己创建的面板样式:
ESP8266通过MQTT对接阿里云物联网平台_第15张图片
右侧的多语言管理和分享方式有默认设置,如果要修改就根据自己需要去设置,这里就不做修改了,面板选择完后点击下方的下一步:
ESP8266通过MQTT对接阿里云物联网平台_第16张图片
选择认证的模组,当然如果用的是认证的模组选择自己对应的就好,本文的实验使用的是自己的一个ESP8266模块,并不在列表中,所以就选择了最后一项:
ESP8266通过MQTT对接阿里云物联网平台_第17张图片
由于是没有认证的,所以会有安全提示,点击同意即可:
ESP8266通过MQTT对接阿里云物联网平台_第18张图片
到此一类产品模版就创建好了,下一步就是创建具体的设备了:
ESP8266通过MQTT对接阿里云物联网平台_第19张图片
这里创建的设备功能都是一样,具备刚才创建产品的那些参数属性,如果要想有不一样的属性,那就只能重新创建一类产品:
ESP8266通过MQTT对接阿里云物联网平台_第20张图片
点击确定后就会出现三元组(设备的唯一身份),这个是每个设备独有绝不会有重复的,在设备连接阿里云平台是会上带有这三条信息的消息,云平台收到后就能区分出是哪个设备上线了:
ESP8266通过MQTT对接阿里云物联网平台_第21张图片
确定后就可以看到一个设备的记录,状态是未激活,只要设备登录上,这个状态就会改变:
ESP8266通过MQTT对接阿里云物联网平台_第22张图片
到这里一个设备的云平台端就配置完成了,最后一步生成二维码,公版APP通过扫描这个二维码即可添加设备到列表里面:
ESP8266通过MQTT对接阿里云物联网平台_第23张图片
ESP8266通过MQTT对接阿里云物联网平台_第24张图片
通过云智能(公版APP)扫码添加:
ESP8266通过MQTT对接阿里云物联网平台_第25张图片
ESP8266通过MQTT对接阿里云物联网平台_第26张图片
ESP8266通过MQTT对接阿里云物联网平台_第27张图片
ESP8266通过MQTT对接阿里云物联网平台_第28张图片
如果设备没有连接网络添加会失败:
ESP8266通过MQTT对接阿里云物联网平台_第29张图片

设备端

ESP8266通过MQTT对接阿里云物联网平台_第30张图片
ESP8266通过MQTT对接阿里云物联网平台_第31张图片
三秒定时上传一帧数据:
ESP8266通过MQTT对接阿里云物联网平台_第32张图片
程序运行后,云平台就可以看到设备在线了:
ESP8266通过MQTT对接阿里云物联网平台_第33张图片
本文ESP8266的demo代码下载,这个代码是直接烧录到ESP8266芯片中的,关于ESP8266的开发网上也有比较多的教程,有机会再来整理吧。
最后手机端的效果:
ESP8266通过MQTT对接阿里云物联网平台_第34张图片
之前拍的实际控制家里的顶灯效果:

支持天猫精灵语音控制

如果需要语音通过天猫精灵来控制设备,有两点一定要注意:

  1. 创建设备的时候要把支持天猫精灵的选项打开:
    ESP8266通过MQTT对接阿里云物联网平台_第35张图片
  2. 需要购买激活码
    ESP8266通过MQTT对接阿里云物联网平台_第36张图片
    单价 2.8元一个码,一个设备只能唯一一个:
    ESP8266通过MQTT对接阿里云物联网平台_第37张图片
    付款成功后即可看到可分配的激活码:
    ESP8266通过MQTT对接阿里云物联网平台_第38张图片
    点击分配按钮可以看到分配情况,再点击分配到项目:
    ESP8266通过MQTT对接阿里云物联网平台_第39张图片
    弹出提示窗,选择需要把激活码分配到哪个项目上(一旦分配后不可修改):
    ESP8266通过MQTT对接阿里云物联网平台_第40张图片
    ESP8266通过MQTT对接阿里云物联网平台_第41张图片
    分配好后点击对应项目后面的查看按钮:
    ESP8266通过MQTT对接阿里云物联网平台_第42张图片
    看到有可用激活码数量,点击批量投产:
    ESP8266通过MQTT对接阿里云物联网平台_第43张图片
    输入数量后确定:
    ESP8266通过MQTT对接阿里云物联网平台_第44张图片
    之后就可以看到量产信息:
    ESP8266通过MQTT对接阿里云物联网平台_第45张图片
    点击后面的查看:
    ESP8266通过MQTT对接阿里云物联网平台_第46张图片
    下载激活码信息,会得到一个表格,这个表格中的三元组信息,就可以写入代码,一机一码:
    ESP8266通过MQTT对接阿里云物联网平台_第47张图片
    ESP8266通过MQTT对接阿里云物联网平台_第48张图片
    下载好后设备网络配置好,可以通过云智能(公版APP)来控制,然后在app里面关联天猫精灵
    ESP8266通过MQTT对接阿里云物联网平台_第49张图片
    ESP8266通过MQTT对接阿里云物联网平台_第50张图片
    没有绑定的需要绑定,可以看到能控制的设备:
    ESP8266通过MQTT对接阿里云物联网平台_第51张图片
    打开天猫精灵的app:
    在这里插入图片描述
    ESP8266通过MQTT对接阿里云物联网平台_第52张图片
    ESP8266通过MQTT对接阿里云物联网平台_第53张图片
    ESP8266通过MQTT对接阿里云物联网平台_第54张图片
    ESP8266通过MQTT对接阿里云物联网平台_第55张图片
    ESP8266通过MQTT对接阿里云物联网平台_第56张图片
    ESP8266通过MQTT对接阿里云物联网平台_第57张图片
    如下两个信息是给天猫精灵定位设备的,比如说“打开卧室的灯”、“关闭卧室的灯”它才知道控制哪个设备,配置完后就可以在主页看到所有能控制的设备了:
    ESP8266通过MQTT对接阿里云物联网平台_第58张图片

你可能感兴趣的:(单片机,后台,物联网,MQTT,ESP8266,阿里云)