day02(单片机高级)单片机控制ESP8266连接阿里云

目录

单片机控制ESP8266连接阿里云物联平台

MQTT协议简介

订阅和发布

cJSON简介

云平台搭建

注册和登录

实例的开通和创建

产品和设备的创建

创建产品

添加设备

功能定义

发布上线

MQTTFX工具使用

发布和订阅

订阅

发布

MQTT固件烧录

AT指令验证

调试验证订阅

单片机控制ESP8266连接阿里云物联平台

思路梳理

将温湿度上传至阿里云

MX配置

代码编写


单片机控制ESP8266连接阿里云物联平台

需要了解的新知识点

MQTT(一种基于TCP实现的应用层网络通信协议)

CJSON(json是一种数据格式,C语言实现的)

AT指令(使用MQTT固件的)

MQTT协议简介

【腾讯文档】MQTTMQTTicon-default.png?t=O83Ahttps://docs.qq.com/doc/DQUxLVEdyeG1PV0RG

订阅和发布

MQTT是基于topic来发布消息的,发布者在发布消息时需要指定该消息发布在哪个topic下。

topic最容易的理解方式是文件夹路径。如果有成千上万的不同类型的文件要保存,为了合理放置这些文件,需要创建一系列有层次性的文件夹来管理它们。发布消息就好比把文件保存到不同的文件夹下。

和文件夹类似,topic有主题级别,各级别之间是以斜杠(/)来分隔的。

例如: rensanning/home/room1/light/brightness 就有5个级别。

第1层:用户

第2层:场所

第3层:位置

第4层:物件

第5层:数据指标

/sys/k0snmQNV0Hn/${deviceName}/thing/event/property/post

cJSON简介

JSON(详解)-CSDN博客文章浏览阅读6k次,点赞15次,收藏22次。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式来存储和表示数据,通常用于在不同的系统之间进行数据交换。JSON数据以键-值对的形式组织,可以包含对象、数组、字符串、数字等基本数据类型。它经常在Web开发、API通信等领域被广泛使用。_jsonhttps://blog.csdn.net/m0_56694518/article/details/134084820?ops_request_misc=%257B%2522request%255Fid%2522%253A%252253FAFE38-AB79-4F94-8205-0BB18C023736%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=53FAFE38-AB79-4F94-8205-0BB18C023736&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-134084820-null-null.nonecase&utm_term=json&spm=1018.2226.3001.4450

云平台搭建

注册和登录

第一步,先找到阿里云平台官网。

阿里云-计算,为了无法计算的价值阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。免费备案,7x24小时售后支持,助企业无忧上云。icon-default.png?t=O83Ahttps://www.aliyun.com/

点击右上角的注册登录完成之后,进行实名认证,任选一种认证方式。

认证完成之后找到左上角的三条横杠(或者首页左上角的产品),

实例的开通和创建

然后找到物联网然后右侧找到物联网平台

点进去然后点击管理控制台第一次用会让你开通物联网平台,然后点击开通

进去之后点击我已阅读那个服务协议然后点击立即开通会提示购买成功,

2021年07.30之前开通的公共实例是永久,此时间之后开通的是公共实例试用

然后点击管理控制台,会进入到实例概览界面,如果没有公共实例就先等阿里云给创建好,然后点开通公共实例点击开通的时候会有一个类似警告⚠的说明然后点我已理解以上内容然后点确认开通.

产品和设备的创建

后期可直接从此网址进入

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。icon-default.png?t=O83Ahttps://iot.console.aliyun.com/

开通好之后,点进去左侧找到设备管理,点产品

创建产品

输入产品名称,现在做项目的时候是点击自定义品类,标准品类后期看具体需求

然后节点类型:普通设备(灯开关,温湿度,二氧化碳浓度等等显示类和控制类的都是选择直连设备),网关设备就选网关设备,看后期具体需求

联网方式首选WiFi如果需要别的协议就选对应的,数据格式最常用的就是JSON,然后校验级别默认弱校验,认证方式默认设备密钥,产品描述可以自己添加对该产品的描述。

产品创建成功后,你可以选择前往添加设备,可以选择查看产品详情等。

也可以返回产品列表点查看,查看自己的产品所有信息。

添加设备

然后在左侧导航栏选择设备管理>设备,在设备列表中添加页下点击添加设备

在弹出的对话框内选择你之前创建的产品名称,并填写DeviceName为你自己起的名字(比如智能温湿度可以写smartTemperature1,备注名称为“智能温湿度01号”(也就是你自己对设备的一个备注。

点击确定之后点击完成。确定后可以在设备详情页中看到增加的设备。如果有多个设备,也可按上述方法继续添加。

功能定义

发布上线

确认完成之后点发布上线

MQTTFX工具使用

mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)-CSDN博客文章浏览阅读10w+次,点赞101次,收藏472次。文章目录1. mqtt.fx2. 下载3. 安装4. 使用主页面通用设置界面用户信息设置安全证书设置网络代理设置遗嘱设置1. mqtt.fxMQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息,用来前期和物理云平台调试非常方便。2. 下载访问官方下载地址,选择最新版本下载:选择32位或者64位下载,这里我下载64..._mqtt.fxhttps://blog.csdn.net/Mculover666/article/details/103799033

发布和订阅

订阅

发布

物模型属性、事件、服务的Alink JSON数据格式和Topic_物联网平台(IoT)-阿里云帮助中心当您为产品定义物模型后,设备需要按照Alink JSON格式上报属性或事件,如果使用其他格式需要通过消息解析功能转化,服务端设置属性或调用服务同样要满足Alink JSON格式。本文为您介绍物模型数据的Alink JSON格式和Topic。icon-default.png?t=O83Ahttps://help.aliyun.com/zh/iot/user-guide/device-properties-events-and-services?spm=a2c4g.11186623.0.0.36d91789UWYDmy#section-g4j-5zg-12b

{"id": "123","version": "1.0","params": {"temperature": {"value": 12.34},"Humidity": {"value": 56.78}},"method": "thing.event.property.post"}

{

"id": "123",

"version": "1.0",

"params": {

"temperature": {

"value": 11.22

},

"Humidity": {

"value": 12.34

}

},

"method": "thing.event.property.post"

}

MQTT固件烧录

资料中或者官网找到固件压缩包并解压

以下为官网固件下载地址

AT固件汇总 | 安信可科技icon-default.png?t=O83Ahttps://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB

ESP8266 SDK发布 | 安信可科技icon-default.png?t=O83Ahttps://docs.ai-thinker.com/esp8266/sdk

找到烧录工具并打开

开发板上将WIFI模块切换为下载模式串口连接8266,在设备管理器中查看usb端口号

选择固件程序配置地址,点击烧录程序

亲~~~,别忘了拨回运行模式哦。只拨S4开关,其他不用动

最好自己验证一下

AT指令验证

MQTT AT Commands — ESP-AT 用户指南 文档icon-default.png?t=O83Ahttps://docs.espressif.com/projects/esp-at/zh-cn/release-v2.2.0.0_esp8266/AT_Command_Set/MQTT_AT_Commands.html

打开串口调试助手,按顺序发送AT指令给WIFI模组,记得替换自己的参数

1.AT+RST //测试

2.AT+CWMODE=1 //设置模式

3.AT+CWJAP="WiFi名字","WiFi密码" //连接路由器

4.AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com" //配置 MQTT 用户属性

5.AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,"" //

6.AT+MQTTCLIENTID=0,"clientId" //clientId第二个参数注意每个逗号前加分隔符“\”

7.AT+MQTTCONN=0,"mqttHostUrl",1883,1 //自己的Url

8.AT+MQTTSUB=0,"订阅的主题",1 //订阅的主题可在云端设备的“自定义Topic列表”复制进去

9.AT+MQTTPUB=0,"/sys/k0snmQNV0Hn/E001/thing/event/property/post","{\"id\":\"123\"\,\"version\":\"1.0\"\,\"params\":{\"temperature\":{\"value\":11.11}\,\"Humidity\":{\"value\":22.22}}\,\"method\":\"thing.event.property.post\"}",0,0

AT+MQTTPUB=0,"/sys/k0snmQNV0Hn/E001/thing/event/property/post","{\"id\":\"123\"\,\"version\":\"1.0\"\,\"params\":{\"temperature\":{\"value\":11.11}\,\"Humidity\":{\"value\":22.22}}\,\"method\":\"thing.event.property.post\"}",0,0

注意:订阅主题(替换自己的设备名字)

调试验证订阅

单片机控制ESP8266连接阿里云物联平台

思路梳理

程序需要改的地方

建议是基于昨天的工程进行修改

亲~~~~, 一定要改(里面信息是我的,哇呜)

如果是自己搭建,需注意以下问题

将温湿度上传至阿里云

MX配置

代码编写

1.添加SHT20代码到工程

2、定义变量接收温湿度

3、外部引用

4、因为json解析需要使用堆空间

5、编写代码;注意:控制必须实时,上报可以定时(可自己实现时间片轮转)

if(USART5_RxCounter==1){Ali_Yun_GetRCV();USART5_RxCounter=0;memset(USART5_RxBuff,0,sizeof(USART5_RxBuff));printf("JIAYU\r\n");}HAL_Delay(5);
		time++;BSP_SHT20_GetData();if(time == 100){sprintf(message,"AT+MQTTPUB=0,\"/sys/k0snmQNV0Hn/E001/thing/event/property/post\",\"{\\\"id\\\":\\\"123\\\"\\,\\\"version\\\":\\\"1.0\\\"\\,\\\"params\\\":{\\\"temperature\\\":{\\\"value\\\":%.2f}\\,\\\"Humidity\\\":{\\\"value\\\":%.2f}}\\,\\\"method\\\":\\\"thing.event.property.post\\\"}\",0,0",T,H);ESP8266_USART("%s\r\n", message);
			time=0;HAL_Delay(20);USART5_RxCounter=0;memset(USART5_RxBuff,0,sizeof(USART5_RxBuff));}

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

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

相关文章

社交电商的优势及其与 AI 智能名片小程序、S2B2C 商城系统的融合发展

摘要:本文深入分析了社交电商相较于传统电商的优势,包括门槛低、易操作、更生活化和可团队化运作等特点。同时,探讨了 AI 智能名片小程序和 S2B2C 商城系统在社交电商发展中的作用,以及它们与社交电商融合所带来的新机遇和发展前景…

uni-app快速入门(八)--常用内置组件(上)

uni-app提供了一套基础组件&#xff0c;类似HTML里的标签元素&#xff0c;不推荐在uni-app中使用使用div等HTML标签。在uni-app中&#xff0c;对应<div>的标签是view&#xff0c;对应<span>的是text&#xff0c;对应<a>的是navigator&#xff0c;常用uni-app…

Jmeter的后置处理器(二)

5--JSR223 PostProcessor 功能特点 自定义后处理逻辑&#xff1a;使用脚本语言编写自定义的后处理逻辑。支持多种脚本语言&#xff1a;支持 Groovy、JavaScript、BeanShell 等脚本语言。动态参数传递&#xff1a;将提取的数据存储为变量&#xff0c;供后续请求使用。灵活性高…

基于SpringBoot3+mybatis搭建的历史上的今天API接口服务 及 Mybatis 应该有个更好的方法来隐藏 Pojo 类中的字段

一、Mybatis有没有比较好的方法隐藏 Pojo 类中的字段 使用 Mybatis 时&#xff0c;为了实现通用的CURD&#xff0c;在定义实体类pojo时&#xff0c;会尽量将能用得上的数据库字段都定义到 pojo中&#xff0c;但是在查询的时候却有不一样的需求。mybatis的文档地址链接&#xff…

SLAM-evo 评估

文章目录 1.evo介绍1.1.evo安装1.1.2.evo的安装(evo共有两种安装方式)1.1.2.1.采用pip安装&#xff0c;直接安装最新的稳定发行版&#xff08;在翻墙的情况下可以使用&#xff09;将路径添加到系统 PATH 中1.1.2.2.源码安装 &#xff0c;下载源码进行安装&#xff08;必须翻墙&…

【机器学习chp3】判别式分类器:线性判别函数、线性分类器、广义线性分类器、分段线性分类器

前言&#xff1a; 本文遗留问题&#xff1a;&#xff08;1&#xff09;对最小平方误差分类器的理解不清晰.&#xff08;2&#xff09;分段线性判别函数的局部训练法理解不清晰。 推荐文章1&#xff0c;其中有关于感知机的分析 【王木头从感知机到神经网络】-CSDN博客 推荐文…

04 搭建linux驱动开发环境

虽然 petalinux 功能很全面&#xff0c;但是其编译速度较慢&#xff0c;不适用于驱动调试阶段&#xff08;因为驱动调试阶段会频繁修改驱动模块、内核、设备树等&#xff09;&#xff0c;因此本章将采用分步编译的方式来编译启动开发板所需要的各种镜像文件&#xff0c;虽然步骤…

Linux性能优化之火焰图的起源

Linux火焰图的起源与性能优化专家 Brendan Gregg 密切相关&#xff0c;他在 2011 年首次提出这一工具&#xff0c;用于解决性能分析过程中可视化和数据解读的难题。 1. 背景&#xff1a;性能优化的需求 在现代计算中&#xff0c;性能优化往往需要对程序执行中的热点和瓶颈进行…

半桥驱动芯片调试中的问题

结论&#xff1a;低于12V的场景应用分立的MOS驱动电路压根不合适&#xff0c;选用集成桥臂的芯片合适。 HIN的输入电平不能是长时间的高电平&#xff0c;否则自举电容没法充放电从而没办法自举升压&#xff0c;上管无法控制&#xff1a; 电容C2的容值应该尽可能大&#xff…

【C++】类和对象-深度剖析默认成员函数-上

> &#x1f343; 本系列为初阶C的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:[小编的个人主页])小编的个人主页 > &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 > ✌️ &#x1f91e; &#x1…

RabbitMQ黑马笔记

目录 1.初识MQ 1.1.同步和异步通讯 1.1.1.同步通讯 1.1.2.异步通讯 1.2.技术对比&#xff1a; 2.快速入门 2.1.安装RabbitMQ 2.2.RabbitMQ消息模型 2.3.导入Demo工程 2.4.入门案例 2.4.1.publisher实现 2.4.2.consumer实现 2.5.总结 3.SpringAMQP 3.1.Basic Queu…

麒麟KylinServer的网站,并部署一套主从DNS服务器提供域名解析服务

一、KylinServer网站搭建 ifconfig Copy 注意:根据实际网卡设备名称情况调整代码!不同环境下网卡名称略有不同! 获取本机IP地址,记住IP地址用于之后的配置填写。 ifconfig enp0s2 Copy 下载nginx源码包,并解压缩 wget http://10.44.16.102:60000/allfiles/Kylin/ng…

解决IntelliJ IDEA的Plugins无法访问Marketplace去下载插件

勾选Auto-detect proxy setting并填入 https://plugins.jetbrains.com 代理URL&#xff0c;可以先做检查连接&#xff1a;

AWTK-WIDGET-WEB-VIEW 发布

awtk-widget-web-view 是通过 webview 提供的接口&#xff0c;实现的 AWTK 自定义控件&#xff0c;使得 AWTK 可以方便的显示 web 页面。 项目网址&#xff1a; https://gitee.com/zlgopen/awtk-widget-web-view webview 提供了一个跨平台的 webview 接口&#xff0c;是一个非…

Pandas教程之Pandas 简介

Pandas 简介 接下来一段时间&#xff0c;我会持续发布并完成Pandas教程 Pandas 是一个功能强大的开源 Python 库。Pandas 库用于数据操作和分析。Pandas 由数据结构和函数组成&#xff0c;可对数据执行有效的操作。 本免费教程将概述 Pandas&#xff0c;涵盖 Python Pandas 的基…

【linux】网络基础 ---- 数据链路层

用于两个设备(同一种数据链路节点)之间进行传递 数据链路层解决的问题是&#xff1a;直接相连的主机之间&#xff0c;进行数据交付 1. 认识以太网 "以太网" 不是一种具体的网络, 而是一种技术标准&#xff1a; 既包含了数据链路层的内容, 也包含了一些物理层的内容…

i春秋-FUZZ(python模板注入、base64编码命令执行)

练习平台地址 竞赛中心 题目描述 题目内容 很直接就是要fuzz参数 参数字典 dpaste/eH2Z1 (Plain Text) BP爆破参数 发现存在name参数 尝试sql注入 发现输入啥就回显啥&#xff0c;猜测是模板注入 测试是不是模板注入 虽然9*9没有被执行&#xff0c;但是config执行了&#…

另外一种缓冲式图片组件的用法

文章目录 1. 概念介绍2. 使用方法2.1 基本用法2.2 缓冲原理3. 示例代码4. 内容总结我们在上一章回中介绍了"FadeInImage组件"相关的内容,本章回中将介绍CachedNetworkImage组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的CachedNetwo…

Java中的CAS

目录 一.问题提出 1.1解决思路-锁 1.2解决思路-无锁 二.什么是CAS 三.CAS的特点 四.ABA问题 4.1解决方案-AtomicStampedReference 4.2解决方案-AtomicMarkableReference 一.问题提出 如何保证 withdraw 取款方法的线程安全 public class Cas {public static void mai…

git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述&#xff1a;在我向远程仓库push代码时&#xff0c;即执行 git push origin master命令时发生的错误。直接上错误截图。 错误截图 错误原因&#xff1a; 在网上查了许多资料&#xff0c;是因为Git仓库中已经有一部分代码&#xff0c;它不允许你直接把你的代码覆盖上去…