STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记3:STM32程序编写

        本篇文章介绍STM32通过UASRT发送AT指令给ESP8266,将采集的温湿度数据上传至阿里云。该程序基于FreeRTOS操作系统,使用SPI协议获取传感器采集的温湿度数据。温湿度传感器采用MTH01,具体接线方式可参考MTH01 SPI 引脚 温湿度传感器 MSP430G2553 单片机 arduino_XD742971636的博客-CSDN博客

一、 创建FreeRTOS程序

1.在STM32CubeMX软件中新建项目,选择所用的STM32型号,首先选择外部时钟,

图1

2.然后将HAL库的Timebase Source从SysTick改为TIM1,

图2

3.接下来按照图3所示配置USART1参数,引脚选择PA9和PA10,

图3

4.然后开启USART1的中断,

图4

5.由于单片机作为从机且只需要读取温湿度传感器数据即可,所以SPI1配置为Receive Only Slave,

图5

6.然后配置PC1引脚为输出模式,控制LED开启或关闭,

图6

7.接下来按照图7所示方式配置FreeRTOS,

图7

8.添加2个任务,

图8

图9

9.然后将USART1的“Uses FreeRTOS functions"功能取消勾选,

图10

10.接下来按照图11所示配置时钟,

图11

11.最后按照图12所示生成项目代码,

图12

二、编写应用程序

1.USART1串口收发程序,

串口数据收发驱动参照正点原子的程序编写。

2.连接阿里云程序

在任务Task_TH中按照图13所示发送7条AT指令给ESP8266,

图13

3.LED状态读取程序

LED引脚高电平灯灭,低电平灯亮,

图14

4.温湿度数据读取程序

图15

5.数据上传程序

由于语句太长,该程序用到了“\”来换行,注意:换行后语句需要顶格写

图16

6.指令控制程序

在Task_USART任务中单片机首先判断是否为服务器发送的数据,然后判断LightSwitch的状态,为0则关闭LED,为1开启LED。

图17

三、注意事项

1.串口调试助手发送AT指令时需要加“\”的地方在STM32中应该为“\\”。

2.STM32发送AT指令时双引号前也需要添加“\”。

至此完成了该项目的全部内容,如有错误,恳请指正,如有疑问,欢迎讨论。

上篇:STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记2:IoT Studio制作APP

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 要让STM32ESP8266连接阿里云,需要先了解阿里云物联网平台和相关的API接口。然后根据具体的应用场景需求,选择合适的协议和通信方式进行连接。具体可以采用MQTT或者HTTP协议进行连接,由此实现双向的数据传输。 首先,在STM32ESP8266中需要增加ESP8266的AT指令,将其作为WiFi模块使用,然后在此基础上进行网络配置和连接,获取SSID和密码信息等。然后基于MQTT或者HTTP协议进行连接,这两种协议都可以在阿里云IoT平台上实现。 使用MQTT协议进行连接,需要在STM32ESP8266中进行配置,包括服务器地址,端口号,客户端ID等信息。然后建立连接,发布或者订阅主题消息即可。 使用HTTP协议进行连接,需要在STM32ESP8266上进行HTTP请求,获取授权信息和TOKEN,然后调用阿里云提供的API接口来实现信息的发送和接收。 以上是STM32ESP8266连接阿里云的一些关键思路和步骤,具体还需要根据具体的需求进行详细的实现和调试。 ### 回答2: STM32是一款低功耗高性能的单片微控制器,而ESP8266是一款低成本的Wi-Fi模组,它们可以联合使用来连接阿里云。 首先,你需要准备一台带有Wi-Fi模块供应商的STM32开发板,例如STMicroelectronics提供的Nucleo-F401RE,以及一台ESP8266 Wi-Fi模组。你还需要在阿里云上创建一个IoT Hub实例并为其生成证书。 接下来,你需要下载阿里云的SDK,该SDK支持C语言和STM32平台。将SDK包中的文件添加到您的工程中,并包含其头文件。 然后,在您的工程中设置Wi-Fi连接信息,包括SSID和密码。根据您的需求,您可以选择使用TCP或UDP协议,以及MQTT客户端进行连接和通信。 在向阿里云发送消息之前,您需要先使用证书验证自己的身份,并将证书和密钥文件添加到您的工程中。然后,您可以使用阿里云提供的API来发送和接收MQTT消息。 当您成功连接阿里云IoT Hub并成功发送消息时,您可以在控制台中查看数据并将其用于您的应用程序。 在整个过程中,您需要确保您的代码按照阿里云SDK的指导进行编写,并且正确设置了Wi-Fi连接信息和证书。这将帮助您在不久的将来轻松地实现自己的IoT应用程序。 ### 回答3: STM32ESP8266作为微控制器和Wi-Fi模块组合,可以联合运作并连接阿里云。概括地说,需要进行以下几步: 1. 准备硬件 网上购买STM32ESP8266开发板,将它们连接在一起。需要确保它们之间的连接是准确的,例如使用串行通信,确保引脚连接正确。 2. 搭建开发环境 需要安装ST-Link/V2驱动、Keil或者IAR等开发环境ESP8266可以使用AT指令模式进行编程,也可以使用Lua语言进行编程。 3. 实现连接阿里云 (1)首先,注册阿里云账号并创建物联网实例。 (2)在阿里云后台创建设备,并获得设备的三元组信息(Device Name、ProductKey、Device Secret)。 (3)在STM32ESP8266中,添加连接阿里云云平台所需要的支持代码,例如接入SDK等。 (4)编写代码,将STM32ESP8266连接到Wi-Fi网络并连接阿里云云平台。具体步骤包括: a. 将ESP8266设置为STA模式或AP模式,分别连接到Wi-Fi网络或者创建一个Wi-Fi热点。 b. 设置阿里云物联网平台的API密钥。 c. 在STM32中,编写代码将设备信息(Device Name、ProductKey、Device Secret)从芯片里读取出来。 d. 在ESP8266编写代码将三元组信息加入MQTT连接参数,并连接到云端。 4. 通过阿里云平台进行消息传递 连接成功后,STM32ESP8266可以通过阿里云平台来进行双向数据传递。例如,STM32可以向阿里云发送传感器数据,阿里云会将数据转发给ESP8266ESP8266再将数据发送到远程设备或者APP上。 这就是STM32ESP8266连接阿里云的主要流程。由于每个项目的要求不同,需要根据实际环境和需求来优化代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值