WiFi模块ESP8266同阿里物联网云平台连接(超详细)

news2024/12/26 2:54:35

写在前面:本节主要的内容是利用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模块,完成了同阿里云物联网平台的连接。

        创作不易,还请大家多多点赞支持!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1870371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈逻辑控制器之仅一次控制器

浅谈逻辑控制器之仅一次控制器 “仅一次控制器”(Once Only Controller) 是一个非常实用的组件,它允许用户控制测试计划中的某些操作仅执行一次,无论其所在的线程组或父级控制器设置了多少次循环。本指南将详细介绍“仅一次控制器”的功能、使用场景及配…

2024欧洲杯来啦!这个AI网站预测还挺准;10条Prompt包你测出AI视频工具的成色;AI搜索版「苦涩的教训」入行必学 | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 2024年欧洲杯来了!AI预测比赛结果的玩法,也越来越高级了~ 2024 年欧洲杯于6月14日至7月14日在德国举行,共有24支国家队参加…

flash申请内存失败,导致老化问题解决

背景 在闪光灯初始化阶段客制化了一个buffer,下发到kernel的闪光灯驱动中用于保存读取闪光灯寄存器的值。功能测试都是正常的,但是一旦开始批量跑产线老化测试会有1/4500左右概率的后主摄拍照卡住。定位根因是闪光灯初始化失败,进一步原因就…

vant4的组件气泡弹出框van-popover,在列表中遍历后点击一个全部/显示隐藏,解决办法

环境&#xff1a;vue3 vant-ui4 <div v-for"(info, index) in item.infoListVOs" :key"index"><van-popoverv-model:show"showPopover":actions"actions"overlayplacement"bottom-end"select"onSelect(info…

vector的自实现(迭代器失效问题)与继承续讲

引子&#xff1a;在生活中&#xff0c;我们使用vector很频繁&#xff0c;我们是不是可以自己来实现一个呢&#xff1f;&#xff0c;其实也不难&#xff0c;我们在学过数据结构&#xff0c;就很easy啦&#xff01; As we all kowmn,vector基础有以下函数&#xff01; from my …

GMSB文章五:微生物组差异分析ANCOMBC-2

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 微生物的物种差异分析是一项关键的生物信息学任务&#xff0c;旨在识别不同生物群落或样本组…

k-NN 剪辑近邻法

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习笔记&#…

基于halcon的眼在手外(Eye-to-Hand)标定

前言 上个月写了一个《基于halcon的眼在手上&#xff08;Eye-in-Hand&#xff09;标定》的文章&#xff0c;通过官方的示例代码进行了简单的叙述&#xff0c;想学习的小伙伴可以点击链接进行学习。之前博主认为眼在手上&#xff08;Eye-in-Hand&#xff09;的案例更多&#xff…

【Java笔记】Flyway数据库管理工具的基本原理

文章目录 1. 工作流程2. 版本号校验算法3. 锁机制3.1 为什么数据库管理工具需要锁3.2 flyway的锁机制 Reference 最近实习做的几个项目都用到了Flyway来做数据库的版本管理&#xff0c;顺便了解了下基本原理&#xff0c;做个记录。 详细的使用就不写了&#xff0c;网上教程很多…

【财经研究】并购重组的“不可能三角”

伴随着沪深IPO景气度下滑后&#xff0c;并购重组正受到市场的关注。 近期监管层正频频为并购重组发声 6月20日&#xff0c;证监会主席吴清在陆家嘴论坛上指出&#xff1a;“支持上市公司运用各种资本市场工具增强核心竞争力&#xff0c;特别是要发挥好资本市场并购重组主渠道作…

干涉阵型成图参数记录【robust】

robust 这个玩意经常忘记&#xff0c;就是取2的时候是更加显示大尺度的结构&#xff0c;取-2更加显示小尺度结果&#xff0c;一般取0就是正常就好了

高效同步的PWM升压DC/DC转换器 SD6201/SD6201-AF

SD6201是高效同步的PWM升压DC/DC转换器优化为介质提供高效的解决方案电力系统。这些设备在输入电压介于0.9V和4.4V之间&#xff0c;带有1.4MHz固定频率切换。这些功能通过允许使用小型、薄型电感器以及陶瓷电容器。自动PWM/PFM轻负载下的模式切换可节省电力提高了效率。电压在2…

IMU坐标系与自定义坐标系转化

1.首先示例图为例&#xff1a; 虚线黑色角度为IMU的坐标系&#xff1b;实线为自定义坐标系&#xff1b; 矫正&#xff1a;&#xff08;默认angleyaw为IMU采的数据角度&#xff09; angleyaw_pt angleyaw-25;if(-180<angleyaw&&angleyaw<-155) // 角度跳变问…

GuiLite C语言实现版本

简介 本项目是idea4good/GuiLite的C语言实现版本&#xff0c;基于2024-06-20节点的版本&#xff08;提交ID&#xff1a;e9c4b57&#xff09;。 本项目仓库&#xff1a;GuiLite_C 需求说明 作为芯片从业人员&#xff0c;国产芯片普遍资源有限&#xff08;ROM和RAM比较少-都是…

Str.format()方法

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 在Python2.6之后&#xff0c;提供了字符串的format()方法对字符串进行格式化操作。format()功能非常强大&#xff0c;格式也比较复杂&…

深度学习论文撰写实验对比分析时复现其它论文方法的问题

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…

BERT论文略读

《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》 &#xff08;https://arxiv.org/abs/1810.04805&#xff09; 摘要&#xff1a;前人优秀工作仅用了单向信息且不能很好的应用到各类下游任务&#xff0c;本文提出一种基于Transformer的双…

如何理解AKM?

关于Wi-Fi的加密认证过程&#xff0c;我们前面已经讲解&#xff1a;WLAN数据加密机制_tls加密wifi-CSDN博客 今天我们来理解下AKM&#xff0c;AKM&#xff08;Authentication and Key Management&#xff09;在Wi-Fi安全中是指认证和密钥管理协议。它是用于确定Wi-Fi网络中的认…

【Linux】Linux下使用套接字进行网络编程

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ 用于网络应用开…

揭秘数据合并的秘密:一文掌握一对一、多对一、多对多合并技巧与实战!

使用pd.merge()合并 类似 MySQL 中表和表直接的合并merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并每一列元素的顺序不要求一致1. 一对一合并 df1 = pd.DataFrame({"…