STM32+ESP8266+阿里云

一、通信模块

ESP32和ESP8266的区别

1、处理能力和内存:

        ESP8266:是一个基于32位RISC CPU的芯片,工作频率可达160MHz,内部有SRAMSPI Flash,可以储存和运行代码。

        ESP32:具有更强的处理能力,内置两个32位的LX6微处理器,工作频率可达240MHz,并配备了更大的RAM和Flash存储空间,适合处理复杂的任务和程序。

2、无线通信能力:

        ESP8266:只支持Wi-Fi通信(802.11b/g/n)。

        ESP32:同时支持Wi-Fi(802.11b/g/n)和蓝牙(包括经典蓝牙和蓝牙低功耗BLE)。

3、GPIO(通用输入/输出)引脚:

        ESP8266:具有17个GPIO引脚,适合连接较少设备的简单项目。

        ESP32:具有高达36个GPIO引脚,能处理更多的并行任务,适合更复杂的项目。

4、电源消耗:

        ESP32的工作电流更低,且具有更多的电源管理功能,能在不影响性能的前提下有效降低功耗。

二、AT指令集介绍

AT指令集是一个通用的说法:WIFI模块,4G模块,CAT1模块,蓝牙模块..

1、指令格式:

        (AT)开头 +数据+ (回车+换行)结尾

        串口传输方式:    默认波特率:115200

        字符串:”AT+数据+换行”

        串口转WIFI

2、指令分类:

WIFI模块的AT指令有哪些:

ESP8266指令集主要分为:基础 AT 指令、 Wi-Fi 功能 AT 指令、 TCP/IP 相关的 AT 指令。

3、指令应用

如何确定使用哪些指令:

  1. 确认使用那个功能
  2. 根据功能查找相关命令(查手册、百度)

三、ESP8266WIFI设置3种无线通信模式

AP模式   --  相当于手机释放热点,让别人连接

STA模式  --  相当于手机连接别人的热点

四、硬件原理图

串口1是通过CP2102电路和电脑通信

串口2和ESP8266通信的

五、WIFI连接

1、使用安信可测试透传模式

透传:透传传输,配置成透传之后,发的数据无论是否是指令都会发出去

1.先发送AT指令    测试模块,正常会回复OK,如下图所示:

2.AT+CWMODE=1    设置为STA模式,正常会回复OK,如下图所示:

3.AT+CWJAP="gys","123456789"  连接wifi,连接成功如下图所示:

4.AT+CIPMODE=1    进入透传模式,

5.AT+CIPSTART="TCP","122.114.122.174",33582   连接服务器。

 测试服务器地址:安信可透传云 V1.0 (ai-thinker.com)

注意:使用安信可TCP服务器3分钟内没有客户端接入将关闭,所以连接服务器的时候要保证在3分钟以内。

6.AT+CIPSEND     开始传输数据

 

我们可以看到,在串口助手发送的数据,在安信可上面可以正常接收。

同样的,在安信可发送的数据在串口助手上面也是可以正常接收。

7.退出透传模式 :   +++  不需要加\r\n

六、MQTT

1、协议介绍

MQTT Message Queuing Telemetry Transport ,消息队列遥测传输协议),是一种基于发布 / 订阅( Publish/Subscribe )模式的轻量级通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 1999 年发布,目前最新版本为 v3.1.1 MQTT 最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,MQTT 在物联网、小型设备、移动应用等方面有广泛的应用。

2、MQTT 控制报文格式

一个 MQTT 由以下几部分组成:
固定报头 (Fixed header) + 可变报头 (Variable header) + 有效负荷 (Payload)

1、固定报头

MQTT 固定报头最少有两个字节,第一字节包含 数据包 类型( Message Type )和 QoS 级别等标志位。第 二字节开始是剩余长度字段,该长度是后面的可变报头加有效负荷的总长度,该字段最多允许四个字节。结构如下:

2、可变报头

可变报文头主要包含协议名、协议版本级别、连接标志( Connect Flags )、心跳间隔时间( Keep Alive timer )、连接返回码(Connect Return Code )、主题名( Topic Name )等,可变报头的内容因数据包类型的不同而不同。后文在描述常用数据包时再详细讲解。

3、有效载荷

某些 MQTT 控制报文在报文的最后部分包含一个有效载荷,这将在第三章论述。对于PUBLISH来说有效载荷就是应用消息。 表格 2.6 – 包含有效载荷的控制报文 列出了需要有效载荷的控制报文。

3、控制报文

必须要熟悉的报文:连接报文,连接应答,发布报文,订阅报文,订阅应答,心跳报文,心跳应答

七、云平台使用/连接

1、阿里云平台创建产品

步骤一:阿里云账号注册

1. 用浏览器打开阿里云首页:链接 阿里云-计算,为了无法计算的价值 (aliyun.com)
并点击右上方控制台。
2. 登录,使用自己账号登录即可

步骤二:飞燕平台使用

实名认证后一定要先注册认证飞燕平台

搜索框搜索飞燕平台(或生活物联网平台)

点击产品控制台,进入控制台创建项目(最多四个项目,每个项目可以创建多个产品)

创建产品:

选择网关,连网方式选择蜂窝;(蜂窝配网的APP配网比较方便)

芯片模组选其他

在功能定义界面定义自己产品的功能

之后人机交互选择云智能APP,点击保存

基础配置:

这里面除了控制面板,其他的产品展示、绑定方式(这里面的绑定方式对应不同的效果)、产品说明书里面的信息文档随便填写;

重点是控制面板:里面设计自己的面板(记得保存,并选择面板,尽量避免反复修改面板,可能会导致面板修改不了)

最后在设备调试里面新增测试设备:

点击查看就可以正常调试了(下一步的批量投产不需要设置)

确定后弹出来的设备证书信息( ProductKey DeviceName DeviceSerect )后面接入该平台需要用到,请记 录保存下来。不小心关闭也没关系,在产品设备中能找到。

此时产品就已经发布了,接下来打开我们常用的物联网平台的公共实例也会出现我们刚才创建的设备。

步骤三:物联网平台的使用

打开之后,如下图所示:

可以直接搜索物联网平台,然后打开。

和阿里云平台进行通信,是通过发布/订阅主题实现,接下来我们看一下:

把属性上报和属性设置Topic这三个复制下来,后面需要用到。

点击MQTT连接参数就可以直接使用里面的信息连接了

八、使用 MQTT.fx 接入物联网平台

1. 下载并安装 MQTT.fx 软件。请访问 MQTT.fx 官网

2. 打开 MQTT.fx 软件,单击设置图标。

3. 设置连接参数。

        设置基本信息。
Profile Name :输入您的自定义名称。
Profile Type:   选择为 MQTT Broker
Broker Address :连接域名。
Client ID :填写 mqttClientId ,用于 MQTT 的底层协议报文。
User Name :由设备名 DeviceName 、符号( & )和产品 ProductKey 组成。
Password  :密码由参数值拼接加密而成。

填完参数之后,点击OK。

4、点击Connect

5、云平台页面刷新,显示设备在线

6、publish页面填写

先查看一下自己的设备名

把复制的Topic设备名换成自己的

7、寻找发布消息的有效载荷部分的格式

{"id":1716522070424,"params":{"Lock_control":0,"master":666666,"card_num":1,"Delete_card":0,"password":123123,"Fingerprint_num":1,"new_card":0},"version":"1.0","method":"thing.event.property.post"}

上面这个就是发布消息的格式。

8、发布消息

9、数据的下发,先订阅主题

10、模拟数据下发

模拟数据下发,一定要保证设备在线,否则收不到下发的消息。

11、下载云智能APP

然后使用云智能APP扫码添加就可以了。

在云智能APP上面点击开锁关锁在这里也可以看到,如下图所示:

12、总结mqtt.fx的作用

九、使用STM32连接阿里云

1、使用STM32连接阿里云:

  1. 配置STM32的网络连接,确保能够连接到互联网。
  2. 使用MQTT等协议,在STM32中编写代码实现与阿里云IoT平台的通信,包括设备注册、数据上传、指令下发等功能。

2、如何封装MQTT格式的数据

  1. 自己定义数组,按照协议挨个字节填写 -- 最根本的
  2. MQTT库  有封装好的函数,按照函数传递参数使用 -- 我们用的
  3. 使用集成了MQTT库的联网模块,

3、将MQTT库添加到工程中

1、准备MQTT库文件

2、在自己的工程文件夹下建一个mqtt文件夹

3、将MQTT的源文件全部拷贝到mqtt文件夹下

4、在keil工程中,新建文件夹

5、添加所有的.c文件

6、包含一下.h路径

7、mqtt C语言库

  • 41
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一种32位微控制器,由意法半导体公司(STMicroelectronics)生产。它具有强大的处理能力和丰富的外设,可广泛应用于各种嵌入式系统中。 阿里云是由阿里巴巴集团推出的云计算平台,为用户提供弹性计算、存储、分布式数据库、物联网等各种云服务。 ESP8266是一款低功耗、高性能的Wi-Fi芯片,由乐鑫科技(Espressif Systems)研发。它集成了处理器和Wi-Fi模块,可以用作独立的Wi-Fi模块或连接到其他主控制器上。 MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级通信协议,特别适用于物联网设备间的通信。它通过主题(Topic)进行消息发布和订阅,实现了高效的数据传输和实时通信。 将这些技术结合起来,可以实现基于STM32的物联网设备与阿里云的通信。首先,ESP8266可以作为STM32的Wi-Fi模块,与阿里云建立连接。然后,通过ESP8266上的MQTT协议栈,可以进行MQTT消息的发布和订阅。这样,STM32就可以通过发送MQTT消息将数据上传到阿里云服务器,或者通过订阅MQTT主题接收来自阿里云的消息。 借助这种方案,可以实现远程监控、数据采集、远程控制等各种应用。例如,可以通过STM32采集传感器数据,然后将其通过MQTT协议上传到阿里云服务器,实现实时的数据监控和分析。同时,也可以通过阿里云服务器下发指令给STM32,实现对设备的远程控制和调试。 总结而言,将STM32阿里云ESP8266、MQTT固件等技术相结合,可以实现智能化、联网化的物联网设备,提升设备的功能和性能,为用户带来更好的体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值